{"version":3,"file":"public_v9.js","mappings":"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","sources":["webpack://app/./app/assets/javascripts/components/_city_smart_search.js","webpack://app/./app/assets/javascripts/components/_lawyers_nav.js","webpack://app/./app/assets/javascripts/components/_proposal_template_list_abstract.js","webpack://app/./app/assets/javascripts/components/alert_modal.js","webpack://app/./app/assets/javascripts/components/attachment_textarea.js","webpack://app/./app/assets/javascripts/components/attorney_badge.js","webpack://app/./app/assets/javascripts/components/authentication.js","webpack://app/./app/assets/javascripts/components/billing_summary.js","webpack://app/./app/assets/javascripts/components/button_loader.js","webpack://app/./app/assets/javascripts/components/calendar_availability/collections/availability_time_ranges.js","webpack://app/./app/assets/javascripts/components/calendar_availability/models/availability_time_range.js","webpack://app/./app/assets/javascripts/components/calendar_availability/views/availability_day_group_view.js","webpack://app/./app/assets/javascripts/components/calendar_availability/views/availability_time_range_view.js","webpack://app/./app/assets/javascripts/components/calendar_availability/views/availability_time_ranges_view.js","webpack://app/./app/assets/javascripts/components/checkbox_modal.js","webpack://app/./app/assets/javascripts/components/confirm_modal.js","webpack://app/./app/assets/javascripts/components/content_pages.js","webpack://app/./app/assets/javascripts/components/currency_input.jquery.js","webpack://app/./app/assets/javascripts/components/custom_message.js","webpack://app/./app/assets/javascripts/components/fancy_check.jquery.js","webpack://app/./app/assets/javascripts/components/fees_popover.js","webpack://app/./app/assets/javascripts/components/follow_up_offers.js","webpack://app/./app/assets/javascripts/components/geo_location.js","webpack://app/./app/assets/javascripts/components/geo_location_paj_widget.js","webpack://app/./app/assets/javascripts/components/google_api.js","webpack://app/./app/assets/javascripts/components/input_with_copy_button.js","webpack://app/./app/assets/javascripts/components/insertAtCaret.jquery.js","webpack://app/./app/assets/javascripts/components/insert_number.js","webpack://app/./app/assets/javascripts/components/jquery.confirm_unload.js","webpack://app/./app/assets/javascripts/components/jquery.select_legal_task_with_area.js","webpack://app/./app/assets/javascripts/components/jquery.super_fancy_cat.js","webpack://app/./app/assets/javascripts/components/jquery.super_smart_search.js","webpack://app/./app/assets/javascripts/components/jquery.time_zone_select.js","webpack://app/./app/assets/javascripts/components/jquery.truncate_toggle.js","webpack://app/./app/assets/javascripts/components/jquery.truncate_toggle_multiple.js","webpack://app/./app/assets/javascripts/components/mobile_nav.js","webpack://app/./app/assets/javascripts/components/modal.js","webpack://app/./app/assets/javascripts/components/modal_v9.js","webpack://app/./app/assets/javascripts/components/multi_select_buttons.jquery.js","webpack://app/./app/assets/javascripts/components/notifications.js","webpack://app/./app/assets/javascripts/components/nps_box.js","webpack://app/./app/assets/javascripts/components/password_form.js","webpack://app/./app/assets/javascripts/components/payment_dispute_client_redirect_modal.js","webpack://app/./app/assets/javascripts/components/payment_info.js","webpack://app/./app/assets/javascripts/components/payment_info_v1.js","webpack://app/./app/assets/javascripts/components/photo_uploader_widget.js","webpack://app/./app/assets/javascripts/components/plaid_bank_verification.js","webpack://app/./app/assets/javascripts/components/popdown.jquery.js","webpack://app/./app/assets/javascripts/components/popover.js","webpack://app/./app/assets/javascripts/components/search.js","webpack://app/./app/assets/javascripts/components/smart_search.jquery.js","webpack://app/./app/assets/javascripts/components/sticky_css_table_header.js","webpack://app/./app/assets/javascripts/components/table_of_contents.js","webpack://app/./app/assets/javascripts/components/text_length_counter.js","webpack://app/./app/assets/javascripts/components/transparent_nav.js","webpack://app/./app/assets/javascripts/components/upload.js","webpack://app/./app/assets/javascripts/components/workspace_nav.js","webpack://app/./app/assets/javascripts/extentions/jquery.js","webpack://app/./app/assets/javascripts/handlebars_helpers/ifCond.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/add_past_clients.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_bio.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_industries.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_languages.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_main_details.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_past_clients.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_practice_areas.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/edit_work_history.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/update_phone_number.js","webpack://app/./app/assets/javascripts/modals/public/attorney_profile/work_histories_form.js","webpack://app/./app/assets/javascripts/modals/public/job_contact_message_modal.js","webpack://app/./app/assets/javascripts/modals/public/quote_calculator.js","webpack://app/./app/assets/javascripts/modals/public/scheduled_calls/_times_available.js","webpack://app/./app/assets/javascripts/modals/public/scheduled_calls/new.js","webpack://app/./app/assets/javascripts/modals/public/scheduled_calls/show.js","webpack://app/./app/assets/javascripts/polyfills/bind.js","webpack://app/./app/assets/javascripts/polyfills/indexOf.js","webpack://app/./app/assets/javascripts/polyfills/trim.js","webpack://app/./app/assets/javascripts/shared.js","webpack://app/./app/assets/javascripts/templates/ sync ^\\.\\/.*\\.hbs$","webpack://app/./app/assets/javascripts/templates/admin/biography_snippets/change_reason_modal.hbs","webpack://app/./app/assets/javascripts/templates/admin/cache/modal_content.hbs","webpack://app/./app/assets/javascripts/templates/admin/job_bulk_inviter/more_info.hbs","webpack://app/./app/assets/javascripts/templates/admin/map/attorney_card.hbs","webpack://app/./app/assets/javascripts/templates/admin/notable/new_admin_log_entry_modal.hbs","webpack://app/./app/assets/javascripts/templates/admin/press_logos/press_logo_edit.hbs","webpack://app/./app/assets/javascripts/templates/admin/press_logos/press_logo_new.hbs","webpack://app/./app/assets/javascripts/templates/admin/press_logos/press_logo_new_file_uploaded.hbs","webpack://app/./app/assets/javascripts/templates/components/alert_modal.hbs","webpack://app/./app/assets/javascripts/templates/components/attachment_textarea.hbs","webpack://app/./app/assets/javascripts/templates/components/calendar_availability/availability_day_group.hbs","webpack://app/./app/assets/javascripts/templates/components/calendar_availability/availability_time_range.hbs","webpack://app/./app/assets/javascripts/templates/components/calendar_availability/availability_time_ranges.hbs","webpack://app/./app/assets/javascripts/templates/components/draft_proposal_template_list.hbs","webpack://app/./app/assets/javascripts/templates/components/job_overview_scheduled_calls.hbs","webpack://app/./app/assets/javascripts/templates/components/proposal_template_index_list.hbs","webpack://app/./app/assets/javascripts/templates/components/super_fancy_cat.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/add_timesheet_line_items_invoice_modal.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/add_timesheet_lines_invoice_button.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/add_timesheet_row_button.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/client_invoiced_line_items.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/create_timesheet_invoice_button.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/current_timesheet_line_items_for_client.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/save_status_indicator.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_date_filters.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_intro.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_jobs_dropdown.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_line_item_row.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_table.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_table_header.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_tabs.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_totals.hbs","webpack://app/./app/assets/javascripts/templates/components/timesheets/timesheet_types_dropdown.hbs","webpack://app/./app/assets/javascripts/templates/public/attorney_legal_groups/attorney_top_legal_groups_modal.hbs","webpack://app/./app/assets/javascripts/templates/public/calls/cancel.hbs","webpack://app/./app/assets/javascripts/templates/public/calls/modal_initiate.hbs","webpack://app/./app/assets/javascripts/templates/public/document_download_offer.hbs","webpack://app/./app/assets/javascripts/templates/public/emails/email.hbs","webpack://app/./app/assets/javascripts/templates/public/invoices/attachment.hbs","webpack://app/./app/assets/javascripts/templates/public/jobs/live_chat_message.hbs","webpack://app/./app/assets/javascripts/templates/public/jobs/modal_change_status.hbs","webpack://app/./app/assets/javascripts/templates/public/jobs/modal_message_attorney.hbs","webpack://app/./app/assets/javascripts/templates/public/jobs/modal_request_invite.hbs","webpack://app/./app/assets/javascripts/templates/public/proposals/confirm_subscription_modal.hbs","webpack://app/./app/assets/javascripts/templates/public/proposals/subscription_prompt_modal.hbs","webpack://app/./app/assets/javascripts/templates/public/search/result.hbs","webpack://app/./app/assets/javascripts/templates/shared/modal.hbs","webpack://app/./app/assets/javascripts/templates/shared/modal_close_the_loop.hbs","webpack://app/./app/assets/javascripts/templates/shared/modal_v9.hbs","webpack://app/./app/assets/javascripts/templates/shared/notification.hbs","webpack://app/./app/assets/javascripts/templates/shared/pagination.hbs","webpack://app/./app/assets/javascripts/templates/shared/panel_close_the_loop.hbs","webpack://app/./app/assets/javascripts/timesheets/collections/timesheet_invoices.js","webpack://app/./app/assets/javascripts/timesheets/collections/timesheet_jobs.js","webpack://app/./app/assets/javascripts/timesheets/collections/timesheet_line_items.js","webpack://app/./app/assets/javascripts/timesheets/models/timesheet_invoice.js","webpack://app/./app/assets/javascripts/timesheets/models/timesheet_job.js","webpack://app/./app/assets/javascripts/timesheets/models/timesheet_line_item.js","webpack://app/./app/assets/javascripts/timesheets/views/add_timesheet_line_items_invoice_modal.js","webpack://app/./app/assets/javascripts/timesheets/views/add_timesheet_lines_button_invoice_view.js","webpack://app/./app/assets/javascripts/timesheets/views/add_timesheet_row_button_view.js","webpack://app/./app/assets/javascripts/timesheets/views/client_invoiced_line_items_view.js","webpack://app/./app/assets/javascripts/timesheets/views/create_timesheet_invoice_button_view.js","webpack://app/./app/assets/javascripts/timesheets/views/current_timesheet_line_items_for_client.js","webpack://app/./app/assets/javascripts/timesheets/views/invoice_form_view.js","webpack://app/./app/assets/javascripts/timesheets/views/save_status_indicator_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_date_filters_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_jobs_dropdown_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_line_item_row_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_table_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_tabs_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_totals_view.js","webpack://app/./app/assets/javascripts/timesheets/views/timesheet_types_dropdown_view.js","webpack://app/./app/assets/javascripts/upcounsel.js","webpack://app/./app/assets/javascripts/utils/call_helpers.js","webpack://app/./app/assets/javascripts/utils/close_the_loop.js","webpack://app/./app/assets/javascripts/utils/ezoic_ads.js","webpack://app/./app/assets/javascripts/utils/filestack.js","webpack://app/./app/assets/javascripts/utils/floating_point.js","webpack://app/./app/assets/javascripts/utils/init_intro.js","webpack://app/./app/assets/javascripts/utils/init_rating_dimensions.js","webpack://app/./app/assets/javascripts/utils/kiss_events.js","webpack://app/./app/assets/javascripts/utils/net.js","webpack://app/./app/assets/javascripts/utils/notification.js","webpack://app/./app/assets/javascripts/utils/paj_helpers.js","webpack://app/./app/assets/javascripts/utils/payments.js","webpack://app/./app/assets/javascripts/utils/string_diff.js","webpack://app/./app/assets/javascripts/utils/validation.js","webpack://app/./app/assets/javascripts/views/enterprise/invoices/show.js","webpack://app/./app/assets/javascripts/views/enterprise/payments/new.js","webpack://app/./app/assets/javascripts/views/public/account/_address_form.js","webpack://app/./app/assets/javascripts/views/public/account/_bank_account_form.js","webpack://app/./app/assets/javascripts/views/public/account/_credit_card_authorization_modal.js","webpack://app/./app/assets/javascripts/views/public/account/_identity_verification.js","webpack://app/./app/assets/javascripts/views/public/account/_stripe_tos_accepted_checkbox.js","webpack://app/./app/assets/javascripts/views/public/account/activate.js","webpack://app/./app/assets/javascripts/views/public/account/availability.js","webpack://app/./app/assets/javascripts/views/public/account/billing.js","webpack://app/./app/assets/javascripts/views/public/account/change_password.js","webpack://app/./app/assets/javascripts/views/public/account/confirm_invite.js","webpack://app/./app/assets/javascripts/views/public/account/edit.js","webpack://app/./app/assets/javascripts/views/public/account/edit_credit_card.js","webpack://app/./app/assets/javascripts/views/public/account/forgot_password.js","webpack://app/./app/assets/javascripts/views/public/account/identity_verification_all.js","webpack://app/./app/assets/javascripts/views/public/account/identity_verification_document.js","webpack://app/./app/assets/javascripts/views/public/account/logon.js","webpack://app/./app/assets/javascripts/views/public/account/new_bank_account.js","webpack://app/./app/assets/javascripts/views/public/account/new_credit_card.js","webpack://app/./app/assets/javascripts/views/public/account/new_payout_account.js","webpack://app/./app/assets/javascripts/views/public/account/notification_settings.js","webpack://app/./app/assets/javascripts/views/public/account/password_expired.js","webpack://app/./app/assets/javascripts/views/public/account/photo.js","webpack://app/./app/assets/javascripts/views/public/account/practice_location.js","webpack://app/./app/assets/javascripts/views/public/account/resend_activation.js","webpack://app/./app/assets/javascripts/views/public/account/verify_bank_account.js","webpack://app/./app/assets/javascripts/views/public/attorney_clients.js","webpack://app/./app/assets/javascripts/views/public/attorney_clients/edit.js","webpack://app/./app/assets/javascripts/views/public/attorney_clients/form.js","webpack://app/./app/assets/javascripts/views/public/attorney_clients/index.js","webpack://app/./app/assets/javascripts/views/public/attorney_clients/new.js","webpack://app/./app/assets/javascripts/views/public/attorney_clients/show.js","webpack://app/./app/assets/javascripts/views/public/attorney_income_calculator/show.js","webpack://app/./app/assets/javascripts/views/public/attorney_profile/attorney_created_reviews_modal.js","webpack://app/./app/assets/javascripts/views/public/attorney_profile/calendar_availability.js","webpack://app/./app/assets/javascripts/views/public/attorney_profile/contact_attorney_modal.js","webpack://app/./app/assets/javascripts/views/public/attorney_profile/show.js","webpack://app/./app/assets/javascripts/views/public/calendars/_select_calendar_modal.js","webpack://app/./app/assets/javascripts/views/public/calendars/index.js","webpack://app/./app/assets/javascripts/views/public/calls/index.js","webpack://app/./app/assets/javascripts/views/public/calls/modal_initiate.js","webpack://app/./app/assets/javascripts/views/public/client_complaints/show_update.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_document_download_offer.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_pay_and_download_document.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_register_user_for_document_download.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_show_article.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_show_content_hub.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_show_content_sub_hub.js","webpack://app/./app/assets/javascripts/views/public/content_pages/_show_document.js","webpack://app/./app/assets/javascripts/views/public/content_pages/seo_mother_page.js","webpack://app/./app/assets/javascripts/views/public/content_pages/seo_pages.js","webpack://app/./app/assets/javascripts/views/public/content_pages/show.js","webpack://app/./app/assets/javascripts/views/public/dashboard/_index_for_atlas.js","webpack://app/./app/assets/javascripts/views/public/dashboard/_new_find_work.js","webpack://app/./app/assets/javascripts/views/public/dashboard/find_work.js","webpack://app/./app/assets/javascripts/views/public/dashboard/index.js","webpack://app/./app/assets/javascripts/views/public/dashboard/jobs_list.js","webpack://app/./app/assets/javascripts/views/public/dashboard/metrics.js","webpack://app/./app/assets/javascripts/views/public/dashboard/report.js","webpack://app/./app/assets/javascripts/views/public/dashboard/scheduled_calls.js","webpack://app/./app/assets/javascripts/views/public/direct_hire_job_leads/new.js","webpack://app/./app/assets/javascripts/views/public/education_center/index.js","webpack://app/./app/assets/javascripts/views/public/emails/index.js","webpack://app/./app/assets/javascripts/views/public/emails/row.js","webpack://app/./app/assets/javascripts/views/public/enterprise_requests.js","webpack://app/./app/assets/javascripts/views/public/free_legal/index.js","webpack://app/./app/assets/javascripts/views/public/invoices/_form_details.js","webpack://app/./app/assets/javascripts/views/public/invoices/_modal_no_payment_required.js","webpack://app/./app/assets/javascripts/views/public/invoices/edit.js","webpack://app/./app/assets/javascripts/views/public/invoices/index.js","webpack://app/./app/assets/javascripts/views/public/invoices/new.js","webpack://app/./app/assets/javascripts/views/public/invoices/new_for_job.js","webpack://app/./app/assets/javascripts/views/public/invoices/show.js","webpack://app/./app/assets/javascripts/views/public/jobs/_ai_form.js","webpack://app/./app/assets/javascripts/views/public/jobs/_ai_live_chat.js","webpack://app/./app/assets/javascripts/views/public/jobs/_attorney_job_feedback_modal.js","webpack://app/./app/assets/javascripts/views/public/jobs/_created.js","webpack://app/./app/assets/javascripts/views/public/jobs/_fees_details.js","webpack://app/./app/assets/javascripts/views/public/jobs/_job_header.js","webpack://app/./app/assets/javascripts/views/public/jobs/_job_schedule_call.js","webpack://app/./app/assets/javascripts/views/public/jobs/_live_chat.js","webpack://app/./app/assets/javascripts/views/public/jobs/_location_search.js","webpack://app/./app/assets/javascripts/views/public/jobs/_modal_job_intro.js","webpack://app/./app/assets/javascripts/views/public/jobs/_modal_new_invoice.js","webpack://app/./app/assets/javascripts/views/public/jobs/_modal_pending_user.js","webpack://app/./app/assets/javascripts/views/public/jobs/_modal_request_invite.js","webpack://app/./app/assets/javascripts/views/public/jobs/_overview_for_paid_consultation.js","webpack://app/./app/assets/javascripts/views/public/jobs/_package_selection.js","webpack://app/./app/assets/javascripts/views/public/jobs/_page_name_proposal.js","webpack://app/./app/assets/javascripts/views/public/jobs/_paj_question.js","webpack://app/./app/assets/javascripts/views/public/jobs/_register_user.js","webpack://app/./app/assets/javascripts/views/public/jobs/_summary_confirmation.js","webpack://app/./app/assets/javascripts/views/public/jobs/_summary_resolution.js","webpack://app/./app/assets/javascripts/views/public/jobs/_task_selector.js","webpack://app/./app/assets/javascripts/views/public/jobs/_tour.js","webpack://app/./app/assets/javascripts/views/public/jobs/_user_info.js","webpack://app/./app/assets/javascripts/views/public/jobs/_user_job_report_modal.js","webpack://app/./app/assets/javascripts/views/public/jobs/_v4_paj.js","webpack://app/./app/assets/javascripts/views/public/jobs/_v5_paj.js","webpack://app/./app/assets/javascripts/views/public/jobs/_v6_paj.js","webpack://app/./app/assets/javascripts/views/public/jobs/_v7_paj.js","webpack://app/./app/assets/javascripts/views/public/jobs/add_project.js","webpack://app/./app/assets/javascripts/views/public/jobs/attorney/_navigation.js","webpack://app/./app/assets/javascripts/views/public/jobs/attorney_proposal.js","webpack://app/./app/assets/javascripts/views/public/jobs/details.js","webpack://app/./app/assets/javascripts/views/public/jobs/documents.js","webpack://app/./app/assets/javascripts/views/public/jobs/edit.js","webpack://app/./app/assets/javascripts/views/public/jobs/index.js","webpack://app/./app/assets/javascripts/views/public/jobs/job_admin.js","webpack://app/./app/assets/javascripts/views/public/jobs/job_overview_scheduled_calls.js","webpack://app/./app/assets/javascripts/views/public/jobs/manage_cog.js","webpack://app/./app/assets/javascripts/views/public/jobs/match_attorneys.js","webpack://app/./app/assets/javascripts/views/public/jobs/message_thread.js","webpack://app/./app/assets/javascripts/views/public/jobs/modal_change_status.js","webpack://app/./app/assets/javascripts/views/public/jobs/new.js","webpack://app/./app/assets/javascripts/views/public/jobs/overview.js","webpack://app/./app/assets/javascripts/views/public/jobs/proposals.js","webpack://app/./app/assets/javascripts/views/public/jobs/timesheet.js","webpack://app/./app/assets/javascripts/views/public/jobs_list.js","webpack://app/./app/assets/javascripts/views/public/legal_area_pages.js","webpack://app/./app/assets/javascripts/views/public/messages/_create.js","webpack://app/./app/assets/javascripts/views/public/messages/index.js","webpack://app/./app/assets/javascripts/views/public/multi_factor_auth/_request_form.js","webpack://app/./app/assets/javascripts/views/public/multi_factor_auth/configure.js","webpack://app/./app/assets/javascripts/views/public/multi_factor_auth/functions.js","webpack://app/./app/assets/javascripts/views/public/multi_factor_auth/print_recovery_codes.js","webpack://app/./app/assets/javascripts/views/public/multi_factor_auth/recovery_codes.js","webpack://app/./app/assets/javascripts/views/public/multi_factor_auth/request_disable.js","webpack://app/./app/assets/javascripts/views/public/offers/index.js","webpack://app/./app/assets/javascripts/views/public/payments/new.js","webpack://app/./app/assets/javascripts/views/public/payments/show.js","webpack://app/./app/assets/javascripts/views/public/proposal_templates/draft_proposal_list.js","webpack://app/./app/assets/javascripts/views/public/proposal_templates/index.js","webpack://app/./app/assets/javascripts/views/public/proposal_templates/index_page_list.js","webpack://app/./app/assets/javascripts/views/public/proposal_templates/modal_form.js","webpack://app/./app/assets/javascripts/views/public/proposals/_form.js","webpack://app/./app/assets/javascripts/views/public/proposals/_form_quote.js","webpack://app/./app/assets/javascripts/views/public/proposals/_job_info_panel.js","webpack://app/./app/assets/javascripts/views/public/proposals/_modal_contact_attorney.js","webpack://app/./app/assets/javascripts/views/public/proposals/_proposal_row.js","webpack://app/./app/assets/javascripts/views/public/proposals/_subscription_prompt_modal.js","webpack://app/./app/assets/javascripts/views/public/proposals/accept_proposal.js","webpack://app/./app/assets/javascripts/views/public/proposals/edit.js","webpack://app/./app/assets/javascripts/views/public/proposals/hire.js","webpack://app/./app/assets/javascripts/views/public/proposals/index.js","webpack://app/./app/assets/javascripts/views/public/proposals/intro.js","webpack://app/./app/assets/javascripts/views/public/proposals/new.js","webpack://app/./app/assets/javascripts/views/public/proposals/show.js","webpack://app/./app/assets/javascripts/views/public/referrals/attorney.js","webpack://app/./app/assets/javascripts/views/public/referrals/attorney_referral_landing.js","webpack://app/./app/assets/javascripts/views/public/referrals/index.js","webpack://app/./app/assets/javascripts/views/public/referrals/landing.js","webpack://app/./app/assets/javascripts/views/public/reviews/_form.js","webpack://app/./app/assets/javascripts/views/public/reviews/new.js","webpack://app/./app/assets/javascripts/views/public/scheduled_calls/_cancel.js","webpack://app/./app/assets/javascripts/views/public/scheduled_calls/_day_time_selector.js","webpack://app/./app/assets/javascripts/views/public/scheduled_calls/_form_choose_available.js","webpack://app/./app/assets/javascripts/views/public/scheduled_calls/_form_reply.js","webpack://app/./app/assets/javascripts/views/public/scheduled_calls/_form_request.js","webpack://app/./app/assets/javascripts/views/public/scheduled_calls/_instant.js","webpack://app/./app/assets/javascripts/views/public/search/index.js","webpack://app/./app/assets/javascripts/views/public/search/result.js","webpack://app/./app/assets/javascripts/views/public/sessions/_form.js","webpack://app/./app/assets/javascripts/views/public/sessions/_sudo_form.js","webpack://app/./app/assets/javascripts/views/public/sessions/multi_factor_recover.js","webpack://app/./app/assets/javascripts/views/public/sessions/multi_factor_request.js","webpack://app/./app/assets/javascripts/views/public/sourcing_questionnaires/show.js","webpack://app/./app/assets/javascripts/views/public/static_pages.js","webpack://app/./app/assets/javascripts/views/public/static_pages/attorneys.js","webpack://app/./app/assets/javascripts/views/public/static_pages/contact.js","webpack://app/./app/assets/javascripts/views/public/static_pages/for_attorneys.js","webpack://app/./app/assets/javascripts/views/public/static_pages/home.js","webpack://app/./app/assets/javascripts/views/public/static_pages/how_it_works.js","webpack://app/./app/assets/javascripts/views/public/static_pages/press.js","webpack://app/./app/assets/javascripts/views/public/static_pages/pricing_page.js","webpack://app/./app/assets/javascripts/views/public/static_pages/sitemap.js","webpack://app/./app/assets/javascripts/views/public/static_pages/styleguide.js","webpack://app/./app/assets/javascripts/views/public/static_pages/success_stories.js","webpack://app/./app/assets/javascripts/views/public/system_messages/index.js","webpack://app/./app/assets/javascripts/views/public/user_documents/bulk_actions.js","webpack://app/./app/assets/javascripts/views/public/user_documents/dropbox_sign.js","webpack://app/./app/assets/javascripts/views/public/user_documents/filter.js","webpack://app/./app/assets/javascripts/views/public/user_documents/history.js","webpack://app/./app/assets/javascripts/views/public/user_documents/index.js","webpack://app/./app/assets/javascripts/views/public/user_documents/modal_choose_document.js","webpack://app/./app/assets/javascripts/views/public/user_documents/modal_choose_signers.js","webpack://app/./app/assets/javascripts/views/public/user_documents/modal_confirm_account.js","webpack://app/./app/assets/javascripts/views/public/user_documents/modal_share.js","webpack://app/./app/assets/javascripts/views/public/user_documents/row.js","webpack://app/./app/assets/javascripts/views/public/user_documents/show.js","webpack://app/./app/assets/javascripts/views/public/users/_form.js","webpack://app/./app/assets/javascripts/views/public/users/atlas.js","webpack://app/./app/assets/javascripts/views/public/users/get_started.js","webpack://app/./app/assets/javascripts/views/public/users/new.js","webpack://app/./app/assets/javascripts/views/shared/attorney_top_legal_groups/attorney_top_legal_groups_modal.js","webpack://app/./app/assets/javascripts/views/shared/checkout/modal_payment_reason.js","webpack://app/./app/assets/javascripts/views/shared/menus/_job_nav_menu.js","webpack://app/./app/assets/javascripts/views/shared/notable/new_admin_log_entry_modal.js","webpack://app/./node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","webpack://app/./node_modules/backbone/backbone.js","webpack://app/./node_modules/bootstrap-rating-input/src/bootstrap-rating-input.js","webpack://app/./node_modules/bootstrap/dist/js/npm.js","webpack://app/./node_modules/bootstrap/js/affix.js","webpack://app/./node_modules/bootstrap/js/alert.js","webpack://app/./node_modules/bootstrap/js/button.js","webpack://app/./node_modules/bootstrap/js/carousel.js","webpack://app/./node_modules/bootstrap/js/collapse.js","webpack://app/./node_modules/bootstrap/js/dropdown.js","webpack://app/./node_modules/bootstrap/js/modal.js","webpack://app/./node_modules/bootstrap/js/popover.js","webpack://app/./node_modules/bootstrap/js/scrollspy.js","webpack://app/./node_modules/bootstrap/js/tab.js","webpack://app/./node_modules/bootstrap/js/tooltip.js","webpack://app/./node_modules/bootstrap/js/transition.js","webpack://app/./node_modules/clientjs/dist/client.base.min.js","webpack://app/./node_modules/clipboard/dist/clipboard.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack://app/./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack://app/./node_modules/handlebars/dist/handlebars.runtime.js","webpack://app/./node_modules/handlebars/runtime.js","webpack://app/./node_modules/hellosign-embedded/index.js","webpack://app/./node_modules/hellosign-embedded/umd/embedded.development.js","webpack://app/./node_modules/intro.js/intro.js","webpack://app/./node_modules/jquery-jcrop/js/jquery.Jcrop.js","webpack://app/./node_modules/jquery-serializejson/jquery.serializejson.js","webpack://app/./node_modules/jquery-ujs/src/rails.js","webpack://app/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://app/./node_modules/moment/locale/af.js","webpack://app/./node_modules/moment/locale/ar-dz.js","webpack://app/./node_modules/moment/locale/ar-kw.js","webpack://app/./node_modules/moment/locale/ar-ly.js","webpack://app/./node_modules/moment/locale/ar-ma.js","webpack://app/./node_modules/moment/locale/ar-ps.js","webpack://app/./node_modules/moment/locale/ar-sa.js","webpack://app/./node_modules/moment/locale/ar-tn.js","webpack://app/./node_modules/moment/locale/ar.js","webpack://app/./node_modules/moment/locale/az.js","webpack://app/./node_modules/moment/locale/be.js","webpack://app/./node_modules/moment/locale/bg.js","webpack://app/./node_modules/moment/locale/bm.js","webpack://app/./node_modules/moment/locale/bn-bd.js","webpack://app/./node_modules/moment/locale/bn.js","webpack://app/./node_modules/moment/locale/bo.js","webpack://app/./node_modules/moment/locale/br.js","webpack://app/./node_modules/moment/locale/bs.js","webpack://app/./node_modules/moment/locale/ca.js","webpack://app/./node_modules/moment/locale/cs.js","webpack://app/./node_modules/moment/locale/cv.js","webpack://app/./node_modules/moment/locale/cy.js","webpack://app/./node_modules/moment/locale/da.js","webpack://app/./node_modules/moment/locale/de-at.js","webpack://app/./node_modules/moment/locale/de-ch.js","webpack://app/./node_modules/moment/locale/de.js","webpack://app/./node_modules/moment/locale/dv.js","webpack://app/./node_modules/moment/locale/el.js","webpack://app/./node_modules/moment/locale/en-au.js","webpack://app/./node_modules/moment/locale/en-ca.js","webpack://app/./node_modules/moment/locale/en-gb.js","webpack://app/./node_modules/moment/locale/en-ie.js","webpack://app/./node_modules/moment/locale/en-il.js","webpack://app/./node_modules/moment/locale/en-in.js","webpack://app/./node_modules/moment/locale/en-nz.js","webpack://app/./node_modules/moment/locale/en-sg.js","webpack://app/./node_modules/moment/locale/eo.js","webpack://app/./node_modules/moment/locale/es-do.js","webpack://app/./node_modules/moment/locale/es-mx.js","webpack://app/./node_modules/moment/locale/es-us.js","webpack://app/./node_modules/moment/locale/es.js","webpack://app/./node_modules/moment/locale/et.js","webpack://app/./node_modules/moment/locale/eu.js","webpack://app/./node_modules/moment/locale/fa.js","webpack://app/./node_modules/moment/locale/fi.js","webpack://app/./node_modules/moment/locale/fil.js","webpack://app/./node_modules/moment/locale/fo.js","webpack://app/./node_modules/moment/locale/fr-ca.js","webpack://app/./node_modules/moment/locale/fr-ch.js","webpack://app/./node_modules/moment/locale/fr.js","webpack://app/./node_modules/moment/locale/fy.js","webpack://app/./node_modules/moment/locale/ga.js","webpack://app/./node_modules/moment/locale/gd.js","webpack://app/./node_modules/moment/locale/gl.js","webpack://app/./node_modules/moment/locale/gom-deva.js","webpack://app/./node_modules/moment/locale/gom-latn.js","webpack://app/./node_modules/moment/locale/gu.js","webpack://app/./node_modules/moment/locale/he.js","webpack://app/./node_modules/moment/locale/hi.js","webpack://app/./node_modules/moment/locale/hr.js","webpack://app/./node_modules/moment/locale/hu.js","webpack://app/./node_modules/moment/locale/hy-am.js","webpack://app/./node_modules/moment/locale/id.js","webpack://app/./node_modules/moment/locale/is.js","webpack://app/./node_modules/moment/locale/it-ch.js","webpack://app/./node_modules/moment/locale/it.js","webpack://app/./node_modules/moment/locale/ja.js","webpack://app/./node_modules/moment/locale/jv.js","webpack://app/./node_modules/moment/locale/ka.js","webpack://app/./node_modules/moment/locale/kk.js","webpack://app/./node_modules/moment/locale/km.js","webpack://app/./node_modules/moment/locale/kn.js","webpack://app/./node_modules/moment/locale/ko.js","webpack://app/./node_modules/moment/locale/ku-kmr.js","webpack://app/./node_modules/moment/locale/ku.js","webpack://app/./node_modules/moment/locale/ky.js","webpack://app/./node_modules/moment/locale/lb.js","webpack://app/./node_modules/moment/locale/lo.js","webpack://app/./node_modules/moment/locale/lt.js","webpack://app/./node_modules/moment/locale/lv.js","webpack://app/./node_modules/moment/locale/me.js","webpack://app/./node_modules/moment/locale/mi.js","webpack://app/./node_modules/moment/locale/mk.js","webpack://app/./node_modules/moment/locale/ml.js","webpack://app/./node_modules/moment/locale/mn.js","webpack://app/./node_modules/moment/locale/mr.js","webpack://app/./node_modules/moment/locale/ms-my.js","webpack://app/./node_modules/moment/locale/ms.js","webpack://app/./node_modules/moment/locale/mt.js","webpack://app/./node_modules/moment/locale/my.js","webpack://app/./node_modules/moment/locale/nb.js","webpack://app/./node_modules/moment/locale/ne.js","webpack://app/./node_modules/moment/locale/nl-be.js","webpack://app/./node_modules/moment/locale/nl.js","webpack://app/./node_modules/moment/locale/nn.js","webpack://app/./node_modules/moment/locale/oc-lnc.js","webpack://app/./node_modules/moment/locale/pa-in.js","webpack://app/./node_modules/moment/locale/pl.js","webpack://app/./node_modules/moment/locale/pt-br.js","webpack://app/./node_modules/moment/locale/pt.js","webpack://app/./node_modules/moment/locale/ro.js","webpack://app/./node_modules/moment/locale/ru.js","webpack://app/./node_modules/moment/locale/sd.js","webpack://app/./node_modules/moment/locale/se.js","webpack://app/./node_modules/moment/locale/si.js","webpack://app/./node_modules/moment/locale/sk.js","webpack://app/./node_modules/moment/locale/sl.js","webpack://app/./node_modules/moment/locale/sq.js","webpack://app/./node_modules/moment/locale/sr-cyrl.js","webpack://app/./node_modules/moment/locale/sr.js","webpack://app/./node_modules/moment/locale/ss.js","webpack://app/./node_modules/moment/locale/sv.js","webpack://app/./node_modules/moment/locale/sw.js","webpack://app/./node_modules/moment/locale/ta.js","webpack://app/./node_modules/moment/locale/te.js","webpack://app/./node_modules/moment/locale/tet.js","webpack://app/./node_modules/moment/locale/tg.js","webpack://app/./node_modules/moment/locale/th.js","webpack://app/./node_modules/moment/locale/tk.js","webpack://app/./node_modules/moment/locale/tl-ph.js","webpack://app/./node_modules/moment/locale/tlh.js","webpack://app/./node_modules/moment/locale/tr.js","webpack://app/./node_modules/moment/locale/tzl.js","webpack://app/./node_modules/moment/locale/tzm-latn.js","webpack://app/./node_modules/moment/locale/tzm.js","webpack://app/./node_modules/moment/locale/ug-cn.js","webpack://app/./node_modules/moment/locale/uk.js","webpack://app/./node_modules/moment/locale/ur.js","webpack://app/./node_modules/moment/locale/uz-latn.js","webpack://app/./node_modules/moment/locale/uz.js","webpack://app/./node_modules/moment/locale/vi.js","webpack://app/./node_modules/moment/locale/x-pseudo.js","webpack://app/./node_modules/moment/locale/yo.js","webpack://app/./node_modules/moment/locale/zh-cn.js","webpack://app/./node_modules/moment/locale/zh-hk.js","webpack://app/./node_modules/moment/locale/zh-mo.js","webpack://app/./node_modules/moment/locale/zh-tw.js","webpack://app/./node_modules/moment/moment.js","webpack://app/./node_modules/snapjs/snap.js","webpack://app/./node_modules/textarea-autosize/dist/textarea-autosize.js","webpack://app/./node_modules/underscore/modules/_baseCreate.js","webpack://app/./node_modules/underscore/modules/_baseIteratee.js","webpack://app/./node_modules/underscore/modules/_cb.js","webpack://app/./node_modules/underscore/modules/_chainResult.js","webpack://app/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://app/./node_modules/underscore/modules/_createAssigner.js","webpack://app/./node_modules/underscore/modules/_createEscaper.js","webpack://app/./node_modules/underscore/modules/_createIndexFinder.js","webpack://app/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://app/./node_modules/underscore/modules/_createReduce.js","webpack://app/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://app/./node_modules/underscore/modules/_deepGet.js","webpack://app/./node_modules/underscore/modules/_escapeMap.js","webpack://app/./node_modules/underscore/modules/_executeBound.js","webpack://app/./node_modules/underscore/modules/_flatten.js","webpack://app/./node_modules/underscore/modules/_getByteLength.js","webpack://app/./node_modules/underscore/modules/_getLength.js","webpack://app/./node_modules/underscore/modules/_group.js","webpack://app/./node_modules/underscore/modules/_has.js","webpack://app/./node_modules/underscore/modules/_hasObjectTag.js","webpack://app/./node_modules/underscore/modules/_isArrayLike.js","webpack://app/./node_modules/underscore/modules/_isBufferLike.js","webpack://app/./node_modules/underscore/modules/_keyInObj.js","webpack://app/./node_modules/underscore/modules/_methodFingerprint.js","webpack://app/./node_modules/underscore/modules/_optimizeCb.js","webpack://app/./node_modules/underscore/modules/_setup.js","webpack://app/./node_modules/underscore/modules/_shallowProperty.js","webpack://app/./node_modules/underscore/modules/_stringTagBug.js","webpack://app/./node_modules/underscore/modules/_tagTester.js","webpack://app/./node_modules/underscore/modules/_toBufferView.js","webpack://app/./node_modules/underscore/modules/_toPath.js","webpack://app/./node_modules/underscore/modules/_unescapeMap.js","webpack://app/./node_modules/underscore/modules/after.js","webpack://app/./node_modules/underscore/modules/allKeys.js","webpack://app/./node_modules/underscore/modules/before.js","webpack://app/./node_modules/underscore/modules/bind.js","webpack://app/./node_modules/underscore/modules/bindAll.js","webpack://app/./node_modules/underscore/modules/chain.js","webpack://app/./node_modules/underscore/modules/chunk.js","webpack://app/./node_modules/underscore/modules/clone.js","webpack://app/./node_modules/underscore/modules/compact.js","webpack://app/./node_modules/underscore/modules/compose.js","webpack://app/./node_modules/underscore/modules/constant.js","webpack://app/./node_modules/underscore/modules/contains.js","webpack://app/./node_modules/underscore/modules/countBy.js","webpack://app/./node_modules/underscore/modules/create.js","webpack://app/./node_modules/underscore/modules/debounce.js","webpack://app/./node_modules/underscore/modules/defaults.js","webpack://app/./node_modules/underscore/modules/defer.js","webpack://app/./node_modules/underscore/modules/delay.js","webpack://app/./node_modules/underscore/modules/difference.js","webpack://app/./node_modules/underscore/modules/each.js","webpack://app/./node_modules/underscore/modules/escape.js","webpack://app/./node_modules/underscore/modules/every.js","webpack://app/./node_modules/underscore/modules/extend.js","webpack://app/./node_modules/underscore/modules/extendOwn.js","webpack://app/./node_modules/underscore/modules/filter.js","webpack://app/./node_modules/underscore/modules/find.js","webpack://app/./node_modules/underscore/modules/findIndex.js","webpack://app/./node_modules/underscore/modules/findKey.js","webpack://app/./node_modules/underscore/modules/findLastIndex.js","webpack://app/./node_modules/underscore/modules/findWhere.js","webpack://app/./node_modules/underscore/modules/first.js","webpack://app/./node_modules/underscore/modules/flatten.js","webpack://app/./node_modules/underscore/modules/functions.js","webpack://app/./node_modules/underscore/modules/get.js","webpack://app/./node_modules/underscore/modules/groupBy.js","webpack://app/./node_modules/underscore/modules/has.js","webpack://app/./node_modules/underscore/modules/identity.js","webpack://app/./node_modules/underscore/modules/index-default.js","webpack://app/./node_modules/underscore/modules/indexBy.js","webpack://app/./node_modules/underscore/modules/indexOf.js","webpack://app/./node_modules/underscore/modules/initial.js","webpack://app/./node_modules/underscore/modules/intersection.js","webpack://app/./node_modules/underscore/modules/invert.js","webpack://app/./node_modules/underscore/modules/invoke.js","webpack://app/./node_modules/underscore/modules/isArguments.js","webpack://app/./node_modules/underscore/modules/isArray.js","webpack://app/./node_modules/underscore/modules/isArrayBuffer.js","webpack://app/./node_modules/underscore/modules/isBoolean.js","webpack://app/./node_modules/underscore/modules/isDataView.js","webpack://app/./node_modules/underscore/modules/isDate.js","webpack://app/./node_modules/underscore/modules/isElement.js","webpack://app/./node_modules/underscore/modules/isEmpty.js","webpack://app/./node_modules/underscore/modules/isEqual.js","webpack://app/./node_modules/underscore/modules/isError.js","webpack://app/./node_modules/underscore/modules/isFinite.js","webpack://app/./node_modules/underscore/modules/isFunction.js","webpack://app/./node_modules/underscore/modules/isMap.js","webpack://app/./node_modules/underscore/modules/isMatch.js","webpack://app/./node_modules/underscore/modules/isNaN.js","webpack://app/./node_modules/underscore/modules/isNull.js","webpack://app/./node_modules/underscore/modules/isNumber.js","webpack://app/./node_modules/underscore/modules/isObject.js","webpack://app/./node_modules/underscore/modules/isRegExp.js","webpack://app/./node_modules/underscore/modules/isSet.js","webpack://app/./node_modules/underscore/modules/isString.js","webpack://app/./node_modules/underscore/modules/isSymbol.js","webpack://app/./node_modules/underscore/modules/isTypedArray.js","webpack://app/./node_modules/underscore/modules/isUndefined.js","webpack://app/./node_modules/underscore/modules/isWeakMap.js","webpack://app/./node_modules/underscore/modules/isWeakSet.js","webpack://app/./node_modules/underscore/modules/iteratee.js","webpack://app/./node_modules/underscore/modules/keys.js","webpack://app/./node_modules/underscore/modules/last.js","webpack://app/./node_modules/underscore/modules/lastIndexOf.js","webpack://app/./node_modules/underscore/modules/map.js","webpack://app/./node_modules/underscore/modules/mapObject.js","webpack://app/./node_modules/underscore/modules/matcher.js","webpack://app/./node_modules/underscore/modules/max.js","webpack://app/./node_modules/underscore/modules/memoize.js","webpack://app/./node_modules/underscore/modules/min.js","webpack://app/./node_modules/underscore/modules/mixin.js","webpack://app/./node_modules/underscore/modules/negate.js","webpack://app/./node_modules/underscore/modules/noop.js","webpack://app/./node_modules/underscore/modules/now.js","webpack://app/./node_modules/underscore/modules/object.js","webpack://app/./node_modules/underscore/modules/omit.js","webpack://app/./node_modules/underscore/modules/once.js","webpack://app/./node_modules/underscore/modules/pairs.js","webpack://app/./node_modules/underscore/modules/partial.js","webpack://app/./node_modules/underscore/modules/partition.js","webpack://app/./node_modules/underscore/modules/pick.js","webpack://app/./node_modules/underscore/modules/pluck.js","webpack://app/./node_modules/underscore/modules/property.js","webpack://app/./node_modules/underscore/modules/propertyOf.js","webpack://app/./node_modules/underscore/modules/random.js","webpack://app/./node_modules/underscore/modules/range.js","webpack://app/./node_modules/underscore/modules/reduce.js","webpack://app/./node_modules/underscore/modules/reduceRight.js","webpack://app/./node_modules/underscore/modules/reject.js","webpack://app/./node_modules/underscore/modules/rest.js","webpack://app/./node_modules/underscore/modules/restArguments.js","webpack://app/./node_modules/underscore/modules/result.js","webpack://app/./node_modules/underscore/modules/sample.js","webpack://app/./node_modules/underscore/modules/shuffle.js","webpack://app/./node_modules/underscore/modules/size.js","webpack://app/./node_modules/underscore/modules/some.js","webpack://app/./node_modules/underscore/modules/sortBy.js","webpack://app/./node_modules/underscore/modules/sortedIndex.js","webpack://app/./node_modules/underscore/modules/tap.js","webpack://app/./node_modules/underscore/modules/template.js","webpack://app/./node_modules/underscore/modules/templateSettings.js","webpack://app/./node_modules/underscore/modules/throttle.js","webpack://app/./node_modules/underscore/modules/times.js","webpack://app/./node_modules/underscore/modules/toArray.js","webpack://app/./node_modules/underscore/modules/toPath.js","webpack://app/./node_modules/underscore/modules/underscore-array-methods.js","webpack://app/./node_modules/underscore/modules/underscore.js","webpack://app/./node_modules/underscore/modules/unescape.js","webpack://app/./node_modules/underscore/modules/union.js","webpack://app/./node_modules/underscore/modules/uniq.js","webpack://app/./node_modules/underscore/modules/uniqueId.js","webpack://app/./node_modules/underscore/modules/unzip.js","webpack://app/./node_modules/underscore/modules/values.js","webpack://app/./node_modules/underscore/modules/where.js","webpack://app/./node_modules/underscore/modules/without.js","webpack://app/./node_modules/underscore/modules/wrap.js","webpack://app/./node_modules/underscore/modules/zip.js","webpack://app/external var \"jQuery\"","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/make namespace object","webpack://app/webpack/runtime/node module decorator","webpack://app/./app/assets/javascripts/public_v9.js"],"sourcesContent":["UC.components.CitySmartSearch = Backbone.View.extend({\n events: {\n 'change #seo_legal_subject_city_page_State' : 'clearCity'\n },\n\n initialize: function(config) {\n this.config = config;\n\n this.$('#citySmartSearch').smartSearch({\n url: ' /radmin/admin/seo_mother_pages/city_smart_search',\n data: this.currentState.bind(this),\n select: this.successCallback.bind(this)\n });\n },\n\n clearCity: function() {\n this.$('#citySmartSearch').val('');\n this.$(this.config.cityIdSelector).val('');\n },\n\n currentState: function() {\n { State: this.$(this.config.stateSelector).val() }\n },\n\n successCallback: function(_, data) {\n this.$(this.config.cityIdSelector).val(data.item.id);\n }\n});\n","UC.partials.LawyersNavDesktop = Backbone.View.extend({\n el: '#lawyers-nav-item',\n\n events: {\n 'mouseover .topic-link-row': 'highlightTopicGroup',\n 'mouseout .topic-link-row': 'removeTopicGroupHighlight',\n 'click #lawyers-nav-link': 'lawyersNavClick',\n 'click .topic-link': 'trackTopicLinkClick'\n },\n\n initialize: function() {\n this.$lawyersNavItem = $('#lawyers-nav-item');\n this.$lawyersTopicGroup = $('#lawyers-topic-group-cell');\n this.$lawyersNavDropdown = $('#lawyers-nav-dropdown');\n this.$topicGroupLink = $('.topic-link-row');\n\n // Hover doesn't play nice in events, binded here\n this.$lawyersNavItem.hover(this.initiateHoverDelayToDisplayDropdown.bind(this), this.hidelawyersDropdown.bind(this));\n },\n\n lawyersNavClick: function (e) {\n e.preventDefault();\n this.displaylawyersDropdown();\n },\n\n initiateHoverDelayToDisplayDropdown: function () {\n this.timeoutConstant = setTimeout(function () {\n this.displaylawyersDropdown();\n }.bind(this), 300);\n },\n\n displaylawyersDropdown: function () {\n this.$lawyersNavItem.addClass('lawyers-dropdown-displayed');\n UC.utils.recordKissEvent('lawyers_nav_dropdown_shown', {currentUrl: window.location.href});\n },\n\n hidelawyersDropdown: function () {\n clearTimeout(this.timeoutConstant);\n this.$lawyersNavItem.removeClass('lawyers-dropdown-displayed');\n this.$topicGroupLink.removeClass('active');\n this.$lawyersTopicGroup.removeClass('active');\n this.$lawyersNavDropdown.removeClass('lawyers-group-displayed');\n },\n\n highlightTopicGroup: function (e) {\n var $selectedTopicGroupLink = $(e.currentTarget);\n this.$topicGroupLink.removeClass('active');\n $selectedTopicGroupLink.addClass('active');\n },\n\n removeTopicGroupHighlight: function (e) {\n this.$topicGroupLink.removeClass('active');\n },\n\n trackTopicLinkClick: function (e) {\n var $linkClicked = $(e.currentTarget);\n var linkPath = $linkClicked.attr('href');\n var linkText = $linkClicked.text();\n\n UC.utils.recordKissEvent('lawyers_nav_link_clicked', {\n currentUrl: window.location.href,\n linkPath: linkPath,\n linkText: linkText\n });\n }\n});\n\nUC.partials.LawyersNavMobile = Backbone.View.extend({\n el: '#lawyers-mobile-nav-parent',\n\n events: {\n 'click .parent-mobile-nav-link': 'toggleNavGroup'\n },\n\n initialize: function () {\n this.$parentMobileNavGroups = $('.parent-mobile-nav-group');\n\n this.$parentMobileNavGroups.on('show.bs.collapse', this.markNavLinkSelected.bind(this));\n this.$parentMobileNavGroups.on('hide.bs.collapse', this.markNavLinkUnSelected.bind(this));\n },\n\n toggleNavGroup: function (e) {\n e.preventDefault();\n var $selectedParentNavLink = $(e.currentTarget);\n\n if ($selectedParentNavLink.hasClass('indent-1') && !$selectedParentNavLink.hasClass('selected')) {\n _.each(this.$el.find('.parent-mobile-nav-group .sub-mobile-nav-group.collapse.in'), function(element) {\n $(element).collapse('toggle');\n });\n }\n\n var $selectedParentMobileNavGroup = $selectedParentNavLink.parent('.parent-mobile-nav-group');\n var $subNavs = $selectedParentMobileNavGroup.children('.sub-mobile-nav-group');\n\n $subNavs.collapse('toggle');\n\n this.$el[0].scrollIntoView({behavior: 'instant'});\n },\n\n markNavLinkSelected: function (e) {\n var $parentNav = $(e.currentTarget);\n var $parentNavLink = $parentNav.children('.parent-mobile-nav-link');\n\n $parentNavLink.addClass('selected');\n e.stopPropagation();\n },\n\n markNavLinkUnSelected: function (e) {\n var $parentNav = $(e.currentTarget);\n var $parentNavLink = $parentNav.children('.parent-mobile-nav-link');\n\n $parentNavLink.removeClass('selected');\n e.stopPropagation();\n }\n});\n","/**\n * @description - an abstract template list that provides logic fo handling proposal_template lists.\n * @requires {template}\n */\nUC.components.ProposalTemplateListAbstract = Backbone.View.extend({\n events: {\n 'click .edit-template': 'handleEdit',\n 'click .delete-template': 'handleDelete'\n },\n\n handleDelete: function(e) {\n this.onDelete(e)\n },\n\n handleEdit: function(e) {\n this.onEdit(e)\n },\n\n initialize: function(opts) {\n this.$el = opts.el;\n this.onEdit = opts.onEdit;\n this.onDelete = opts.onDelete;\n this.refreshTemplateList();\n },\n\n refreshTemplateList: function() {\n // NOTE: this header is added intentionally to differentiate browser caching\n // between a matching hit between a html/json response.\n return UC.net.get('/proposal_templates', {\n 'Content-Type': 'application/json'\n })\n .done(function(res) {\n this.proposalTemplates = res;\n this.render();\n }.bind(this))\n .fail(function() {\n this.render();\n }.bind(this));\n },\n\n render: function() {\n this.$el.html(this.template(this));\n return this;\n }\n});\n","UC = UC || {};\nUC.components = UC.components || {};\n\nUC.components.alertModal = Backbone.View.extend({\n\n tagName: 'div',\n\n className: 'modal',\n\n events: {\n \"hidden.bs.modal\" : \"deleteElement\"\n },\n\n template: UC.views.resolveHandlebarsTemplate(\"components/alert_modal\"),\n\n initialize: function(opts) {\n opts = opts || {};\n this.title = opts.title;\n this.message = opts.message;\n this.confirmAlertText = opts.confirmAlertText || 'Okay';\n this.render();\n },\n\n render: function() {\n this.$el.html(this.template(this));\n this.$el.modal();\n },\n\n deleteElement: function() {\n this.$el.remove();\n }\n\n});\n","!function() {\n\n var defaults = {\n attachments: [],\n userId: null,\n jobId: null,\n skipPathPrefix: false,\n inputName: null\n };\n\n function AttachmentTextarea($textarea, options) {\n options = options || {};\n\n this.options = $.fn.extend({}, defaults, options);\n this.attachments = this.options.attachments || [];\n\n this.$textarea = $textarea;\n this.$el = $(this.template());\n this.$list = this.$el.find('.attachments-list');\n this.$progress = this.$el.find('.progress-bar');\n\n this.render();\n this.bindEvents();\n\n this.uploader = new UC.components.Upload({\n userId: options.userId,\n jobId: options.jobId,\n attorneyId: options.attorneyId,\n skipPathPrefix: options.skipPathPrefix,\n onInit: this.makeDropPane.bind(this),\n onUploadComplete: this.onUploadComplete.bind(this),\n upload_path: this.options.upload_path,\n source_type: this.options.source_type,\n fileStackApiKey: UC.constants.sharedFileStackApiKey\n });\n\n // render any existing attachments\n if (this.attachments.length > 0) {\n this.renderAttachmentRows(this.attachments);\n }\n }\n\n AttachmentTextarea.prototype = {\n\n constructor: AttachmentTextarea,\n\n template: UC.views.resolveHandlebarsTemplate('components/attachment_textarea'),\n\n templateAttachment: UC.views.resolveHandlebarsTemplate('public/invoices/attachment'),\n\n render: function() {\n // move textarea inside our special container\n this.$textarea.after(this.$el);\n this.$el.prepend(this.$textarea);\n\n // add error class to container element if present on textarea\n if (this.$textarea.hasClass('has-error')) {\n this.$el.addClass('has-error');\n }\n },\n\n bindEvents: function() {\n this.$el.find('.choose-attachments').on('click', this.openFilePicker.bind(this));\n this.$el.find('.attachments-list').on('click', '.attachment-remove', this.destroy.bind(this));\n\n this.$textarea.on('focus blur', function(e) {\n this.$el.toggleClass('focused', e.type === 'focus');\n }.bind(this));\n },\n\n makeDropPane: function(uploader) {\n uploader.makeDropPane(this.$el, {\n onStart: this.dragDropStart.bind(this),\n onProgress: this.dragDropProgress.bind(this),\n onError: this.dragDropError.bind(this)\n });\n },\n\n dragDropStart: function() {\n // show some fake progress get the user excited\n this.$progress.css('width', '5%').show();\n },\n\n dragDropProgress: function(percentage) {\n if (percentage > 5) {\n this.$progress.css('width', '{0}%'.format(percentage));\n }\n },\n\n dragDropError: function(type, message) {\n this.$el.removeClass('dragging');\n\n if (type === 'WrongSize') {\n message = 'File too large. Must be less than 5 Mb';\n }\n\n UC.utils.showNotification(message, UC.constants.results.failure);\n },\n\n onUploadComplete: function(err, documents) {\n this.$el.removeClass('uploading');\n\n if (err) return;\n\n this.attachments = this.attachments.concat(documents);\n this.renderAttachmentRows(documents); // only new ones\n\n if (this.options.inputName) {\n var name = this.options.inputName;\n this.appendAttachmentInputs(name, documents);\n }\n },\n\n renderAttachmentRows: function(documents) {\n // append new documents to attachments list\n _.each(documents, function(doc) {\n\n var $attachment = $(this.templateAttachment({\n id: doc._id,\n name: doc.FileName\n }));\n\n // make sure names aren't too long\n $attachment.find('.attachment-name').css({\n 'max-width': this.$el.innerWidth() - 60\n });\n\n this.$list.append($attachment);\n }.bind(this));\n\n this.toggleList();\n },\n\n appendAttachmentInputs: function(name, documents) {\n\n _.each(documents, function(doc) {\n var html = ''.format(name, doc._id);\n var $input = $(html);\n this.$el.after($input);\n }.bind(this));\n },\n\n openFilePicker: function(e) {\n if (e) e.preventDefault();\n this.uploader.openFilePicker();\n },\n\n destroy: function(e) {\n e.preventDefault();\n\n var $el = $(e.target).closest('.attachment');\n var id = $el.data('id');\n\n $el.hide();\n\n // if we're removing the last one, hide the list\n if (this.attachments.length <= 1) {\n this.$list.hide();\n }\n\n this.uploader.destroy(id, function(err, message) {\n if (err) {\n $el.show();\n this.$list.show();\n UC.utils.showNotification('There was an error removing that attachment.', UC.constants.results.failure);\n } else {\n $el.remove();\n this.attachments = _.reject(this.attachments, function(attachment) {\n return attachment._id === id;\n });\n }\n }.bind(this));\n },\n\n toggleList: function() {\n if (this.attachments.length > 0) {\n this.$list.show();\n } else {\n this.$list.hide();\n }\n },\n\n getDocumentIds: function() {\n return _.map(this.attachments, function(attachment) {\n return attachment._id;\n });\n },\n\n reset: function() {\n this.attachments = [];\n this.$list.hide().empty();\n }\n };\n\n $.fn.attachmentTextarea = function() {\n var args = Array.prototype.slice.apply(arguments);\n var $el = $(this).first();\n var existing = $el.data('attachmenttextarea');\n\n if (existing && typeof args[0] === 'string') {\n return existing[args[0]].apply(existing, args.slice(1));\n } else {\n var ata = new AttachmentTextarea(this, args[0]);\n $el.data('attachmenttextarea', ata);\n return ata;\n }\n };\n}();\n","!function() {\n if ($('.js-attorney-badge').length) {\n $('.js-attorney-badge').on('shown.bs.tooltip', function () {\n UC.utils.recordKissEvent('attorney badge tooltip shown');\n });\n\n $('.js-attorney-image-wrapper').hover(\n function() {\n $(this).find('.js-attorney-badge').tooltip('show');\n }, function() {\n $(this).find('.js-attorney-badge').tooltip('hide');\n }\n );\n }\n}();\n","!function() {\n\n UC.components.Authentication = function(options) {\n this.options = options || {};\n };\n\n UC.components.Authentication.prototype = {\n\n constructor: UC.components.Authentication,\n\n logon: function(data, callback) {\n\n if (this.options.next_url) {\n data.next_url = this.options.next_url;\n }\n\n return UC.net.post('/sessions', data, function(result) {\n if (typeof callback === 'function') {\n callback(null, result);\n }\n }).fail(function(xhr) {\n if (xhr.responseJSON && typeof callback === 'function') {\n xhr.handled = true;\n callback(xhr.responseJSON);\n }\n });\n },\n\n logonGoogle: function(options = {}) {\n return new UC.components.GoogleApi({\n next_url: this.options.next_url,\n context: options.context || 'signin',\n backdrop: options.backdrop,\n }).authorize(function (data) {\n if (typeof options.callback === 'function') {\n options.callback(data);\n }\n }.bind(this));\n },\n\n logonLinkedIn: function(options = {}) {\n const url = 'https://www.linkedin.com/oauth/v2/authorization?response_type=code' +\n `&client_id=${UC.constants.linkedInClientId}` +\n `&redirect_uri=${window.location.protocol}//${window.location.host}/auth/linkedin/callback` +\n '&scope=r_emailaddress,r_liteprofile' +\n `&state=${UC.constants.omniauthToken}`\n\n const popupHeight = 700;\n const popupWidth = 600;\n const popupParams = [\n 'popup=yes',\n `width=${popupWidth}`,\n `height=${popupHeight}`,\n `left=${(window.screen.width - popupWidth) / 2}`,\n `top=${(window.screen.height - popupHeight) / 2}`\n ]\n window.open(url, '_blank', popupParams.join());\n\n // https://blog.bitsrc.io/4-ways-to-communicate-across-browser-tabs-in-realtime-e4f5f6cbedca\n const channel = new BroadcastChannel('uc-omniauth-callback');\n channel.addEventListener('message', (event) => {\n channel.close();\n if (typeof options.callback === 'function') {\n options.callback(event.data);\n }\n });\n\n return true;\n },\n\n handleLogonError: function(err) {\n switch (err) {\n case 'suspended':\n UC.utils.showNotification(\"Your account has been suspended.\", UC.constants.results.failure);\n break;\n case 'pending':\n UC.utils.showNotification(\"Your account is pending. Please check your email for activation link.\", UC.constants.results.failure);\n break;\n default:\n err = err || \"An unknown error occurred.\";\n UC.utils.showNotification(err, UC.constants.results.failure);\n break;\n }\n }\n };\n}();\n","!function() {\n\n UC.components.BillingSummary = Backbone.View.extend({\n\n events: {\n 'click #btnAddCoupon' : 'addCouponClick',\n 'click #aRemoveCoupon' : 'removeCouponClick',\n 'click #btnAddUserCoupon' : 'addUserCouponClick'\n },\n\n initialize: function() {\n this.loader = this.$el.find('#btnAddCoupon').buttonLoader();\n this.referralLoader = this.$el.find('#btnAddUserCoupon').buttonLoader();\n this.initFeePopovers();\n },\n\n initFeePopovers: function() {\n new UC.components.FeesPopover({ el: this.$el });\n },\n\n addCouponClick: function (e) {\n e.preventDefault();\n\n var code = this.$('#txtCoupon').val().trim();\n var $form_group = this.$('#panelCoupon .form-group');\n\n $form_group.removeClass('has-error');\n\n if (code === '') {\n $form_group.addClass('has-error');\n }\n else {\n this.loader.showLoader();\n this.addCoupon(code);\n }\n },\n\n addCoupon: function (code) {\n var url = '';\n var data = {\n render_billing_summary: true\n };\n\n if (UC.constants.upfrontPayment) {\n url = '/jobs/{0}/coupon/{1}'.format(UC.job.id, code);\n data.bid_id = UC.bid.id;\n } else {\n url = '/invoices/{0}/coupon/{1}'.format(UC.invoice.id, code);\n }\n\n UC.net.post(url, data, this.onAddCoupon.bind(this)).always(function(){\n this.loader.hideLoader();\n }.bind(this));\n },\n\n onAddCoupon: function (res) {\n this.$el.html(res.html);\n this.delegateEvents();\n this.initFeePopovers();\n },\n\n removeCouponClick: function (e) {\n e.preventDefault();\n this.loader.showLoader();\n var data = {render_billing_summary: true},\n url = '';\n\n if (UC.constants.upfrontPayment) {\n url = '/jobs/{0}/coupon'.format(UC.job.id, UC.bid.id);\n data.bid_id = UC.bid.id;\n } else {\n url = '/invoices/{0}/coupon'.format(UC.invoice.id);\n }\n\n UC.net.destroy(url, data, this.onRemoveCoupon.bind(this)).always(function(){\n this.loader.hideLoader()\n }.bind(this));\n },\n\n onRemoveCoupon: function (res) {\n this.$el.html(res.html);\n this.loader = this.$el.find('#btnAddCoupon').buttonLoader();\n this.referralLoader = this.$el.find('#btnAddUserCoupon').buttonLoader();\n this.delegateEvents();\n },\n\n addUserCouponClick: function(e) {\n e.preventDefault();\n this.referralLoader.showLoader();\n this.addCoupon($(e.currentTarget).data('code'));\n }\n\n });\n\n}();\n","!function() {\n\n $.fn.buttonLoader = function(options) {\n var that = this,\n $el = $(this),\n defaults = { },\n content = this.html(),\n opt = $.fn.extend({}, defaults, options);\n\n var html = '{0}'.format($el.html());\n $el.html(html);\n\n // http://stackoverflow.com/q/5985839/629356\n $el.attr('disabled', false);\n $el.data('button-loader', this);\n\n this.showLoader = function() {\n var $this = $(this);\n\n if (!$this.hasClass('disabled')) {\n that.disableBtn();\n $this.addClass('loading');\n $this.find('.loader').removeClass('hide')\n }\n };\n\n this.hideLoader = function() {\n var $this = $(this);\n\n $this.attr('disabled', false);\n $this.removeClass('loading');\n $this.find('.loader').addClass('hide')\n };\n\n this.disableBtn = function() {\n var $this = $(this);\n\n $this\n .css('min-width', $this.outerWidth())\n .attr('disabled', true);\n\n $this.trigger('propogateTracking');\n };\n\n return this;\n };\n}();\n","import '../models/availability_time_range'\n\nUC.components.AvailabilityTimeRanges = Backbone.Collection.extend({\n model: UC.components.AvailabilityTimeRange\n})\n","UC.components.AvailabilityTimeRange = Backbone.Model.extend({});\n","UC.components.AvailabilityDayGroupView = Backbone.View.extend({\n\n tagName: 'div',\n\n className: 'availability-day-group marg-b-15',\n\n events: {\n 'click .add-time-range' : 'addNewTimeRange'\n },\n\n template: UC.views.resolveHandlebarsTemplate(\"components/calendar_availability/availability_day_group\"),\n\n initialize: function(args) {\n this.day = args.day;\n this.collection.on('add', this.appendNewModelView.bind(this));\n },\n\n render: function() {\n this.$el.html(this.template({dayDisplay: this.dayDisplay()}));\n\n this.collection.forEach(function(availabilityTimeRangeModel) {\n this.appendNewModelView(availabilityTimeRangeModel)\n }, this);\n\n this.initSelect2();\n },\n\n dayDisplay: function() {\n return this.day.capitalize();\n },\n\n initSelect2: function () {\n $('select').select2({width: \"100%\"});\n },\n\n addNewTimeRange: function(e) {\n e.preventDefault();\n var newModel = new UC.components.AvailabilityTimeRange({\n FromTime: '9:00',\n ToTime: '17:00',\n Day: this.day\n })\n this.collection.add(newModel);\n this.initSelect2();\n },\n\n appendNewModelView: function(availabilityTimeRangeModel) {\n // We only will append the new range row if it's for this day group\n if (availabilityTimeRangeModel.get('Day') !== this.day) return;\n\n availabilityView = new UC.components.AvailabilityTimeRangeView({\n model: availabilityTimeRangeModel\n });\n\n availabilityView.render();\n this.$('.time-ranges').append(availabilityView.$el);\n }\n\n\n})\n","UC.components.AvailabilityTimeRangeView = Backbone.View.extend({\n\n tagName: 'div',\n\n className: 'marg-t-10',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/calendar_availability/availability_time_range\"),\n\n events: {\n 'click .remove-range' : 'removeTimeRangeModel',\n 'change select' : 'updateModelFromRangeChange'\n },\n\n initialize: function() {\n this.model.on('remove', this.removeEl.bind(this));\n },\n\n timeOptions: function() {\n var selectOpts = [];\n\n for (var i=0; i < 24; i++) {\n\n var newSelectOpts = [\n { value: i + ':00', display: this.hourDisplay(i) + ':00 ' + this.amPmForHour(i)},\n { value: i + ':30', display: this.hourDisplay(i) + ':30 ' + this.amPmForHour(i)},\n ]\n\n selectOpts = selectOpts.concat(newSelectOpts);\n }\n\n return selectOpts;\n },\n\n hourDisplay: function(hour) {\n if (hour === 0) return 12;\n if (hour > 12) return hour - 12;\n return hour;\n },\n\n amPmForHour: function(hour) {\n if (hour >= 12) {\n return 'PM';\n } else {\n return 'AM';\n }\n },\n\n render: function() {\n this.$el.html(this.template({timeOptions: this.timeOptions(), model: this.model}));\n },\n\n removeTimeRangeModel: function(e) {\n e.preventDefault();\n this.model.collection.remove(this.model);\n },\n\n removeEl: function() {\n this.$el.remove();\n },\n\n updateModelFromRangeChange: function(e) {\n var updateArgs = {},\n $updateSelect = $(e.currentTarget);\n\n updateArgs[$updateSelect.attr('name')] = $updateSelect.val();\n this.model.set(updateArgs);\n }\n\n});\n","UC.components.AvailabilityTimeRangesView = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"components/calendar_availability/availability_time_ranges\"),\n\n events: {\n 'submit' : 'submitAvailability'\n },\n\n routes: {\n availability_time_ranges: '/calendars/availability_time_ranges'\n },\n\n initialize: function(opts) {\n UC.net.get(this.routes.availability_time_ranges)\n .done(function(res) {\n this.collection = new UC.components.AvailabilityTimeRanges(res.availability_time_ranges);\n this.render();\n }.bind(this));\n },\n\n render: function() {\n this.$el.html(this.template(this.templateData));\n this.$avaliabilityRangeGroups = this.$('#availability-range-groups');\n\n _.each(this.availabilityDays, function(day) {\n var dayGroupView = new UC.components.AvailabilityDayGroupView({\n day: day,\n collection: this.collection\n });\n\n dayGroupView.render();\n\n this.$avaliabilityRangeGroups.append(dayGroupView.$el);\n }, this)\n\n this.submitBtnLoader = this.$('#submit-time-ranges').buttonLoader();\n },\n\n templateData: (function() {\n return { advanceNoticeBufferOptions: _advanceNoticeBufferOptions() }\n\n function _advanceNoticeBufferOptions() {\n var _results = [_formatOption(1)];\n\n for (var i = 2; i < 9; i++) { _results.push(_formatOption(i)); }\n _results.push(_formatOption(24));\n\n return _results;\n\n function _formatOption(option) {\n var _hourString;\n\n if (option > 1) { _hourString = ' hours' } else { _hourString = ' hour' };\n\n return {\n value: option,\n display: option + _hourString,\n selected: UC.constants.advance_notice_buffer === option\n };\n }\n }\n })(),\n\n availabilityDays: [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n 'sunday'\n ],\n\n submitAvailability: function(e) {\n e.preventDefault();\n this.submitBtnLoader.showLoader();\n\n UC.net.post(this.routes.availability_time_ranges, {\n availability_time_ranges: this.collection.toJSON(),\n advance_notice_buffer:\n UC.utils.findSelectedElement(this.$el.find('.js-advance-notice-dropdown')).val()\n })\n .done(function(res) {\n UC.utils.showNotification(res.message, UC.constants.results.success);\n })\n .always(function() {\n this.submitBtnLoader.hideLoader();\n }.bind(this));\n }\n\n});\n","!function () {\n\n var defaults = {\n checkboxSelector: '.modal-checkbox-required',\n confirmBtnSelector: '.modal-confirm-btn',\n modalSelector: '#modal'\n };\n\n var CheckboxModal = function (options) {\n options = $.extend({}, defaults, options || {});\n this.checkboxSelector = options.checkboxSelector;\n this.confirmBtnSelector = options.confirmBtnSelector;\n this.modalSelector = options.modalSelector;\n this.initialize();\n };\n\n CheckboxModal.prototype = {\n initialize: function () {\n var checkboxes = $(this.checkboxSelector);\n var modal = $(this.modalSelector);\n\n // Ensure confirm button is disabled when modal is first shown\n modal.on('shown.bs.modal', this.setConfirmBtnDisability.bind(this));\n\n // Track each time modal opens in KISS\n modal.on('shown.bs.modal', this.registerViewEvent.bind(this));\n\n // Toggle confirm button disability based on all checkboxes being checked\n checkboxes.click(this.setConfirmBtnDisability.bind(this));\n\n // Track confirm button clicks only if checkboxes are all checked\n checkboxes.click(this.configureClickTracking.bind(this));\n },\n\n areAllCheckboxesChecked: function () {\n var selector = this.modalSelector + ' ' + this.checkboxSelector;\n return $(selector + ':checked').length === $(selector).length;\n },\n\n configureClickTracking: function () {\n var confirmBtn = $(this.confirmBtnSelector);\n var allChecked = this.areAllCheckboxesChecked();\n\n if (allChecked && !confirmBtn.hasClass('track-click')) {\n confirmBtn.addClass('track-click');\n } else if (!allChecked) {\n confirmBtn.removeClass('track-click');\n }\n },\n\n registerViewEvent: function () {\n var eventName = $(this.modalSelector).data('view-event-name');\n if (eventName) UC.utils.recordKissEvent(eventName);\n },\n\n setConfirmBtnDisability: function () {\n var allChecked = this.areAllCheckboxesChecked();\n $(this.confirmBtnSelector).prop('disabled', !allChecked);\n }\n };\n\n UC.components.checkboxModal = function (options) {\n new CheckboxModal(options);\n };\n\n}();\n","UC.components.confirmModal = function (options) {\n var that = this,\n defaults = {\n title: 'Confirm Operation',\n text: '',\n noText: 'No',\n yesText: 'Yes',\n callback: $.noop,\n dismissOnYes: true,\n },\n opt = $.fn.extend({}, defaults, options);\n\n function onNoClick() {\n opt.callback(false);\n }\n\n function onYesClick() {\n opt.callback(true);\n }\n\n var $modal = $('
');\n var $content = $modal.find('.modal-content');\n var $backdrop = $('
');\n\n // header\n $content.append('

{0}

'.format(opt.title));\n\n // body\n $content.append('
{0}
'.format(opt.text));\n\n // buttons\n var $no = $(''.format(opt.noText));\n var $yes = $(''.format(opt.yesText));\n if (opt.dismissOnYes) $yes.attr('data-dismiss', 'modal');\n var $footer = $('
');\n\n $no.click(onNoClick);\n $yes.click(onYesClick);\n\n if (opt.noText === '') {\n $footer.append($yes);\n } else {\n $footer.append($no, $yes);\n }\n $footer.appendTo($content);\n\n $backdrop.css('z-index', '9998');\n $modal.css('z-index', '9999');\n\n $modal.modal({ backdrop: false });\n $('body').append($backdrop);\n\n $modal.on('hidden.bs.modal', function() {\n $backdrop.remove();\n $modal.remove();\n });\n};\n","UC.components.contentPage = {};\nUC.components.contentPage.data = {};\nUC.components.contentPage.components = {};\n\nUC.components.contentPage.onClickPostJobBtn = function(e) {\n var loc = $(e.target).attr(\"btn-loc\");\n if (loc){\n var p = window.location.pathname;\n UC.utils.recordKissEvent('Post a Job Button Click', {\"location\" : loc, \"page-path\": p, 'page' : $contentPage.data.page});\n }\n};\n\nUC.components.contentPage.removeCtaStickyFooter = function() {\n $('.sticky-cta-footer').removeClass('active');\n $('#footer').removeClass('sticky-footer-active');\n};\n\nUC.components.contentPage.setCtaBannerSize = function(header) {\n var scrollTop = $(document).scrollTop(),\n $stickyElement,\n isMobile,\n headerTop = header.offset().top;\n\n if (!UC.utils.isMobileViewPort()) {\n $stickyElement = $('.sticky-cta-header');\n isMobile = false;\n } else {\n $stickyElement = $('.sticky-cta-footer');\n isMobile = true;\n }\n\n if($stickyElement.length > 0) {\n if (scrollTop >= headerTop) {\n $stickyElement.addClass('active');\n if (isMobile) {\n $('#footer').addClass('sticky-footer-active');\n }\n } else {\n $stickyElement.removeClass('active');\n if (isMobile) {\n $('#footer').removeClass('sticky-footer-active');\n }\n }\n }\n};\n\nUC.components.contentPage.setHeaderSize = function() {\n var scrollTop = $(document).scrollTop(),\n $header = $('.fixed'),\n $footer = $('.sticky-footer');\n\n if (scrollTop >= $contentPage.data.ctaBtn) {\n $header.addClass('small');\n $footer.addClass('active');\n } else {\n $header.removeClass('small');\n $footer.removeClass('active');\n }\n};\n\nUC.components.contentPage.init = function () {\n window.$contentPage = UC.components.contentPage;\n\n $contentPage.data.ctaBtn = $(\".main-cta-btn\").length > 0 ? $(\".main-cta-btn\").offset().top : 150;\n $contentPage.data.page = window.location.pathname.replace(\"/\",\"\");\n\n $(\".btn[data-loc]\").click($contentPage.onClickPostJobBtn);\n $contentPage.setHeaderSize();\n $(document).scroll($contentPage.setHeaderSize);\n\n UC.utils.initRatingDimensions();\n\n /* Seo Mother Pages */\n UC.utils.recordKissClickEvent('.mother-document-cross-link', 'Seo Cross Link Click', {\"category\": \"document\", \"page-path\": location.href, \"page-tag\" : \"seo mother\"});\n UC.utils.recordKissClickEvent('.mother-article-cross-link', 'Seo Cross Link Click', {\"category\": \"article\", \"page-path\": location.href, \"page-tag\" : \"seo mother\"});\n UC.utils.recordKissClickEvent('.mother-topic-cross-link', 'Seo Cross Link Click', {\"category\": \"topic\", \"page-path\": location.href, \"page-tag\" : \"seo mother\"});\n\n /* Seo Child Pages */\n UC.utils.recordKissClickEvent('.child-document-cross-link', 'Seo Cross Link Click', {\"category\": \"document\", \"page-path\": location.href, \"page-tag\" : \"seo page\"});\n UC.utils.recordKissClickEvent('.child-article-cross-link', 'Seo Cross Link Click', {\"category\": \"article\", \"page-path\": location.href, \"page-tag\" : \"seo page\"});\n UC.utils.recordKissClickEvent('.child-topic-cross-link', 'Seo Cross Link Click', {\"category\": \"topic\", \"page-path\": location.href, \"page-tag\" : \"seo page\"});\n UC.utils.recordKissClickEvent('.child-nearby-cross-link', 'Seo Cross Link Click', {\"category\": \"nearby\", \"page-path\": location.href, \"page-tag\" : \"seo page\"});\n\n\n};\n\n$(UC.components.contentPage.init);\n","!function() {\n\n var defaults = {\n addCurrencySymbol: false\n };\n\n $.fn.currencyInput = function (opts) {\n var options = $.fn.extend({}, defaults, opts);\n var that = this;\n\n function formatCurrency() {\n\n that.each(function () {\n var $this = $(this);\n var value = $this.val() || 0;\n var formatted = UC.utils.formatCurrency(value, options.addCurrencySymbol);\n\n $this.val(formatted);\n });\n }\n\n formatCurrency();\n\n return that.blur(formatCurrency);\n };\n}();\n","!function() {\n\n UC.components.CustomMessage = Backbone.View.extend({\n\n events: {\n 'click #custom-message-view-more': 'view',\n 'click .custom-message-dismiss': 'dismiss'\n },\n\n view: function() {\n UC.utils.recordKissEvent('custom_message_view_more_click', {\n user_id: (UC.user ? UC.user.id : ''),\n custom_message_id: this.$el.data('id')\n });\n },\n\n dismiss: function(e) {\n e.preventDefault();\n $.post(this.$el.data('mark-read-path'));\n this.$el.remove();\n\n UC.utils.recordKissEvent('custom_message_dismiss_click', {\n user_id: (UC.user ? UC.user.id : ''),\n custom_message_id: this.$el.data('id')\n });\n }\n });\n}();\n\n$(function() {\n var $el = $('#custom-message');\n\n if ($el.length > 0) {\n new UC.components.CustomMessage({\n el: $el\n });\n }\n});\n","!function() {\n\n var defaults = {\n checked: false,\n label: null,\n cssClass: ''\n };\n\n function FancyCheck(el, options) {\n this.$el = $(el);\n this.options = $.fn.extend({}, defaults, options);\n this.checked = this.options.checked;\n this.manualChecking = this.options.manualChecking;\n\n if (this.checked) {\n this.$el.addClass('checked');\n }\n\n if (!this.options.label && this.$el.text()) {\n this.options.label = this.$el.text();\n }\n\n this.$el.addClass('fancy-check noselect {0}'.format(this.options.cssClass));\n\n this.render();\n \n if (!this.manualChecking) this.bindEvents();\n this.bindCheck();\n }\n\n FancyCheck.prototype = {\n\n constructor: FancyCheck,\n\n render: function() {\n var html = '';\n\n if (this.options.label) {\n html += ''.format(this.$el.attr('id'), this.options.label);\n }\n\n this.$el.html(html);\n },\n\n bindEvents: function() {\n\n this.$el.on('click', function() {\n if (!this.$el.hasClass('disabled')) {\n this.checked = !this.checked;\n if (this.checked) {\n this.$el.addClass('checked');\n } else {\n this.$el.removeClass('checked');\n }\n this.$el.trigger('change', this.checked);\n }\n }.bind(this));\n\n this.$el.on('keydown', function(e) {\n if (!this.$el.hasClass('disabled')) {\n if(e.keyCode == 32){\n e.preventDefault();\n this.$el.trigger('click');\n }\n }\n }.bind(this));\n },\n\n check: function() {\n\n if (!this.$el.hasClass('disabled')) {\n if (arguments.length == 0) { // get\n return this.checked;\n } else if (arguments[0] === true) {\n this.checked = true;\n this.$el.addClass('checked');\n this.$el.trigger('change');\n }\n else if (arguments[0] === false) {\n this.checked = false;\n this.$el.removeClass('checked');\n this.$el.trigger('change');\n }\n }\n\n return this.$el;\n },\n\n bindCheck: function() {\n this.$el.check = this.check.bind(this);\n }\n };\n\n $.fn.fancyCheck = function() {\n var args = Array.prototype.slice.apply(arguments);\n var existing = $(this).data('fancycheck');\n\n if (existing && typeof args[0] === 'string') {\n return existing[args[0]].apply(existing, args.slice(1));\n } else {\n var fancy = new FancyCheck(this, args[0]);\n $(this).data('fancycheck', fancy);\n return fancy.$el;\n }\n };\n}();\n","UC.components.FeesPopover = Backbone.View.extend({\n\n events: {\n 'shown.bs.popover .proc-fee-popover' : 'procFeePopoverShown'\n },\n\n initialize: function(options) {\n this.initPopover(options);\n this.closePopoverOnClickOutsideOfPopover();\n },\n\n closePopoverOnClickOutsideOfPopover: function() {\n // hide popover when clicking outside of popover\n $('body').on('click', function (e) {\n\n $('.proc-fee-popover').each(function () {\n if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {\n $(this).popover('hide');\n }\n });\n\n });\n\n // when a popover is hidden via 'hide' we need to reset its state so it will open when clicked again\n $('body').on('hidden.bs.popover', function (e) {\n $(e.target).data(\"bs.popover\").inState = { click: false, hover: false, focus: false }\n });\n },\n\n initPopover: function(options) {\n options = options || {};\n\n this.$('.proc-fee-popover').each(function() {\n\n $(this).popover({\n container: options.container,\n placement: function() {\n if ($(window).isMobileWidth()) {\n return 'bottom';\n } else {\n return this.$element.data('placement');\n }\n }\n }).data('bs.popover')\n .tip()\n .addClass('fs-12');\n });\n },\n\n procFeePopoverShown: function(e) {\n var kissData = {\n userId: UC.user.id,\n page: \"{0}_{1}\".format(UC.controller, UC.action),\n type: $(e.target).data('type')\n };\n\n if (UC.invoice) kissData.invoiceId = UC.invoice.id;\n if (UC.job) kissData.jobId = UC.job.id;\n\n UC.utils.recordKissEvent('fee_popover_shown', kissData);\n }\n});\n","!function() {\n\n UC.components.FollowUpOffers = Backbone.View.extend({\n\n events: {\n 'click .follow-up-offer-hire-btn': 'acceptProposal'\n },\n\n initialize: function() {\n this.$el.find('.follow-up-offer-hire-btn').each(function() {\n $(this).buttonLoader();\n });\n },\n\n acceptProposal: function(e) {\n e.preventDefault();\n\n var $el = $(e.currentTarget);\n var url = $el.attr('href');\n\n $el.data('button-loader').showLoader();\n\n UC.net.post(url, function(res) {\n window.location = res.next_url;\n });\n }\n\n });\n\n}();\n","export const GeoLocation = Backbone.View.extend({\n userChoiceLocalKey: 'UC.user.zip_code',\n\n initialize: function() {\n this.validateUserChoiceDebounced = _.debounce(this.validateUserChoice, 500);\n },\n\n findZip: function(succesfullCallback) {\n UC.net.get('/api/v1/find_zip_by_ip', succesfullCallback)\n },\n\n storeUserChoice: function(value) {\n try {\n if(/^\\d+$/.test(value) && value.toString().length >= 5) {\n localStorage.setItem(this.userChoiceLocalKey, JSON.stringify({zip: value, timestamp: new Date().getTime()}));\n this.validateUserChoiceDebounced(value);\n } else {\n localStorage.removeItem(this.userChoiceLocalKey)\n }\n } catch(e) {\n console.warn('Failed to update data in localStorage', e);\n }\n },\n\n fetchUserChoice: function() {\n try {\n const localData = JSON.parse(localStorage.getItem(this.userChoiceLocalKey) || '{}');\n if (localData) {\n const diffHours = Math.abs( new Date() - localData.timestamp) / (1000 * 60 * 60); // 1 hour\n if (diffHours < 1) {\n return localData.zip;\n }\n }\n } catch(e) {\n console.warn('Failed to read data from localStorage', e);\n }\n return null;\n },\n\n validateUserChoice: function(value) {\n UC.net.get('/account/valid_zip_code/{0}'.format(value), {}, null).fail(function(res) {\n res.handled = true;\n if (this.fetchUserChoice() === value) {\n this.storeUserChoice(NaN);\n }\n }.bind(this));\n }\n});\n","import { GeoLocation } from './geo_location'\n\nexport const GeoLocationPajWidjet = Backbone.View.extend({\n initialize: function(options) {\n const geoLocationComponent = new GeoLocation();\n const $input = options.input || this.$el.find('.js-geo-location-zip');\n\n const userChoice = geoLocationComponent.fetchUserChoice();\n if (userChoice) {\n $input.val(userChoice);\n } else {\n geoLocationComponent.findZip(function (response) {\n $input.val(response.zip);\n });\n }\n\n const $triggeredLink = options.triggeredLink || this.$el.find('.js-new-job');\n if ($triggeredLink.length) {\n $input.on('keypress', function(e) {\n if (e.which === 13) {\n $triggeredLink.click();\n }\n });\n }\n\n $input.on('keyup', function(e) {\n if (e.which !== 13) {\n geoLocationComponent.storeUserChoice($input.val());\n }\n })\n },\n});\n","!function() {\n\n UC.components.GoogleApi = function(options) {\n this.options = options || {};\n\n this.isChrome = navigator.userAgentData &&\n navigator.userAgentData.brands &&\n _.filter(navigator.userAgentData.brands, function(row) {\n return row.brand === \"Google Chrome\";\n }).length > 0;\n this.fedCMEnabled = this.isChrome && typeof window.IdentityCredential !== \"undefined\";\n };\n\n UC.components.GoogleApi.prototype = {\n\n authorize: function(callback) {\n const self = this;\n this.callback = callback;\n\n if (!window.google || !window.google.accounts || !window.google.accounts.id) {\n console.warn('google identity service is not initialized yet.');\n return;\n }\n\n if (this.options.backdrop) {\n this.$backdrop = $('
');\n }\n\n if (!window.google_id_initialized) {\n console.info('google.accounts.id.initialize');\n\n google.accounts.id.initialize({\n client_id: UC.constants.google_client_id,\n auto_select: false,\n ux_mode: 'popup',\n cancel_on_tap_outside: true,\n use_fedcm_for_prompt: this.fedCMEnabled,\n context: this.options.context,\n callback: function (resp) {\n const instance = window.google_api_instance;\n if (instance) {\n instance.removeBackdrop();\n instance.handleAuthResult(resp, instance.callback);\n window.google_api_instance = null;\n }\n }\n });\n\n window.google_id_initialized = true; // 'initialize' must be called once on a page according to Google\n }\n\n window.google_api_instance = self;\n\n if (self.$backdrop) {\n $('body').append(self.$backdrop);\n }\n\n google.accounts.id.prompt(\n function (notification) {\n if (window.Bugsnag) {\n Bugsnag.leaveBreadcrumb('google.accounts.id.prompt', {notificationJSON: JSON.stringify(notification)});\n }\n const context = this.options.context || 'signin';\n if (this.fedCMEnabled) {\n this.fedCmPromptCallback(notification, context, callback)\n } else {\n this.noFedCmPromptCallback(notification, context, callback)\n }\n }.bind(this)\n );\n },\n\n removeBackdrop: function() {\n if (this.$backdrop) {\n this.$backdrop.remove();\n }\n },\n\n fedCmPromptCallback: function(notification, context, callback) {\n if (notification.isSkippedMoment()) {\n this.removeBackdrop();\n\n const skipReason = typeof notification.getSkippedReason === 'function' && notification.getSkippedReason();\n console.log('skipReason', skipReason)\n\n if (skipReason && (skipReason === 'tap_outside' || skipReason === 'user_cancel')) {\n callback({\n status: `${context}_skipped`,\n provider: 'google_oauth2'\n })\n } else {\n const contextAction = context === 'signup' ? 'up' : 'in';\n const skipMessage =\n `Sign ${contextAction} with Google was canceled, please sign ${contextAction} \\\n with your email ${context !== 'signup' ? 'and password ' : ' '}instead. \\\n
\n In some cases, Google sign-${contextAction} might not work due to extensions like 1Password or AdBlocker, \\\n try temporarily disabling them to resolve the issue.\\\n
\\\n
\\\n Also, please make sure that Chrome sync with your Google account is turned on and \\\n Third-party sign-in is not blocked by clicking the page info icon in the address bar and \\\n then clicking the Reset Permission button accordingly. \\\n
`\n\n callback({\n status: `${context}_not_displayed`,\n provider: 'google_oauth2',\n googleErrorMessage: skipMessage,\n })\n }\n } else if (notification.isDismissedMoment()) {\n this.removeBackdrop();\n\n callback({\n status: `${context}_skipped`,\n provider: 'google_oauth2'\n })\n }\n },\n\n noFedCmPromptCallback: function(notification, context, callback) {\n const isNotDisplayed = typeof notification.isNotDisplayed === 'function' && notification.isNotDisplayed();\n if (notification.isSkippedMoment() || isNotDisplayed) {\n this.removeBackdrop();\n document.cookie = 'g_state={}; max-age=0; path=/';\n if (isNotDisplayed) {\n console.warn(notification);\n const getNotDisplayedReason = typeof notification.getNotDisplayedReason === 'function' && notification.getNotDisplayedReason();\n if (window.Bugsnag && getNotDisplayedReason !== 'opt_out_or_no_session') {\n Bugsnag.notify(new Error(`google.accounts.id.prompt was not displayed ${getNotDisplayedReason}`), function (event) {\n event.addMetadata('notification', {NotDisplayedReason: getNotDisplayedReason})\n });\n }\n }\n callback({\n status: `${context}_${notification.isSkippedMoment() ? 'skipped' : 'not_displayed'}`,\n provider: 'google_oauth2',\n googleErrorMessage: this.buildErrorMessage(notification)\n })\n }\n },\n\n buildErrorMessage: function(notification) {\n const getNotDisplayedReason = notification.getNotDisplayedReason()\n const context = this.options.context || 'signin';\n const contextWords = context === 'signup' ? 'sign up' : 'sign in';\n const message = `You can not ${contextWords} with Google at the moment, please ${contextWords} using your email and password instead.`;\n if (notification.isNotDisplayed() && getNotDisplayedReason === 'opt_out_or_no_session') {\n if (this.isChrome) {\n return `In order to ${contextWords} with Google in Chrome you need to turn on Chrome sync with your Google account first. Alternatively, you can ${contextWords} with Google using different browser.`;\n } else {\n return context === 'signup' ? `${message} You will be able to link your Google account later.` : `${message} Alternatively, you can ${contextWords} with Google using different browser.`;\n }\n } else if (notification.isNotDisplayed() && getNotDisplayedReason === 'unknown_reason') {\n return `Google ${contextWords} isn't working right now, possibly due to extensions like 1Password or AdBlocker. Try temporarily disabling them to resolve the issue.`;\n }\n return message;\n },\n\n handleAuthResult: function(resp, callback) {\n if (window.Bugsnag) {\n Bugsnag.leaveBreadcrumb('google auth response', {responseJSON: JSON.stringify(resp)});\n }\n\n if (resp && !resp.error) {\n if (resp.credential) {\n if (this.options.next_url) {\n resp.next_url = this.options.next_url;\n } else if (UC.constants.returnUrl) {\n resp.returnUrl = UC.constants.returnUrl;\n }\n\n $.post('/auth/google_identity/callback', resp, function (data) {\n callback(data);\n });\n }\n else {\n if (window.Bugsnag) {\n Bugsnag.notify(new Error('google.accounts.id.callback is missing credential'));\n }\n\n UC.utils.showNotification(\"There was an error retrieving authentication response from Google.\", UC.constants.results.failure);\n }\n } else {\n UC.utils.showNotification(\"There was an error connecting to Google for authentication.\", UC.constants.results.failure);\n }\n }\n };\n}();\n","import Clipboard from 'clipboard' // webpack-only-import\n\nUC.components.InputWithCopyButton = Backbone.View.extend({\n initialize: function(options) {\n const inputId = options.inputId;\n const buttonId = `#${inputId}-copy-button`\n const copySpanId = `#${inputId}-copy-span`\n const copiedSpanId = `#${inputId}-copied-span`\n const selectedSpanId = `#${inputId}-selected-span`\n\n this.clipboard = new Clipboard(buttonId, {\n target: function() {\n return document.getElementById(inputId);\n }\n });\n\n this.clipboard.on('success', function() {\n $(copySpanId).addClass('hidden');\n $(copiedSpanId).removeClass('hidden');\n this.resetCopyLink(copySpanId, copiedSpanId, selectedSpanId);\n }.bind(this));\n\n this.clipboard.on('error', function() {\n $(copySpanId).addClass('hidden');\n $(selectedSpanId).removeClass('hidden');\n this.resetCopyLink(copySpanId, copiedSpanId, selectedSpanId);\n }.bind(this));\n\n $(buttonId).on('click', function(e) {\n e.preventDefault()\n });\n },\n\n resetCopyLink: function(copySpanId, copiedSpanId, selectedSpanId) {\n if (this.timeout) {\n return;\n }\n\n this.timeout = setTimeout(function() {\n $(copySpanId).removeClass('hidden');\n $(copiedSpanId).addClass('hidden');\n $(selectedSpanId).addClass('hidden');\n clearTimeout(this.timeout);\n this.timeout = null;\n }.bind(this), 1000);\n },\n});\n","jQuery.fn.extend({\n insertAtCaret: function(value){\n\n return this.each(function() {\n\n if (document.queryCommandSupported('insertText')) {\n this.focus();\n document.execCommand('insertText', false, value);\n } else if (document.selection) {\n //For browsers like Internet Explorer\n this.focus();\n var sel = document.selection.createRange();\n sel.text = value;\n this.focus();\n } else if (this.selectionStart || this.selectionStart == '0') {\n //For browsers like Firefox and Webkit based\n var startPos = this.selectionStart;\n var endPos = this.selectionEnd;\n var scrollTop = this.scrollTop;\n\n this.value = this.value.substring(0, startPos) + value + this.value.substring(endPos, this.value.length);\n this.focus();\n this.selectionStart = startPos + value.length;\n this.selectionEnd = startPos + value.length;\n this.scrollTop = scrollTop;\n } else {\n this.value += value;\n this.focus();\n }\n });\n }\n});\n","$(function() {\n $(document).on('click', '.insert-number', function(e) {\n e.preventDefault();\n var $el = $(this);\n var $textarea = $('#{0}'.format($el.data('el')));\n $textarea.insertAtCaret($el.text().trim());\n });\n});\n","!function() {\n var changed = false;\n\n $.fn.confirmUnload = function() {\n $(this).change(function() {\n changed = true;\n });\n\n function onUnload(e) {\n if (changed) {\n var confirmationMessage = 'Leaving this page will discard your changes';\n (e || window.event).returnValue = confirmationMessage;\n return confirmationMessage;\n }\n };\n\n this.resetChanged = function() {\n changed = false;\n };\n\n $(window).bind('beforeunload', onUnload);\n return this;\n };\n\n}();\n","jQuery.fn.selectLegalTaskWithArea = function() {\n\n return this.each(function() {\n\n var $container = $(this);\n\n $container.find('.select-legal-task').change(function(e) {\n var legalAreaId = $(e.currentTarget).find(':selected').data('legal-area-id');\n $container.find('.input-legal-area').val(legalAreaId);\n });\n\n });\n\n};\n\n","!function() {\n\n var defaults = {\n attachments: {}\n };\n\n function SuperFancyCat($el, options) {\n this.$el = $el;\n this.options = $.fn.extend({}, defaults, options);\n\n this.render();\n this.bindEvents();\n }\n\n SuperFancyCat.prototype = {\n\n constructor: SuperFancyCat,\n\n template: UC.views.resolveHandlebarsTemplate(\"components/super_fancy_cat\"),\n\n render: function() {\n this.$el.addClass('hidden');\n this.$fancy = $(this.template({\n id: this.$el.attr('id'),\n groups: this.serialize()\n }));\n this.$el.after(this.$fancy);\n },\n\n serialize: function() {\n var $groups = this.$el.find('optgroup');\n\n return $groups.map(function() {\n var $group = $(this);\n var count = 0;\n var count_selected = 0;\n\n var options = $group.find('option').map(function() {\n var $option = $(this);\n var selected = $option.is(':selected'); \n\n count++;\n if (selected) count_selected++;\n\n return {\n name: $option.text(),\n value: $option.val(),\n selected: selected\n };\n }).get();\n\n return {\n name: $group.attr('label'),\n options: options,\n count: (count == count_selected && count > 0 ? 'All' : count_selected)\n };\n }).get();\n },\n\n bindEvents: function() {\n this.$fancy.find('.super-fancy-cat-header').click(this.toggleGroup.bind(this));\n this.$fancy.find('.super-fancy-cat-option').click(this.toggleOption.bind(this));\n this.$fancy.find('.super-fancy-cat-all').click(this.toggleGroupAll.bind(this));\n this.$fancy.find('.super-fancy-cat-none').click(this.toggleGroupNone.bind(this));\n },\n\n toggleAll: function() {\n this.selectOptions(this.$fancy);\n },\n\n toggleNone: function() {\n this.unselectOptions(this.$fancy);\n },\n\n toggleGroup: function(e) {\n e.preventDefault();\n $(e.currentTarget).closest('.super-fancy-cat-group').toggleClass('open');\n },\n\n toggleGroupAll: function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $group = $(e.currentTarget).closest('.super-fancy-cat-group');\n this.selectOptions($group);\n },\n\n toggleGroupNone: function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $group = $(e.currentTarget).closest('.super-fancy-cat-group');\n this.unselectOptions($group);\n },\n\n toggleOption: function(e) {\n e.preventDefault();\n var $fancy_option = $(e.currentTarget);\n\n this.setOption($fancy_option, !$fancy_option.hasClass('selected'));\n this.$el.trigger('change');\n this.updateGroupCounts();\n },\n\n selectOptions: function($context) {\n var that = this;\n\n $context.find('.super-fancy-cat-option').each(function() {\n that.setOption(this, true);\n });\n\n this.$el.trigger('change');\n this.updateGroupCounts();\n },\n\n selectSpecificOptions: function(options) {\n var $context = this.$fancy;\n var that = this;\n $context.find('.super-fancy-cat-option').each(selectOption(options));\n function selectOption(options){\n var opts = options;\n\n return function(index, element){\n var id = $(element).data('val');\n var selected = that.$el.find('option[value=\"{0}\"]'.format(id)).prop('selected');\n var hasOption = opts[id];\n\n if(!selected && hasOption) {\n that.setOption(this, true);\n } else if(selected && !hasOption) {\n that.setOption(this, false);\n }\n }\n }\n this.$el.trigger('change');\n this.updateGroupCounts();\n },\n\n unselectOptions: function($context) {\n var that = this;\n\n $context.find('.super-fancy-cat-option').each(function() {\n that.setOption(this, false);\n });\n\n this.$el.trigger('change');\n this.updateGroupCounts();\n },\n\n setOption: function(fancy_option, select) {\n var which = select ? 'addClass' : 'removeClass' ;\n var id = $(fancy_option)[which]('selected').data('val');\n this.$el.find('option[value=\"{0}\"]'.format(id)).prop('selected', select);\n },\n\n updateGroupCounts: function() {\n\n this.$fancy.find('.super-fancy-cat-group').each(function() {\n var $group = $(this);\n var $count = $group.find('.notification-count');\n var count = $group.find('.super-fancy-cat-option').length;\n var count_selected = $group.find('.super-fancy-cat-option.selected').length;\n var text = (count == count_selected && count > 0 ? 'All' : count_selected);\n\n $count.text(text);\n });\n }\n };\n\n $.fn.superFancyCat = function() {\n var args = Array.prototype.slice.apply(arguments);\n var $el = $(this).first();\n var existing = $el.data('superfancycat');\n\n if (existing && typeof args[0] === 'string') {\n return existing[args[0]].apply(existing, args.slice(1));\n } else {\n var ata = new SuperFancyCat(this, args[0]);\n $el.data('superfancycat', ata);\n return ata;\n }\n };\n}();\n","$.fn.superSmartSearch = function(options) {\n var defaults = {\n delay: 250,\n cache: true,\n minimumInputLength: 1,\n minimumResultsForSearch: 20,\n params: {},\n width: 'resolve',\n allowClear: false,\n placeholder: '', // select2 actually sucks\n tags: false, // enables user to enter custom option\n modal: false\n };\n\n if (!options.url) {\n throw 'You must provide a request url';\n }\n\n return this.each(function() {\n var opt = $.fn.extend({}, defaults, options);\n\n $(this).select2({\n dropdownParent: opt.modal,\n width: opt.width,\n allowClear: opt.allowClear,\n minimumInputLength: opt.minimumInputLength,\n placeholder: opt.placeholder,\n tags: opt.tags,\n minimumResultsForSearch: opt.minimumResultsForSearch,\n createTag: function(params) {\n return {\n id: params.term,\n text: params.term,\n newOption: true\n }\n },\n templateResult: function (data) {\n var $result = $(\"\");\n\n $result.text(data.text);\n\n if (data.newOption) {\n $result.append(\" (new)\");\n }\n\n return $result;\n },\n ajax: {\n url: opt.url,\n delay: opt.delay,\n cache: opt.cache,\n type: 'POST',\n dataType: 'json',\n contentType: 'application/json',\n data: function (params) {\n data = opt.params || {};\n data.q = params.term;\n\n return JSON.stringify(data);\n },\n processResults: function (result, params) {\n var results;\n\n if (result.grouped_results) {\n results = _.map(result.data, function(group) {\n return {\n text: group.text,\n children: _.map(group.children, function(item) {\n return {\n id: item.id,\n text: item.label\n }\n })\n }\n })\n } else {\n results = _.map(result.data, function(item) {\n return {\n id: item.id,\n text: item.label\n }\n });\n }\n\n return {\n results: results,\n pagination: {\n more: false\n }\n };\n }\n }\n });\n });\n};\n","jQuery.fn.selectTimeZone = function() {\n var $el = $(this[0]); // our element\n var offsetFromGMT = String(- new Date('1/1/2009').getTimezoneOffset() / 60); // using 1/1/2009 so we know DST isn't tripping us up\n\n if ($el.val() !== '') {\n // skip selecting timezone if something is already selected\n return;\n }\n\n if (offsetFromGMT[0] != '-') {\n offsetFromGMT = '\\\\+' + offsetFromGMT; // if it's not negative, prepend a +\n }\n\n if (offsetFromGMT.length < 3) {\n offsetFromGMT = offsetFromGMT.substr(0, 1) + '0' + offsetFromGMT.substr(1); // add a leading zero if we need it\n }\n\n var changed = false;\n var regEx = new RegExp(offsetFromGMT); // create a RegExp object with our pattern\n\n $('option', $el).each(function(index, option) { // loop through all the options in our element\n var $option = $(option); // cache a jQuery object for the option\n\n if ($option.html().match(regEx)) { // check if our regex matches the html(text) inside the option\n changed = true;\n $option.attr({selected: 'true'}); // select the option\n return false; // stop the loop—we're all done here\n }\n });\n\n if (changed) {\n $el.trigger('change');\n }\n\n return $el;\n};\n","$.fn.truncateToggle = function(options) {\n var defaults = {\n truncateLength: 200,\n moreText: 'Read more',\n lessText: 'Show less'\n };\n\n return this.each(function() {\n var opt = $.fn.extend({}, defaults, options);\n var $this = $(this);\n var text = $this.text();\n if ($this.attr('data-truncate-length')) {\n opt.truncateLength = $this.attr('data-truncate-length');\n }\n\n if (text.length <= opt.truncateLength) return;\n\n var html = text.slice(0, opt.truncateLength) + \"... \" +\n \"\" + opt.moreText + \"\";\n\n $this.html(html);\n\n $this.find('a.shown-min').click(function(e) {\n e.preventDefault();\n $this.find('.shown-min').hide();\n $this.find('.shown-max').show();\n });\n\n $this.find('a.shown-max').click(function(e) {\n e.preventDefault();\n $this.find('.shown-min').show();\n $this.find('.shown-max').hide();\n });\n\n });\n};\n","$.fn.truncateToggleMultiple = function(options) {\n // For when you want to enable many elements with their own toggle\n\n var defaults = {\n truncateLength: 200,\n moreText: 'Read more',\n lessText: 'Show less',\n toggleClass: 'truncated'\n };\n\n return this.each(function() {\n var opt = $.fn.extend({}, defaults, options);\n var $this = $(this);\n var text = $this.text();\n\n if (text.length <= opt.truncateLength) return;\n\n var html = text.slice(0, opt.truncateLength) + \"... \" +\n \"\" + opt.moreText + \"\";\n\n $this.html(html);\n $this.addClass(opt.toggleClass);\n\n $this.find('a.shown-min').click(function(e) {\n e.preventDefault();\n var $el = $(e.currentTarget)[0].parentElement;\n $($el).find('.shown-min').hide();\n $($el).find('.shown-max').show();\n $($el).removeClass(opt.toggleClass);\n });\n\n $this.find('a.shown-max').click(function(e) {\n e.preventDefault();\n var $el = $(e.currentTarget)[0].parentElement.parentElement;\n $($el).find('.shown-min').show();\n $($el).find('.shown-max').hide();\n $($el).addClass(opt.toggleClass);\n });\n\n });\n};\n","import Snap from 'snapjs'\n\n!function() {\n\n function initMobileNav() {\n\n var $doc = $(document);\n var $body = $('body');\n var $nav = $('#nav');\n var $mobile_nav = $('#mobile-nav');\n const $mobile_toc = $body.find('.dropdown.mobile-toc');\n var is_fixed_nav = $nav.css('position') === 'fixed';\n var speed = 0.3;\n let closing = false;\n\n var snapper = window.snapper = new Snap({\n element: document.getElementById('content'),\n disable: 'left',\n touchToDrag: false,\n transitionSpeed: speed\n });\n\n $('#menu-toggle').on('click touchstart', function(e) {\n e.preventDefault();\n e.stopPropagation();\n \n if (snapper.state().state === 'closed') {\n snapper.open('right');\n } else {\n snapper.close();\n }\n });\n\n $mobile_nav.on('touchmove', function(e) {\n e.stopPropagation();\n\n if (!$mobile_nav.isScrollable()) {\n e.preventDefault();\n }\n });\n\n // prevent scrolling when menu is open\n snapper.on('open', function() {\n\n $body.addClass('mobile-nav-open');\n\n $doc.on('touchmove', function(e) {\n e.preventDefault();\n });\n\n if (is_fixed_nav) {\n const scrollTop = $(window).scrollTop();\n $nav.css('top', scrollTop);\n $mobile_toc.removeClass('open');\n $mobile_toc.css('top', scrollTop + $nav.height());\n }\n });\n\n snapper.on('close', function() {\n closing = true;\n });\n\n snapper.on('animated', function() {\n // we need to wait until menu is closed and\n // snap.js doesn't have a 'closed' event :'(\n if (closing) {\n closing = false;\n\n $body.removeClass('mobile-nav-open');\n\n $doc.off('touchmove');\n\n if (is_fixed_nav) {\n $nav.css('top', 0);\n $mobile_toc.css('top', $nav.height());\n $mobile_nav.trigger('mobile-nav-closed');\n }\n }\n });\n\n // hack to fix active color on menu items (iOS)\n $('#menu li > a').on('touchstart', function() {});\n };\n\n $(function() {\n initMobileNav();\n });\n}();\n\n","!function() {\n\n var defaults = {\n allowOverlayClose: true,\n allowEscClose: true,\n showLoader: false\n };\n var froogaloop_loaded = false;\n\n function Modal($el, options) {\n this.$el = $el;\n this.options = $.extend({}, defaults, options);\n this._open = false;\n this.$body = $('body');\n this.$wrapper = $('
');\n this.$overlay = $('
');\n }\n\n Modal.prototype = {\n\n constructor: Modal,\n\n show: function() {\n\n if (this._open == true) {\n // if the modal is already open don't do anything\n return false;\n } else {\n this._open = true;\n }\n\n if (this.options.showLoader) {\n this.$overlay.addClass('.jqmLoading');\n }\n\n this.$body.append(this.$overlay);\n\n // move the modal inside the wrapper\n this.$el.appendTo(this.$wrapper);\n\n this.checkScrollbar();\n this.setScrollbar();\n\n // add the wrapper, prevent scrolling\n this.$body\n .addClass('modal-open')\n .append(this.$wrapper);\n\n this.bindCloseEvents();\n\n // jquery draggable\n this.$el.on('drag', this.adjust.bind(this));\n\n $(window).resize(function() {\n this.adjust();\n }.bind(this)).resize();\n },\n\n hide: function() {\n // move modal back to body and hide\n this.$el.appendTo('body');\n\n // remove wrapper\n this.$wrapper.remove();\n\n // remove overlay\n this.$overlay.remove();\n\n // finally, let us scroll again\n this.$body.removeClass('modal-open');\n\n this.resetScrollbar();\n\n this.$el.trigger('jqmHidden');\n\n $(document).off('keydown.modal');\n\n this._open = false;\n },\n\n adjust: function() {\n this.$overlay\n .css('height', 0)\n .css('height', this.$wrapper[0].scrollHeight)\n },\n\n bindCloseEvents: function() {\n\n this.$el.find('.jqmClose').click(function(e) {\n e.preventDefault();\n this.hide();\n }.bind(this));\n\n if (this.options.allowOverlayClose) {\n this.$wrapper.click(function(e) {\n if (e.target.className === 'jqmWrapper') { this.hide(); }\n }.bind(this));\n }\n\n if (this.options.allowOverlayClose && this.options.allowEscClose) {\n $(document).on('keydown.modal', function(e) {\n if (e.which === 27) { this.hide(); }\n }.bind(this));\n }\n },\n\n bindVideoEvents: function($autoplay_video) {\n var that = this;\n var player = $f($autoplay_video[0]);\n\n this.$el.on('jqmHidden', function() {\n $autoplay_video.load(function() {\n player.api('pause').api(\"seekTo\", \"0\");\n });\n });\n\n $autoplay_video.load(function() {\n if (that.froogalooping && that.froogalooping.state() !== 'resolved') {\n $.when(that.froogalooping).done(function() {\n player.api('play');\n });\n } else {\n player.api('play');\n $autoplay_video.load(function() {\n player.api('play');\n });\n }\n });\n },\n\n checkScrollbar: function() {\n var fullWindowWidth = window.innerWidth;\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect();\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth;\n this.scrollbarWidth = this.measureScrollbar();\n },\n\n measureScrollbar: function() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = 'modal-scrollbar-measure';\n this.$body.append(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this.$body[0].removeChild(scrollDiv);\n return scrollbarWidth;\n },\n\n setScrollbar: function() {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10);\n this.originalBodyPad = document.body.style.paddingRight || '';\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth);\n },\n\n resetScrollbar: function() {\n this.$body.css('padding-right', this.originalBodyPad);\n }\n };\n\n function bindModal($el, options) {\n var modal = new Modal($el, options);\n $el.data('modal', modal);\n return modal;\n }\n\n $.fn.ucModal = function(options) {\n var args = Array.prototype.slice.apply(arguments);\n // can only find to a single element\n var $el = $(this).first();\n\n // method calls\n if (typeof args[0] === 'string') {\n\n var modal = $el.data('modal');\n\n if (!modal) {\n modal = bindModal($el);\n }\n\n if (typeof modal[args[0]] === 'function') {\n modal[args[0]].apply(modal, args.slice(1, args.length-1));\n }\n } else {\n if (!$el.data('modal')) {\n bindModal($el, args[0]);\n }\n }\n\n return this;\n };\n\n UC.utils.showModal = function(element, options) {\n if (element && element.length > 0) {\n $(element).ucModal(options).ucModal('show');\n }\n };\n\n UC.utils.hideModal = function(element){\n if (element && element.length > 0) {\n $(element).ucModal('hide');\n }\n };\n\n // deprecated\n UC.utils.positionModal = function() {};\n}();\n","UC.partials.modalV9 = Backbone.View.extend({\n\n tagName: 'div',\n\n className: 'modal v9',\n\n events: {\n \"hidden.bs.modal\" : \"deleteElement\",\n \"shown.bs.modal\" : \"triggerRenderCallback\"\n },\n\n template: UC.views.resolveHandlebarsTemplate(\"shared/modal_v9\"),\n\n initialize: function(opts) {\n this.modalContent = opts.modalContent;\n this.modalTitle = opts.modalTitle;\n this.modalSubTitle = opts.modalSubTitle;\n this.modalFooter = opts.modalFooter;\n this.renderCallback = opts.renderCallback;\n this.modalOptions = opts.modalOptions || {};\n this.customHeaderClass = opts.customModal ? 'modal-header--basic' : '';\n this.render();\n },\n\n render: function() {\n this.$el.html(this.template(this));\n this.$el.modal(this.modalOptions);\n },\n\n triggerRenderCallback: function() {\n if (this.renderCallback) {\n this.renderCallback();\n }\n },\n\n deleteElement: function() {\n this.$el.remove();\n }\n\n});\n","!function () {\n\n var defaults = {\n buttonCssClass: 'btn btn-multi-select'\n },\n ulFormat = '',\n liFormat = '
  • {2}
  • ';\n\n function MultiSelectButtons(el, options) {\n this.$el = $(el);\n this.options = $.fn.extend({}, defaults, options);\n this.buttonCssClass = this.options.buttonCssClass;\n this.listValues = {};\n\n if(this.options.listValues){\n if($.isArray(this.options.listValues)){\n for(var i = 0, len = this.options.listValues.length; i < len; i++){\n this.listValues[this.options.listValues[i]] = this.options.listValues[i];\n }\n }\n else if($.isPlainObject(this.options.listValues)){\n this.values = this.options.listValues;\n }\n }\n\n this.render();\n this.bindEvents();\n this.$el.selected = this.selected.bind(this);\n }\n\n MultiSelectButtons.prototype = {\n\n constructor: MultiSelectButtons,\n\n render: function () {\n var items = '';\n\n for(var key in this.listValues){\n if(this.listValues.hasOwnProperty(key)){\n items += liFormat.format(this.buttonCssClass, this.listValues[key], key);\n }\n }\n this.$el.html(ulFormat.format(items));\n },\n\n bindEvents: function () {\n this.$el.on('click', 'li', function() {\n var $li = $(this);\n $li.toggleClass('selected');\n });\n },\n\n selected: function(){\n return this.$el.find('li.selected').map(function(){\n return $(this).data('value');\n }).get();\n }\n };\n\n $.fn.multiSelectButtons = function () {\n var args = Array.prototype.slice.apply(arguments),\n existing = $(this).data('msb');\n\n if (existing && typeof args[0] === 'string') {\n return existing[args[0]].apply(existing, args.slice(1));\n } else {\n var msb = new MultiSelectButtons(this, args[0]);\n $(this).data('msb', msb);\n return msb.$el;\n }\n };\n}();\n","!function () {\n\n function markAsRead(id, url) {\n function onMarkAsRead(err){\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n else {\n $('.notification-item[data-id=\"{0}\"]'.format(id)).removeClass('unread');\n }\n }\n\n UC.net.post('/notifications/{0}/mark_as_read'.format(id), {url: url}, onMarkAsRead);\n }\n\n function markAllAsRead() {\n UC.net.post('/notifications/mark_all_as_read', null, onMarkAllAsRead);\n }\n\n function onMarkAllAsRead(err, response) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n else {\n $('.notification-item').removeClass('unread');\n UC.utils.hideComponent($('#header #nav .notification-count').text('0'));\n }\n }\n\n var Notifications = UC.components.Notifications = function () {\n this.open = false;\n this.$icon = $('.notification-icon-header');\n this.$pulldown = $('#notificationPulldown');\n this.$markAllAsRead = $('.button-mark-all-as-read');\n this.$markAsRead = $('.notification-mark-as-read');\n this.$notificationsPage = $('#notifications-page');\n\n this.$icon.click(this.togglePulldown.bind(this));\n this.$markAllAsRead.click(this.onMarkAllAsReadClick.bind(this));\n this.$markAsRead.click(this.onMarkAsReadClick);\n this.$pulldown.on('click', '.notification-item', this.onItemClick);\n this.$notificationsPage.on('click', '.notification-item', this.onItemClick);\n\n $('body').click(this.hidePulldown.bind(this));\n $('.popdown-btn').click(this.hidePulldown.bind(this));\n\n // hides user menu on click\n $('.notification-icon-header').click(function(e) {\n $('#user-menu').removeClass('open');\n });\n };\n\n // public method for making a notification appear read\n Notifications.mark_read = function(relation_id) {\n var $count = $('#header #nav .notification-count');\n var new_count = parseInt($count.text(), 10) - 1;\n\n if (new_count <= 0) {\n // dim bell and remove count if no more unread notifications\n $('.icon-notifications').addClass('empty');\n $count.remove();\n } else {\n // update count icon\n $count.text(new_count);\n }\n\n // mark individual notification read if it exists\n var selector = '.notification-item[data-relation-id=\"{0}\"]'.format(relation_id);\n $(selector).removeClass('unread');\n };\n\n Notifications.prototype = {\n\n constructor: Notifications,\n\n showPulldown: function () {\n UC.utils.fadeInComponent(this.$pulldown);\n this.open = true;\n },\n hidePulldown: function () {\n UC.utils.hideComponent(this.$pulldown);\n this.open = false;\n },\n togglePulldown: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n this[this.open ? 'hidePulldown' : 'showPulldown']();\n },\n onItemClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $item = $(this),\n id = $item.data('id'),\n url = $item.find('.notification-link').attr('href');\n\n if ($item.hasClass('unread')) {\n markAsRead(id, url);\n }\n else if (url) {\n location.href = url;\n }\n },\n onMarkAsReadClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this),\n $item = $this.parentsUntil('ul', 'li');\n\n $item.removeClass('unread');\n markAsRead($item.data('id'));\n },\n onMarkAllAsReadClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n function onConfirm(response) {\n if (response) {\n markAllAsRead();\n }\n }\n\n var unreadNotifications = parseInt($('#header #nav .notification-count').text(), 10);\n if(unreadNotifications != 0){\n UC.utils.showConfirmModal('Confirm change', 'Are you sure you want to mark all of the notifications as read?', onConfirm);\n }\n }\n };\n\n $(function () {\n new Notifications();\n });\n}();\n","import { default as Cookies } from 'js-cookie';\n\n!function() {\n\n var COOKIE_NAME = 'nps_score';\n\n UC.components.NpsBox = Backbone.View.extend({\n\n events: {\n 'click .js-close-nps-box': 'delayNpsScore',\n 'click #nps-show-section-like': 'showLikeSection',\n 'click #nps-show-section-improve': 'showImproveSection',\n 'submit form#new_nps_score': 'submitResults',\n 'click .form-radio-btn': 'saveProgress',\n 'blur textarea': 'saveProgress'\n },\n\n initialize: function() {\n var current_section = 'nps-box-form-section-1';\n var cookie;\n\n if(Cookies.get(COOKIE_NAME)) cookie = JSON.parse(Cookies.get(COOKIE_NAME));\n\n if (cookie && cookie.CurrentSection && cookie.NpsScoreId) {\n current_section = cookie.CurrentSection;\n this.npsScoreId = cookie.NpsScoreId;\n }\n\n this.$el.find('#{0}'.format(current_section)).removeClass('hidden');\n this.$el.removeClass('hidden');\n\n UC.utils.recordKissEvent(\"NPS Box - show\", {\n user_id: UC.user.id\n });\n },\n\n formData: function() {\n return this.$el.find('#new_nps_score').serializeJSON();\n },\n\n saveProgress: function() {\n var current_section = this.$el.find('.nps-box-form-section:not(.hidden)').attr('id');\n this.$el.find('#nps_score_CurrentSection').val(current_section);\n\n Cookies.set(COOKIE_NAME, JSON.stringify({CurrentSection: current_section, NpsScoreId: this.npsScoreId}), { expires: 1 });\n },\n\n delayNpsScore: function(e) {\n e.preventDefault();\n this.$el.addClass('hidden');\n $.ajax({\n url: '/nps_scores/hide_nps_box',\n method: 'POST'\n });\n\n Cookies.remove(COOKIE_NAME);\n\n UC.utils.recordKissEvent(\"NPS Box - delay clicked\", {\n user_id: UC.user.id\n });\n },\n\n hideAllSections: function() {\n this.$el.find('.nps-box-form-section').addClass('hidden');\n },\n\n getNpsScore: function() {\n return this.$el.find(\"input[name='nps_score[Score]']:checked\").val();\n },\n\n getUserLikesMessage: function() {\n return this.$el.find(\"textarea[name='nps_score[UserLikesMessage]']\").val();\n },\n\n getUserImprovesMessage: function() {\n return this.$el.find(\"textarea[name='nps_score[UserImprovesMessage]']\").val();\n },\n\n // @return - {Boolean} - success or fail\n completeScoreSection: function() {\n var score = this.getNpsScore();\n var $error = this.$el.find('#nps-box-form-section-1 .js-error-message');\n if (!score) {\n $error.removeClass('hide');\n }\n\n return score;\n },\n\n showImproveSection: function() {\n var score = this.completeScoreSection()\n if (!score) { return; };\n\n\n UC.net.post('/nps_scores', { nps_score: { Score: score }})\n .done(function(npsScoreObj) {\n this.npsScoreId = npsScoreObj._id;\n this.saveProgress();\n }.bind(this));\n\n\n this.hideAllSections();\n this.$el.find('#nps-box-form-section-improve').removeClass('hidden');\n this.saveProgress();\n\n UC.utils.recordKissEvent(\"NPS Box - score submit\", {\n user_id: UC.user.id,\n score: score\n });\n },\n\n showLikeSection: function() {\n var userImprovesMessage = this.getUserImprovesMessage();\n var url = \"/nps_scores/{0}\".format(this.npsScoreId);\n if(this.npsScoreId) {\n UC.net.put(url, { nps_score: { UserImprovesMessage: userImprovesMessage }});\n }\n\n this.hideAllSections();\n this.$el.find('#nps-box-form-section-like').removeClass('hidden');\n\n UC.utils.recordKissEvent(\"NPS Box - improve section complete\", {\n user_id: UC.user.id\n });\n },\n\n submitResults: function(e) {\n e.preventDefault();\n\n var url = \"/nps_scores/{0}\".format(this.npsScoreId);\n\n var userLikesMessage = this.getUserLikesMessage();\n if(this.npsScoreId && userLikesMessage) {\n UC.net.put(url, {\n hide_nps_box: true,\n nps_score: { UserLikesMessage: this.getUserLikesMessage() }\n });\n }\n\n Cookies.remove(COOKIE_NAME);\n\n this.hideAllSections();\n this.$el.find('#nps-box-form-section-4').removeClass('hidden');\n\n UC.utils.recordKissEvent(\"NPS Box - fully complete\", {\n user_id: UC.user.id\n });\n }\n });\n\n $(function() {\n if (UC.user && UC.user.show_nps_box === true) {\n new UC.components.NpsBox({\n el: '#nps-box'\n });\n }\n });\n}();\n","UC.components.PasswordForm = UC.components.OldPasswordForm = Backbone.View.extend({\n\n initialize: function() {\n this.btnLoader = this.$el.find('#btnChangePassword').buttonLoader();\n this.$currentPassword = this.$el.find('#txtCurrentPassword');\n this.$newPassword = this.$el.find('#txtNewPassword');\n this.$confirmPassword = this.$el.find('#txtNewPasswordConfirm');\n this.$el.submit(this.submit.bind(this));\n },\n\n submit: function(e) {\n e.preventDefault();\n\n if (this.validatePassword()) {\n this.btnLoader.showLoader();\n\n var data = {\n currentPassword: this.$currentPassword.val(),\n newPassword: this.$newPassword.val()\n };\n\n UC.net.post('/account/change_password', data).fail(function(err) {\n this.btnLoader.hideLoader();\n }.bind(this));\n }\n },\n\n validatePassword: function () {\n UC.utils.clearValidationErrors('form-group');\n var errors = [];\n var newPasswordEl = this.$newPassword,\n confirmPasswordEl = this.$confirmPassword,\n currentPasswordEl = this.$currentPassword;\n var currentPassword = this.$currentPassword.val(),\n newPassword = this.$newPassword.val(),\n newPasswordConfirm = this.$confirmPassword.val();\n\n if (!currentPassword) {\n errors.push({\n className: 'form-group',\n element: this.$currentPassword,\n text: 'Please enter your current password'\n });\n }\n\n if (newPassword.length < UC.constants.minPasswordLength) {\n errors.push({\n className: 'form-group', \n element: newPasswordEl,\n text: 'The password must be at least {0} characters long'.format(UC.constants.minPasswordLength)\n });\n }\n\n if (newPassword != newPasswordConfirm) {\n errors.push({\n className: 'form-group',\n element: this.$confirmPassword,\n text: 'Your passwords do not match'\n });\n }\n\n UC.utils.showValidationErrors(errors);\n return errors.length === 0;\n }\n\n});\n","!function() {\n\n UC.components.PaymentDisputeClientRedirectModal = Backbone.View.extend({\n initialize: function(opts) {\n var opts = opts || {};\n\n this.redirectUrl = opts.redirectUrl || '/dashboard';\n this.title = opts.title || 'Recent Payment Dispute';\n this.text = opts.text || \"Sorry, you cannot publish a new job in the marketplace due to a recent payment dispute.\" +\n \" Please contact our Marketplace Team at \" +\n \"marketplace@upcounsel.com if you have any questions.\";\n\n\n },\n\n onModalConfirm: function(response) {\n if (response) this.redirectUser();\n },\n\n redirectUser: function() {\n location.href = this.redirectUrl;\n },\n\n show: function() {\n UC.utils.recordKissEvent('payment_dispute_client_notification_shown', {loc: window.location.href});\n UC.utils.showConfirmModal(this.title, this.text, this.onModalConfirm.bind(this), {yesText: 'OK', noText: ''});\n }\n\n })\n\n}();\n","!function() {\n\n UC.components.PaymentInfo = Backbone.View.extend({\n\n events: {\n 'change #selectCountry' : 'onChangeCountry',\n 'click #aChangeCard' : 'onChangeCardClick',\n 'change #chkDefaultMethod': 'trackDefaultMethod',\n 'click .btnPay' : 'onBtnPayClick',\n 'click #add-bank-account-panel' : 'openPlaid',\n 'click #add-credit-card-panel' : 'showCreditCardForm',\n 'click #credit-card-form-back' : 'showAddPaymentMethod',\n 'click #choose-existing-pmt-method' : 'showExistingPmtMethods',\n 'click #change-pmt-method' : 'showAddPaymentMethod',\n 'click #panelCouponFieldsToggle' : 'showCouponFields'\n },\n\n initialize: function(args) {\n this.data = {};\n\n this.components = {\n loader: this.$el.find('.btnPay').buttonLoader(),\n chkDefaultMethod: this.$el.find('#chkDefaultMethod').fancyCheck()\n };\n\n this.bankAccountSuccessCallback = args.bankAccountSuccessCallback;\n this.showDefaultButtonLoader = args.showDefaultButtonLoader;\n\n this.elements = {\n selectMonth: this.$el.find('#selectMonth'),\n selectYear: this.$el.find('#selectYear'),\n selectState: this.$el.find('#selectState'),\n selectCountry: this.$el.find('#selectCountry'),\n txtZipCode: this.$el.find('#txtZipCode'),\n agreeToTermsCheckboxes: this.$el.find(\".js-agreeToTermsCheckbox\"),\n agreeToTermsDates: this.$el.find(\".js-agreeToTermsDate\"),\n formCollectInfo: this.$el.find('#formCollectInfo'),\n selectPaymentMethod: this.$('#selectPaymentMethod')\n };\n\n this.elements.selectMonth.val(new Date().getMonth() + 1);\n\n this.initYearSelect();\n this.initSelect2();\n this.initPlaid();\n\n this.$('#cvc-info').tooltip();\n },\n\n initYearSelect: function() {\n var year = new Date().getFullYear();\n var endYear = year + 12;\n var options = '';\n\n for (var i = year; i < endYear; i++) {\n options += ''.format(i);\n }\n\n this.elements.selectYear.html(options);\n },\n\n initSelect2: function() {\n\n if (!this.elements.formCollectInfo.hasClass('hidden')) {\n this.elements.selectMonth.select2();\n this.elements.selectYear.select2();\n this.elements.selectState.select2();\n this.elements.selectCountry.select2();\n }\n\n if (!this.elements.selectPaymentMethod.hasClass('hidden')) {\n this.$('#selectPaymentMethod').select2();\n }\n },\n\n onChangeCardClick: function(e) {\n e.preventDefault();\n $('#formCollectInfo').removeClass('hidden');\n $('#payment-methods').addClass('hidden');\n this.initSelect2();\n },\n\n onChangeCountry: function(e) {\n var country = UC.utils.findSelectedElement(this.elements.selectCountry);\n if(country.val() != 'USA'){\n UC.utils.setSelectedElement(this.elements.selectState, UC.constants.emptySelectValue);\n this.elements.txtZipCode.val('');\n this.elements.selectState.prop('disabled', true);\n $('#state-zip-input-row').addClass('hidden');\n }\n else{\n this.elements.selectState.prop('disabled', false);\n $('#state-zip-input-row').removeClass('hidden');\n }\n },\n\n onBtnPayClick: function() {\n this.components.loader.showLoader();\n\n var isFormHidden = this.elements.formCollectInfo.hasClass(\"hidden\");\n var isUserAgreeToTerms = this.validateAgreeToTerms();\n\n if (isFormHidden && isUserAgreeToTerms) {\n this.charge(null, this.onCharge.bind(this));\n }\n else if (this.validate()) {\n UC.payments.tokenizeCard(UC.payments.createCreditCardData(this.data), this.onCreateToken.bind(this));\n }\n else {\n this.components.loader.hideLoader();\n }\n },\n\n onCreateToken: function (err, token) {\n if(err){\n this.components.loader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure, 10000);\n }\n else{\n this.charge(token, this.onCharge.bind(this));\n }\n },\n\n submitCharge: function(url, data, callback) {\n UC.net.post(url, data, callback).fail(function() {\n this.components.loader.hideLoader();\n }.bind(this));\n },\n\n isAgreeToTermsChecked: function() {\n var isChecked = this.elements.agreeToTermsCheckboxes.filter(\":checked\").length;\n var isAgreedToPreviously = this.elements.agreeToTermsDates.length;\n\n return isChecked || isAgreedToPreviously;\n },\n\n validateAgreeToTerms: function () {\n if (!this.isAgreeToTermsChecked()) {\n var error =\n { element: this.elements.agreeToTermsCheckboxes, className: \"form-group\" }\n\n UC.utils.showValidationErrors([error]);\n\n return false;\n } else { return true }\n },\n\n validate: function () {\n var errors = [];\n var now = new Date();\n\n this.$('.form-group').removeClass('has-error');\n\n this.data = this.elements.formCollectInfo.serializeJSON();\n\n if (this.data.nameOnCard === '') {\n errors.push({element: this.$el.find('#txtNameOnCard'), text: 'Please enter the name on your card.'});\n }\n\n if (!UC.payments.validateCardNumber(this.data.cardNumber)) {\n errors.push({element: this.$el.find('#txtCardNumber'), text: 'Invalid credit card number.'});\n }\n\n var yearInPast = this.data.expireYear < now.getFullYear()\n var monthInPast = this.data.expireYear === now.getFullYear() && this.data.expireMonth < now.getMonth() + 1\n\n if (yearInPast || monthInPast) {\n errors.push({element: this.$el.find('#selectMonth'), text: 'Invalid expiration date.'});\n }\n\n if (!UC.payments.validateSecurityCode(this.data.cvc)) {\n errors.push({element: this.$el.find('#txtCvc'), text: 'Invalid CVC number.'});\n }\n\n if (this.data.address === '') {\n errors.push({element: this.$el.find('#txtAddress'), text: 'Please enter your billing address.'});\n }\n\n if (this.data.city === '') {\n errors.push({element: this.$el.find('#txtCity'), text: 'Please enter your billing city.'});\n }\n\n if (this.data.state === UC.constants.emptySelectValue && this.data.country === 'USA') {\n errors.push({element: this.$el.find('#selectState'), text: 'Please select your billing state.'});\n }\n\n if (this.data.country === UC.constants.emptySelectValue) {\n errors.push({element: this.$el.find('#selectCountry'), text: 'Please enter your billing country.'});\n }\n\n if (this.data.country === 'USA' && !UC.utils.validateZipCode(this.data.zip)) {\n errors.push({element: this.$el.find('#txtZipCode'), text: 'Please enter a valid billing zip code.'});\n }\n\n var accountInfoPresent = this.$el.find('#accountInformation').length > 0;\n var accountInfoShowing = !this.$el.find('#accountInformation').hasClass('hidden');\n\n if (accountInfoPresent && accountInfoShowing) {\n\n if (this.data.firstName === '' || this.data.lastName === '') {\n errors.push({element: this.$el.find('#txtFirstName'), text: 'Please enter your first and last name.'});\n }\n\n if (this.data.password.length < UC.constants.minPasswordLength) {\n errors.push({\n element: this.$el.find('#txtPassword'),\n text: 'Please enter a password with at least {0} characters.'.format(UC.constants.minPasswordLength)\n });\n }\n }\n\n if (!this.validateAgreeToTerms()) {\n errors.push({ element: this.elements.agreeToTermsCheckboxes });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {scrollToFirst: true, className: 'form-group' });\n return false;\n }\n\n return true;\n },\n\n charge: function (token, callback) {\n var data = {};\n var accountId = this.$el.find('#selectPaymentMethod').val();\n\n if (token) {\n data.token = token;\n data.makeTokenDefault = this.components.chkDefaultMethod.hasClass('checked');\n }\n else if (accountId){\n data.accountId = accountId;\n }\n\n data.isAgreeToTermsChecked = !!this.isAgreeToTermsChecked()\n\n var accountInfoPresent = this.$el.find('#accountInformation').length > 0;\n var accountInfoShowing = !this.$el.find('#accountInformation').hasClass('hidden');\n\n if (accountInfoPresent && accountInfoShowing) {\n data.accountData = {\n firstName: this.data.firstName,\n lastName: this.data.lastName,\n password: this.data.password\n };\n }\n\n this.submitCharge(UC.constants.paymentPath, data, callback);\n },\n\n onCharge: function(res) {\n\n if (res && res.url) {\n\n location.href = res.url;\n\n } else {\n\n this.components.loader.hideLoader();\n\n if (res && res.message) {\n\n UC.utils.showNotification(res.message, UC.constants.results.failure, 10000);\n\n } else if (res) {\n\n errMessage = res == 'card-declined' ? 'Sorry, your card was declined.' : res;\n UC.utils.showNotification(errMessage, UC.constants.results.failure, 10000);\n\n }\n }\n },\n\n trackDefaultMethod: function(e, checked) {\n UC.utils.recordKissEvent('Checkout default payment check click', { checked: checked });\n },\n\n showCreditCardForm: function(e) {\n e.preventDefault();\n UC.utils.recordKissEvent('Pay with credit card click');\n $('#formCollectInfo').removeClass('hidden');\n $('#add-payment-method').addClass('hidden');\n $('#cc-hold-info').removeClass('hidden');\n this.initSelect2();\n },\n\n showAddPaymentMethod: function(e) {\n e.preventDefault();\n $('#formCollectInfo').addClass('hidden');\n $('#payment-methods').addClass('hidden');\n $('#add-payment-method').removeClass('hidden');\n $('#cc-hold-info').addClass('hidden');\n },\n\n initPlaid: function() {\n var plaidVerification = new UC.plaidBankVerification({\n openPlaidLinkSelector: '#add-bank-account-panel',\n successRedirectUrl: window.location.href,\n successCallback: this.bankAccountSuccessCallback,\n showDefaultButtonLoader: this.showDefaultButtonLoader\n });\n\n $('#add-bank-account-panel').on('plaidLinkExit plaidLinkAuthFailure', this.showInstantAchNotAvailable)\n\n plaidVerification.init();\n },\n\n showInstantAchNotAvailable: function() {\n $('#instant-ach-not-available-container').removeClass('hidden');\n },\n\n showExistingPmtMethods: function(e) {\n e.preventDefault();\n $('#payment-methods').removeClass('hidden');\n $('#add-payment-method').addClass('hidden');\n this.initSelect2();\n },\n\n showCouponFields: function(e) {\n e.preventDefault();\n $(e.currentTarget).remove();\n this.$('#panelCouponFields').removeClass('hide');\n this.$('#txtCoupon').focus();\n }\n });\n}();\n","!function() {\n\n UC.components.PaymentInfoV1 = Backbone.View.extend({\n\n events: {\n 'change #selectCountry' : 'onChangeCountry',\n 'click #aChangeCard' : 'onChangeCardClick',\n 'change #chkDefaultMethod': 'trackDefaultMethod',\n 'click .btnPay' : 'onBtnPayClick',\n 'click #add-bank-account-panel' : 'openPlaid',\n 'click #add-credit-card-panel' : 'showCreditCardForm',\n 'click #credit-card-form-back' : 'showAddPaymentMethod',\n 'click #choose-existing-pmt-method' : 'showExistingPmtMethods',\n 'click #change-pmt-method' : 'showAddPaymentMethod',\n 'click #panelCouponFieldsToggle' : 'showCouponFields',\n 'click .js-cancel-pay': 'showAddPaymentMethod',\n 'click .js-back-to.payment-methods': 'showExistingPmtMethods',\n 'click .js-back-to.proposals': 'backToProposalsClick'\n },\n\n initialize: function(args) {\n this.data = {};\n\n this.components = {\n loader: this.$el.find('.btnPay').buttonLoader(),\n chkDefaultMethod: this.$el.find('#chkDefaultMethod').fancyCheck(),\n addBankAccountLoader: this.$el.find('.js-add-bank-account').buttonLoader()\n };\n\n this.bankAccountSuccessCallback = args.bankAccountSuccessCallback;\n this.showDefaultButtonLoader = args.showDefaultButtonLoader;\n\n this.elements = {\n selectMonth: this.$el.find('#selectMonth'),\n selectYear: this.$el.find('#selectYear'),\n selectState: this.$el.find('#selectState'),\n selectCountry: this.$el.find('#selectCountry'),\n txtZipCode: this.$el.find('#txtZipCode'),\n agreeToTermsCheckboxes: this.$el.find(\".js-agreeToTermsCheckbox\"),\n agreeToTermsDates: this.$el.find(\".js-agreeToTermsDate\"),\n formCollectInfo: this.$el.find('#formCollectInfo'),\n selectPaymentMethod: this.$('#selectPaymentMethod')\n };\n\n this.elements.selectMonth.val(new Date().getMonth() + 1);\n\n this.initYearSelect();\n this.initSelect2();\n this.initPlaid();\n\n this.$('#cvc-info').tooltip();\n UC.utils.initRatingDimensions('.js-attorney-rating');\n UC.utils.recordKissEvent('Viewed Request upfront payment');\n },\n\n backToProposalsClick: function() {\n UC.utils.recordKissEvent('Clicked Back To Proposals');\n },\n\n initYearSelect: function() {\n var year = new Date().getFullYear();\n var endYear = year + 12;\n var options = '';\n\n for (var i = year; i < endYear; i++) {\n options += ''.format(i);\n }\n\n this.elements.selectYear.html(options);\n },\n\n initSelect2: function() {\n\n if (!this.elements.formCollectInfo.hasClass('hidden')) {\n this.elements.selectMonth.select2();\n this.elements.selectYear.select2();\n this.elements.selectState.select2();\n this.elements.selectCountry.select2();\n }\n\n if (!this.elements.selectPaymentMethod.hasClass('hidden')) {\n this.$('#selectPaymentMethod').select2();\n }\n },\n\n onChangeCardClick: function(e) {\n e.preventDefault();\n $('#formCollectInfo').removeClass('hidden');\n $('#payment-methods').addClass('hidden');\n this.initSelect2();\n },\n\n onChangeCountry: function(e) {\n var country = UC.utils.findSelectedElement(this.elements.selectCountry);\n if(country.val() != 'USA'){\n UC.utils.setSelectedElement(this.elements.selectState, UC.constants.emptySelectValue);\n this.elements.txtZipCode.val('');\n this.elements.selectState.prop('disabled', true);\n $('#state-zip-input-row').addClass('hidden');\n }\n else{\n this.elements.selectState.prop('disabled', false);\n $('#state-zip-input-row').removeClass('hidden');\n }\n },\n\n onBtnPayClick: function(e) {\n UC.utils.recordKissEvent('Payment Flow - ' + $(e.currentTarget).text().trim(), {\n job_id: UC.job.id\n });\n\n this.components.loader.showLoader();\n\n var isFormHidden = this.elements.formCollectInfo.hasClass(\"hidden\");\n var isUserAgreeToTerms = this.validateAgreeToTerms();\n\n if (isFormHidden && isUserAgreeToTerms) {\n this.charge(null, this.onCharge.bind(this));\n } else if (this.validate()) {\n UC.payments.tokenizeCard(UC.payments.createCreditCardData(this.data), this.onCreateToken.bind(this));\n } else {\n this.components.loader.hideLoader();\n }\n },\n\n onCreateToken: function (err, token) {\n if(err){\n this.components.loader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure, 10000);\n }\n else{\n this.charge(token, this.onCharge.bind(this));\n }\n },\n\n submitCharge: function(url, data, callback) {\n UC.net.post(url, data, callback).fail(function() {\n this.components.loader.hideLoader();\n }.bind(this));\n },\n\n isAgreeToTermsChecked: function() {\n var isChecked = this.elements.agreeToTermsCheckboxes.filter(\":checked\").length;\n var isAgreedToPreviously = this.elements.agreeToTermsDates.length;\n\n return isChecked || isAgreedToPreviously;\n },\n\n validateAgreeToTerms: function () {\n if (!this.isAgreeToTermsChecked()) {\n var error =\n { element: this.elements.agreeToTermsCheckboxes, className: \"form-group\" }\n\n UC.utils.showValidationErrors([error]);\n\n return false;\n } else { return true }\n },\n\n validate: function () {\n var errors = [];\n var now = new Date();\n\n this.$('.form-group').removeClass('has-error');\n\n this.data = this.elements.formCollectInfo.serializeJSON();\n\n if (this.data.nameOnCard === '') {\n errors.push({element: this.$el.find('#txtNameOnCard'), text: 'Please enter the name on your card.'});\n }\n\n if (!UC.payments.validateCardNumber(this.data.cardNumber)) {\n errors.push({element: this.$el.find('#txtCardNumber'), text: 'Invalid credit card number.'});\n }\n\n var yearInPast = this.data.expireYear < now.getFullYear()\n var monthInPast = this.data.expireYear === now.getFullYear() && this.data.expireMonth < now.getMonth() + 1\n\n if (yearInPast || monthInPast) {\n errors.push({element: this.$el.find('#selectMonth'), text: 'Invalid expiration date.'});\n }\n\n if (!UC.payments.validateSecurityCode(this.data.cvc)) {\n errors.push({element: this.$el.find('#txtCvc'), text: 'Invalid CVC number.'});\n }\n\n if (this.data.address === '') {\n errors.push({element: this.$el.find('#txtAddress'), text: 'Please enter your billing address.'});\n }\n\n if (this.data.city === '') {\n errors.push({element: this.$el.find('#txtCity'), text: 'Please enter your billing city.'});\n }\n\n if (this.data.state === UC.constants.emptySelectValue && this.data.country === 'USA') {\n errors.push({element: this.$el.find('#selectState'), text: 'Please select your billing state.'});\n }\n\n if (this.data.country === UC.constants.emptySelectValue) {\n errors.push({element: this.$el.find('#selectCountry'), text: 'Please enter your billing country.'});\n }\n\n if (this.data.country === 'USA' && !UC.utils.validateZipCode(this.data.zip)) {\n errors.push({element: this.$el.find('#txtZipCode'), text: 'Please enter a valid billing zip code.'});\n }\n\n var accountInfoPresent = this.$el.find('#accountInformation').length > 0;\n var accountInfoShowing = !this.$el.find('#accountInformation').hasClass('hidden');\n\n if (accountInfoPresent && accountInfoShowing) {\n\n if (this.data.firstName === '' || this.data.lastName === '') {\n errors.push({element: this.$el.find('#txtFirstName'), text: 'Please enter your first and last name.'});\n }\n\n if (this.data.password.length < UC.constants.minPasswordLength) {\n errors.push({\n element: this.$el.find('#txtPassword'),\n text: 'Please enter a password with at least {0} characters.'.format(UC.constants.minPasswordLength)\n });\n }\n }\n\n if (!this.validateAgreeToTerms()) {\n errors.push({ element: this.elements.agreeToTermsCheckboxes });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {scrollToFirst: true, className: 'form-group' });\n return false;\n }\n\n return true;\n },\n\n charge: function (token, callback) {\n var data = {};\n var accountId = this.$el.find('#selectPaymentMethod').val();\n\n if (token) {\n data.token = token;\n data.makeTokenDefault = this.components.chkDefaultMethod.hasClass('checked');\n }\n else if (accountId){\n data.accountId = accountId;\n }\n\n data.isAgreeToTermsChecked = !!this.isAgreeToTermsChecked();\n\n var accountInfoPresent = this.$el.find('#accountInformation').length > 0;\n var accountInfoShowing = !this.$el.find('#accountInformation').hasClass('hidden');\n\n if (accountInfoPresent && accountInfoShowing) {\n data.accountData = {\n firstName: this.data.firstName,\n lastName: this.data.lastName,\n password: this.data.password\n };\n }\n\n this.submitCharge(UC.constants.paymentPath, data, callback);\n },\n\n onCharge: function(res) {\n if (res && res.url) {\n location.href = res.url;\n } else {\n this.components.loader.hideLoader();\n\n if (res && res.message) {\n\n UC.utils.showNotification(res.message, UC.constants.results.failure, 10000);\n\n } else if (res) {\n\n errMessage = res == 'card-declined' ? 'Sorry, your card was declined.' : res;\n UC.utils.showNotification(errMessage, UC.constants.results.failure, 10000);\n\n }\n }\n },\n\n trackDefaultMethod: function(e, checked) {\n UC.utils.recordKissEvent('Checkout default payment check click', { checked: checked });\n },\n\n showCreditCardForm: function(e) {\n e.preventDefault();\n UC.utils.recordKissEvent('Clicked \"Add credit card\"');\n $('#formCollectInfo').removeClass('hidden');\n $('#add-payment-method').addClass('hidden');\n $('#cc-hold-info').removeClass('hidden');\n $('.upfront-payment-needed .title').addClass(\"hidden\");\n $('.js-back-to').addClass(\"hidden\");\n this.initSelect2();\n UC.utils.recordKissEvent('Viewed \"Credit card screen\"');\n },\n\n showAddPaymentMethod: function(e) {\n e.preventDefault();\n UC.utils.recordKissEvent('Viewed \"Add payment method\"');\n $('#formCollectInfo').addClass('hidden');\n $('#payment-methods').addClass('hidden');\n $('#add-payment-method').removeClass('hidden');\n $('.js-add-payment-method-container').removeClass('hidden');\n $('#cc-hold-info').addClass('hidden');\n $('.upfront-payment-needed .title').removeClass(\"hidden\");\n $('.js-back-to').removeClass(\"hidden\");\n },\n\n initPlaid: function() {\n var plaidVerification = new UC.plaidBankVerification({\n openPlaidLinkSelector: '#add-bank-account-panel',\n successRedirectUrl: window.location.href,\n successCallback: this.bankAccountSuccessCallback,\n showDefaultButtonLoader: this.showDefaultButtonLoader\n });\n\n $('#add-bank-account-panel').on('plaidLinkExit plaidLinkAuthFailure', this.showInstantAchNotAvailable);\n\n plaidVerification.init();\n },\n\n showInstantAchNotAvailable: function() {\n $('#instant-ach-not-available-container').removeClass('hidden');\n },\n\n showExistingPmtMethods: function(e) {\n e.preventDefault();\n $('#payment-methods').removeClass('hidden');\n $('#add-payment-method').addClass('hidden');\n this.initSelect2();\n },\n\n showCouponFields: function(e) {\n e.preventDefault();\n $(e.currentTarget).remove();\n this.$('#panelCouponFields').removeClass('hide');\n this.$('#txtCoupon').focus();\n }\n });\n}();\n","import 'jquery-jcrop'\n\nUC.photoUploaderWidget = function(options) {\n this.s3UploadPath = options.s3UploadPath;\n this.$openFilePickerBtn = $(options.openFilePickerBtnSelector);\n this.openFilePickerBtnLoader = this.$openFilePickerBtn.buttonLoader();\n this.ucStoreFileInfoPath = options.ucStoreFileInfoPath;\n this.ucStoreCroppedPhotoUrl = options.ucStoreCroppedPhotoUrl;\n this.$uploadedImagePreviewTag = $(options.uploadedImagePreviewSelector);\n this.$currentPhotoPanel = $(options.currentPhotoPanelSelector);\n this.$newPhotoPanel = $(options.newPhotoPanelSelector);\n this.$savePhotoBtn = $(options.savePhotoBtnSelector);\n this.savePhotoBtnLoader = this.$savePhotoBtn.buttonLoader();\n this.currentFilepickerImageObject = null;\n this.userId = options.userId;\n this.imageCoords = null;\n this.radminUpdate = options.radminUpdate;\n this.maxSize = options.maxSize;\n this.maxFiles = options.maxSize;\n this.fileStackApiKey = options.fileStackApiKey;\n};\n\nUC.photoUploaderWidget.prototype = {\n init: function() {\n this.client = filestack.init(this.fileStackApiKey);\n this.setListeners();\n this.minImageDimension = 200;\n },\n\n setListeners: function() {\n this.$openFilePickerBtn.on('click', this.openFilepicker.bind(this));\n this.$savePhotoBtn.on('click', this.saveCroppedImage.bind(this));\n },\n\n openFilepicker: function() {\n this.client.picker({\n fromSources: ['local_file_system', 'facebook', 'box', 'dropbox', 'googledrive', 'onedrive', 'gmail', 'instagram'],\n accept: ['image/*'],\n maxSize: parseInt(this.maxSize),\n maxFiles: 1,\n uploadInBackground: false,\n storeTo: {\n location: 's3',\n path: this.s3UploadPath,\n access: 'public'\n },\n displayMode: 'overlay',\n onUploadDone: function (res) {\n this.onFileUploadViaFilepicker(res.filesUploaded);\n }.bind(this)\n }).open();\n },\n\n getMeta: function(url) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\n img.onload = function(){\n resolve({\n width: this.width,\n height: this.height\n })\n };\n img.onerror = function(){\n resolve(null)\n };\n img.src = url;\n });\n },\n\n onFileUploadViaFilepicker: function(inkblobs) {\n var messageError = 'Could not get the file info, please try again'\n\n if (!inkblobs || !inkblobs[0]) {\n UC.utils.showNotification(messageError, UC.constants.results.failure);\n return\n }\n\n this.getMeta(inkblobs[0].url).then(function(dimensions) {\n if (!dimensions) {\n UC.utils.showNotification(messageError, UC.constants.results.failure);\n return\n }\n\n if (dimensions.height < this.minImageDimension || dimensions.width < this.minImageDimension) {\n UC.utils.showNotification('The photo dimensions are smaller than ' + this.minImageDimension + 'px by width or height.', UC.constants.results.failure);\n return\n }\n\n this.openFilePickerBtnLoader.showLoader();\n\n var filepickerFile = inkblobs[0];\n\n var originalData = {\n path: filepickerFile.key,\n size: filepickerFile.size,\n type: filepickerFile.mimetype,\n status: 'temp'\n };\n\n this.saveFileInfoToUC(originalData, $.noop);\n\n this.resizeFilepickerFile(filepickerFile);\n }.bind(this))\n },\n\n saveFileInfoToUC: function(data, callback) {\n return UC.net.post(this.ucStoreFileInfoPath, {fileData: data, userId: this.userId, radminUpdate: this.radminUpdate}, callback);\n },\n\n resizeFilepickerFile: function(filepickerFileObject) {\n const resizedUrl = this.client.transform(\n filepickerFileObject.url,\n {\n resize: {width: 400, fit: 'max'}\n }\n );\n this.client.storeURL(resizedUrl, {\n location: 's3',\n path: this.s3UploadPath,\n access: 'public'\n }).then(function (currentFilepickerImageObject) {\n this.currentFilepickerImageObject = currentFilepickerImageObject;\n this.$uploadedImagePreviewTag.attr('src', currentFilepickerImageObject.url);\n this.saveFileInfoToUC(\n {\n path: currentFilepickerImageObject.key,\n size: currentFilepickerImageObject.size,\n type: currentFilepickerImageObject.mimetype,\n status: 'temp'\n },\n this.showResizedFilepickerImageAndCrop.bind(this)\n ).always(this.openFilePickerBtnLoader.hideLoader);\n }.bind(this));\n },\n\n showResizedFilepickerImageAndCrop: function() {\n UC.utils.hidePanel(this.$currentPhotoPanel);\n UC.utils.showPanel(this.$newPhotoPanel);\n\n var imageWidth = this.minImageDimension,\n imageHeight = this.minImageDimension,\n crop = (Math.min(imageWidth, imageHeight)) / 2,\n x = (imageWidth / 2) - (crop / 2),\n y = (imageHeight / 2) - (crop / 2),\n x2 = x + crop,\n y2 = y + crop;\n\n this.$uploadedImagePreviewTag.Jcrop({\n onChange: this.updateImageCoords.bind(this),\n onSelect: this.updateImageCoords.bind(this),\n aspectRatio: 1,\n setSelect: [ x, y, x2, y2 ],\n minSize: [imageWidth, imageHeight]\n });\n },\n\n updateImageCoords: function(coords) {\n if (parseInt(coords.w) > 0) {\n this.imageCoords = {\n left: coords.x,\n top: coords.y,\n bottom: coords.y2,\n right: coords.x2\n };\n }\n },\n\n saveCroppedImage: function() {\n if (this.currentFilepickerImageObject && this.imageCoords) {\n this.savePhotoBtnLoader.showLoader();\n\n const croppedUrl = this.client.transform(\n this.$uploadedImagePreviewTag.attr('src'),\n {\n crop: {\n dim: [\n this.imageCoords.left,\n this.imageCoords.top,\n this.imageCoords.right - this.imageCoords.left,\n this.imageCoords.bottom - this.imageCoords.top\n ],\n },\n }\n );\n this.client.storeURL(croppedUrl, {\n location: 's3',\n path: this.s3UploadPath + '{0}{1}'.format(\n new Date().getTime(),\n this.currentFilepickerImageObject.filename.replace(/%20/g, '-')\n ),\n access: 'public'\n }).then(function (currentFilepickerImageObject) {\n this.currentFilepickerImageObject = currentFilepickerImageObject;\n this.saveFileInfoToUC(\n {\n path: currentFilepickerImageObject.key,\n size: currentFilepickerImageObject.size,\n type: currentFilepickerImageObject.mimetype,\n status: 'none'\n },\n this.saveCroppedImageUrlOnUCInfoSave.bind(this)\n ).fail(this.savePhotoBtnLoader.hideLoader);\n }.bind(this));\n }\n },\n\n saveCroppedImageUrlOnUCInfoSave: function() {\n var data = {\n photo: {\n path: this.currentFilepickerImageObject.key\n },\n userId: this.userId,\n radminUpdate: this.radminUpdate\n };\n\n UC.net.post(this.ucStoreCroppedPhotoUrl, data, function(response) { // TODO: FIGURE OUT DYNAMIC PATH\n if (location.hash === '#profile') {\n location.href = '/attorney/profile/' + this.userId;\n } else if (location.hash === '#checklist') {\n location.href = '/dashboard';\n } else {\n location.href = response.next_url;\n }\n }.bind(this)).fail(function() {\n this.savePhotoBtnLoader.hideLoader();\n }.bind(this));\n }\n};\n","UC = UC || {};\n\nUC.plaidBankVerification = function(args) {\n this.openPlaidLinkSelector = args.openPlaidLinkSelector;\n this.successRedirectUrl = args.successRedirectUrl || '/account/billing';\n this.successCallback = args.successCallback;\n this.$openPlaidLinkElement = $(this.openPlaidLinkSelector);\n this.showDefaultButtonLoader = !!args.showDefaultButtonLoader;\n if (this.showDefaultButtonLoader) {\n this.buttonLoader = this.$openPlaidLinkElement.buttonLoader();\n }\n};\n\nUC.plaidBankVerification.prototype = {\n init: function() {\n if (window.Plaid) {\n this.initHandler();\n }\n },\n\n initHandler: function() {\n this.$openPlaidLinkElement.on('click', function (e) {\n e.preventDefault();\n\n this.showLoader();\n\n UC.net.get('/account/plaid_auth_link_token',\n function (data) {\n this.plaidLinkHandler = Plaid.create({\n token: data.token,\n env: UC.constants.plaidEnv,\n onLoad: this.plaidLinkLoad.bind(this),\n onSuccess: this.plaidLinkAuthSuccess.bind(this),\n onExit: this.plaidLinkExit.bind(this)\n });\n\n this.openPlaid();\n }.bind(this)\n ).fail(this.plaidFail.bind(this));\n }.bind(this));\n },\n\n showLoader: function() {\n if (this.showDefaultButtonLoader) {\n this.buttonLoader.showLoader();\n } else {\n this.$openPlaidLinkElement.addClass('loader-enabled');\n }\n },\n\n hideLoader: function() {\n if (this.showDefaultButtonLoader) {\n this.buttonLoader.hideLoader();\n } else {\n this.$openPlaidLinkElement.removeClass('loader-enabled');\n }\n },\n\n openPlaid: function() {\n this.plaidLinkHandler.open();\n this.$openPlaidLinkElement.trigger('plaidLinkOpen');\n\n UC.utils.recordKissEvent('plaid_link_modal_opened', { location: window.location.href })\n },\n\n plaidLinkAuthSuccess: function(publicToken, metadata) {\n UC.net.post('/account/plaid_auth', { public_token: publicToken, account_id: metadata.account_id })\n .done(function(data) {\n if (typeof this.successCallback !== 'undefined') {\n this.successCallback();\n } else if (data && data.payment_method_id) {\n var href = this.successRedirectUrl;\n if(this.successRedirectUrl.includes('?')) {\n href += '&'\n } else {\n href += '?'\n }\n\n window.location.href = href + 'payment_method=' + data.payment_method_id;\n } else {\n window.location.href = this.successRedirectUrl;\n }\n\n this.$openPlaidLinkElement.trigger('plaidLinkAuthSuccess');\n }.bind(this))\n .fail(this.plaidFail.bind(this));\n },\n\n plaidFail: function () {\n this.$openPlaidLinkElement.trigger('plaidLinkAuthFailure');\n\n this.hideLoader();\n\n UC.utils.recordKissEvent('plaid_bank_auth_failed', { location: window.location.href });\n },\n\n plaidLinkExit: function(err) {\n if (err != null && err.error_code === 'INVALID_LINK_TOKEN') {\n this.plaidLinkHandler.destroy();\n this.initHandler();\n return\n }\n this.$openPlaidLinkElement.trigger('plaidLinkExit');\n if (this.showDefaultButtonLoader) {\n this.buttonLoader.hideLoader();\n } else {\n this.$openPlaidLinkElement.removeClass('loader-enabled');\n }\n\n UC.utils.recordKissEvent('user_exited_plaid_link_modal', { location: window.location.href })\n },\n\n plaidLinkLoad: function() {\n this.$openPlaidLinkElement.trigger('plaidLinkModuleLoaded');\n }\n};\n","$.fn.popdown = function (options) {\n var that = this,\n opt = $.fn.extend({}, options);\n\n $('body, .notification-icon-header').click(function (e) {\n var element = $(e.currentTarget);\n if (!element.hasClass('popdown-holder')) {\n hideAll(e);\n }\n });\n\n function hideAll(e) {\n that.addClass('hidden');\n }\n\n function hidePopdown(element) {\n return element.addClass('hidden');\n }\n\n function showPopdown(element) {\n return element.removeClass('hidden');\n }\n\n function toggle(e) {\n e.preventDefault();\n e.stopPropagation();\n var currentElement = $(e.currentTarget).parent(),\n action = currentElement.hasClass('hidden') ? showPopdown : hidePopdown;\n\n hideAll(e);\n action(currentElement);\n\n if (opt.onToggleCallback) {\n opt.onToggleCallback(e);\n }\n\n return that;\n }\n\n $.fn.togglePopdown = function (element) {\n var action = element.hasClass('hidden') ? showPopdown : hidePopdown;\n\n hideAll();\n action(element);\n };\n\n // only init popdown once per element\n if (!that.data('popdown')) {\n that.data('popdown', this);\n return that.find('.popdown-btn').click(toggle);\n }\n};\n","UC.utils.loadPopover = function(element, options) {\n\n if (UC.utils.isMobileViewPort()) {\n return;\n }\n\n var defaults = {\n scrollOver: false,\n scrollGoal: false,\n scrollOffset: 0,\n scrollUp: false,\n timer: false,\n seconds: 10,\n triggered: false,\n sticky: false,\n fireKiss: true\n };\n var opt = $.fn.extend({}, defaults, options);\n\n function triggerModal(element) {\n element.css('margin-top', -(element.outerHeight() / 2));\n\n if (!element.hasClass('anchor')) {\n element.css('margin-left', -(element.outerWidth() / 2));\n }\n\n element.show();\n\n if (!opt.triggered && opt.fireKiss) {\n UC.utils.recordKissEvent('show popover modal', {'page': UC.constants.pageName, 'type': 'scrollOver'});\n }\n\n opt.triggered = true;\n opt.sticky = true;\n }\n\n if (opt.timer) {\n setTimeout(function() {\n triggerModal(element);\n }, opt.seconds * 1000);\n } else if (opt.scrollOver) {\n $(window).scroll(function() {\n if (opt.triggered) {\n return; \n }\n var scrollTop = $(window).scrollTop(),\n scrollGoal = opt.scrollGoal ? opt.scrollGoal.offset().top : 0;\n\n if (scrollTop >= scrollGoal + opt.scrollOffset || opt.sticky) {\n triggerModal(element); \n }\n });\n } else if (opt.scrollUp) {\n var lastPosition = 0;\n\n $(window).scroll(function() {\n if (opt.triggered) {\n return;\n }\n\n var scrollTop = $(window).scrollTop();\n\n if (scrollTop < lastPosition || opt.sticky){\n triggerModal(element);\n }\n\n lastPosition = scrollTop;\n });\n }\n};\n","!function() {\n\n var Search = UC.components.Search = function() {\n this.open = false;\n this.$body = $('body');\n this.$bar = $('#global_search');\n this.$nav = $('#nav');\n\n $('#search_link').click(this.toggleSearch.bind(this));\n\n this.toggle_nav_transparency = this.$nav && this.$nav.hasClass('navbar-transparent');\n };\n\n Search.prototype = {\n\n constructor: Search,\n\n toggleSearch: function(e) {\n e.preventDefault();\n\n if (this.open) {\n // close\n this.$body.removeClass('searching');\n\n if (this.toggle_nav_transparency && this.$nav.hasClass('transparent-scroll-zone')) {\n this.$nav.addClass('navbar-transparent');\n }\n } else {\n // open\n this.$body.addClass('searching');\n\n if (this.toggle_nav_transparency) {\n this.$nav.removeClass('navbar-transparent');\n }\n\n if (this.$nav && this.$nav.hasClass('navbar-fixed-top')) {\n this.$bar.css('position', 'fixed');\n } else {\n this.$bar.css('position', 'aboslute');\n }\n\n setTimeout(function() {\n this.$bar.find('input.search_input').focus();\n }.bind(this), 201);\n }\n\n this.open = !this.open;\n }\n };\n\n $(function() {\n if (!$('body').hasClass('search')) {\n new Search();\n }\n });\n}();\n","$.fn.smartSearch = function(options) {\n var that = this,\n options = options || {},\n defaults = {\n minLength: 2,\n delay: 50,\n autoFocus: true,\n select: defaultSelect,\n data: function() { return {}; }\n };\n\n options = $.extend({}, defaults, options);\n\n if (!options.url) {\n throw 'You must provide a request url';\n }\n else {\n options.source = function(request, callback) {\n var data = $.extend(options.data(), { term: request.term });\n var url = options.url + '?' + $.param(data);\n\n UC.net.get(url, function(err, data) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n callback(data);\n }\n });\n };\n };\n\n var opt = $.fn.extend({}, defaults, options);\n\n function defaultSelect(e, data) {\n e.preventDefault();\n $(e.target).val(data.item.label);\n $(e.target).attr('smartSearchSelectedId', data.item.id);\n };\n\n return that.each(function() {\n\n var autocomplete = $(this).autocomplete(opt).focus(function(e) {\n $(this).autocomplete('search');\n }).data('ui-autocomplete');\n\n if (typeof opt.render === 'function') {\n autocomplete._renderItem = opt.render;\n }\n });\n};\n","$.fn.stickyCssTableHeader = function() {\n\n var $cssTable = this;\n // If re-running on same table, need to ensure only one sticky-thead is present\n $cssTable.find('#sticky-thead').remove();\n\n var $cssTableHeader = $cssTable.find('.thead');\n var $stickyHeader = $cssTableHeader.clone();\n\n $stickyHeader.attr('id', 'sticky-thead');\n $stickyHeader.addClass('hidden');\n\n var stickyHeaderHeight;\n\n var $stickyHeaderColumns = $stickyHeader.find('.th');\n\n $cssTable.prepend($stickyHeader);\n\n var $incRepFirstRow = $cssTable.find('.tbody .tr').eq(0);\n\n var setStickyHeaderColumnWidths = function() {\n var columnWidths = $incRepFirstRow.find('.tc').map(function(index, cell) {\n return $(cell).outerWidth();\n });\n\n $stickyHeaderColumns.each(function(i, th) {\n $(th).css('width', columnWidths[i]);\n });\n };\n\n var $window = $(window);\n\n function resetStickyHeader() {\n if (!$cssTableHeader || $cssTableHeader.length === 0) {\n return // in case when table header is not present\n }\n var headerOffset = $cssTableHeader.offset().top;\n var scrollTop = $window.scrollTop();\n\n if(scrollTop > headerOffset) {\n if ($stickyHeader.is(':visible')) stickyHeaderHeight = $stickyHeader.outerHeight();\n if (scrollTop > (headerOffset + $cssTable.outerHeight() - stickyHeaderHeight)) {\n $stickyHeader.addClass('hidden');\n } else {\n $stickyHeader.removeClass('hidden');\n setStickyHeaderColumnWidths();\n }\n } else if ($window.scrollTop() < headerOffset) {\n $stickyHeader.addClass('hidden');\n }\n }\n\n $window.on('scroll resize', resetStickyHeader.bind(this));\n\n setStickyHeaderColumnWidths();\n\n if (this.is(':visible')) resetStickyHeader();\n\n};\n","UC.components.TableOfContents = Backbone.View.extend({\n initialize: function(options) {\n options = options || {}\n const $affixPanel = $('.toc-column .affix-panel');\n const affixAvailable = typeof $affixPanel.affix === 'function';\n const mobileHeaderHeight = 48 + 41; // $header-height-mobile + $toc-height-mobile\n const tocNavSelector = '#toc';\n\n $affixPanel.css('width', $('.toc-column').width());\n\n $(window).resize(function() {\n $affixPanel.css('width', $('.toc-column').width());\n\n if (affixAvailable) {\n $affixPanel.affix('checkPosition');\n }\n });\n\n if (typeof Toc === 'object') {\n Toc.init({\n $nav: $(tocNavSelector),\n $scope: $(options.scope),\n startWithHeadingsLevel: 2\n });\n } else {\n $('.toc-column').hide();\n $('.content-column').toggleClass(`${options.tocEnabledColumnClass || 'col-md-7'} ${options.tocDisabledColumnClass || 'col-md-9'}`);\n }\n\n const $stickyHeader = $('.sticky-cta-header');\n const isMobile = UC && UC.browser && typeof UC.browser.isMobile === 'function' && UC.browser.isMobile();\n const stickyHeaderHeight = Math.max($stickyHeader.length && !isMobile ? $stickyHeader.height() : 0, 0);\n const scrollspyOffset = $stickyHeader.length && !isMobile ? $stickyHeader.height() : mobileHeaderHeight + 20;\n const $body = $('body')\n if (typeof $body.scrollspy === 'function') {\n $body.scrollspy({target: tocNavSelector, offset: scrollspyOffset + 20});\n if (isMobile) {\n $body.on('activate.bs.scrollspy', function (e) {\n if ($(e.target).find('li.active').length > 0) {\n return\n }\n const list = $('#toc').find('li');\n const index = list.index(e.target) + 1;\n const progress = Math.min(100, (index / list.length) * 100);\n $('.mobile-toc .progress-bar').css('width', `${progress}%`);\n })\n }\n }\n\n $affixPanel.on('affixed.bs.affix', function() {\n $affixPanel.css('position', 'fixed');\n }).on('affixed-top.bs.affix', function() {\n $affixPanel.css('position', 'relative');\n });\n\n if (affixAvailable) {\n $affixPanel.affix({\n offset: {\n top: isMobile ? mobileHeaderHeight : options.affixTop,\n bottom: options.affixBottom,\n }\n });\n }\n\n var $stickySection = $('.js-sticky-section');\n if($stickySection.length > 0) {\n this.stickyStart = 5;\n if (!$stickySection.hasClass('js-sticky-nav')) {\n var desc = $('.doc-description, #articleTitle');\n var offset = desc.offset();\n\n this.stickyStart = offset.top + desc.height();\n }\n $(window).scroll({start: this.stickyStart, view: this}, this.testScroll);\n }\n\n // override TOC link clicks to offset the sticky header height\n $('#toc a').on('click', function (e) {\n const href = e.target.getAttribute('href');\n if (!href) {\n return;\n }\n try {\n const element = document.getElementById(href.substring(1));\n const stickySectionsExist = $('.sticky-section, .js-sticky-section').length > 0;\n let headerOffset = stickyHeaderHeight;\n if (isMobile && stickySectionsExist) {\n headerOffset = 48 + 41 /* $header-height-mobile + $toc-height-mobile */;\n }\n window.scrollBy({\n top: element.getBoundingClientRect().top - headerOffset - 20 + 1,\n behavior: \"smooth\"\n });\n e.preventDefault();\n } catch {\n console.warn('failed to scroll to Toc heading')\n }\n });\n },\n\n testScroll: function(event) {\n if ($(window).scrollTop() >= event.data.start) {\n if (!event.data.view.showStickySection) {\n event.data.view.showStickySection = true;\n $('.js-sticky-section').first().css({display:'block'});\n }\n } else {\n if (event.data.view.showStickySection) {\n event.data.view.showStickySection = false;\n $('.js-sticky-section').first().css({display:'none'});\n }\n }\n },\n});\n","export default Backbone.View.extend({\n\n initialize: function(options) {\n this.errorContainer = options.errorContainer || '.form-group';\n this.minLength = options.minLength || 100;\n this.maxLength = options.maxLength || 10000;\n this.updateDescriptionLengthCounterDebounced = _.debounce(this.updateDescriptionLengthCounter, 500);\n this.textarea = $(this.$el.find(options.textarea));\n this.textarea.on('keyup', function(e){\n this.updateDescriptionLengthCounterDebounced(e.target.value || '');\n }.bind(this));\n this.counter = $(this.$el.find(options.counter));\n this.update();\n },\n\n update: function() {\n this.updateDescriptionLengthCounter(this.textarea.val());\n },\n\n updateDescriptionLengthCounter: function(text) {\n this.counter.text(`${text.length}/${this.maxLength}`)\n if (text.length >= this.minLength) {\n this.textarea.closest(this.errorContainer).removeClass('has-error');\n }\n },\n\n hasValidTextLength: function() {\n const length = this.textarea.val().length;\n return length >= this.minLength && length <= this.maxLength;\n },\n\n getError: function() {\n if (!this.hasValidTextLength()) {\n const length = this.textarea.val().length;\n\n if (length < this.minLength) {\n return {element: this.textarea, text: `Use at least ${this.minLength} characters`};\n } else if (length > this.maxLength) {\n return {element: this.textarea, text: `Use less than ${this.maxLength} characters`};\n }\n }\n\n return undefined;\n },\n});\n","!function() {\n\n UC.utils.initTransparentNav = function(el, options) {\n options = options || {};\n\n var $body = $('body');\n var $nav = $(el);\n var $paj = $nav.find('#main_header_link');\n var nav_height = $nav.outerHeight();\n\n var h1_position = 100;\n var $hero_h1 = $('#hero h1');\n\n if ($hero_h1.length > 0) {\n h1_position = $hero_h1.offset().top;\n }\n\n var cta_position = 100;\n var $paj_hero = $('#post-job-hero');\n\n if ($paj_hero.length > 0) {\n cta_position = $paj_hero.offset().top;\n }\n\n $(window).scroll(function() {\n var scroll_top = $(this).scrollTop();\n\n if (scroll_top > h1_position - nav_height) {\n $nav.removeClass('navbar-transparent transparent-scroll-zone');\n } else {\n $nav.addClass('transparent-scroll-zone');\n\n if (!$body.hasClass('searching')) {\n $nav.addClass('navbar-transparent');\n }\n }\n\n if (scroll_top > cta_position) {\n $paj.addClass('active marg-x-10');\n } else {\n $paj.removeClass('active marg-x-10');\n }\n }).scroll();\n };\n}();\n","import { loadFileStackScript, pickFileAndStore } from '../utils/filestack'\n\n!function() {\n\n var defaults = {\n maxFiles: 5,\n maxSize: 10000000,\n onInit: function() {},\n onUploadComplete: function() {},\n createPath: '/documents',\n skipPathPrefix: false,\n upload_path: null,\n userId: null,\n jobId: null\n };\n\n var filepicker_loading = false;\n var filepicker_dfd = $.Deferred();\n\n var Upload = UC.components.Upload = function(options) {\n this.options = $.fn.extend({}, defaults, options);\n this.uploading = null;\n this.upload_path = this.options.upload_path || '/';\n this.source_type = this.options.source_type;\n\n // default to UC objects, but allow overriding\n this.user_id = (UC.user && !options.userId) ? UC.user.id : options.userId ;\n this.job_id = (UC.job && !options.jobId) ? UC.job.id : options.jobId ;\n this.attorney_id = options.attorneyId;\n\n if (!this.options.skipPathPrefix) {\n\n if (this.user_id) {\n this.upload_path += 'user_{0}/'.format(this.user_id);\n }\n\n if (this.job_id) {\n this.upload_path += 'job_{0}/'.format(this.job_id);\n }\n }\n\n this.fileStackApiKey = options.fileStackApiKey || UC.constants.fileStackApiKey;\n\n if (!filepicker_loading) {\n filepicker_loading = true;\n // load in the filepicker JS!!\n loadFileStackScript(function () {\n // resolve our stuff please\n filepicker_dfd.resolve();\n });\n }\n\n if (window.filestack) {\n this.options.onInit(this);\n } else {\n $.when(filepicker_dfd).done(function() {\n this.options.onInit(this);\n }.bind(this));\n }\n };\n\n Upload.prototype = {\n\n constructor: Upload,\n\n makeDropPane: function($el, options) {\n if (!window.filestack) {\n console.log('filestack was not initialized yet.')\n return;\n }\n\n var last_enter;\n this.$el = $el;\n options = options || {};\n\n $('body').on('drop dragover dragleave', function(e){\n e.preventDefault();\n });\n\n $el.on('dragenter', function(e) {\n if (this.uploading && this.uploading.state() == 'pending') {\n return false;\n }\n last_enter = e.target;\n $el.addClass('dragging');\n }.bind(this));\n\n $el.on('dragleave', function(e) {\n if (last_enter === e.target) {\n $el.removeClass('dragging');\n }\n }.bind(this));\n\n filestack\n .init(this.fileStackApiKey)\n .on('upload.error', function (filestackError) {\n if (typeof options.onError === 'function') {\n options.onError(filestackError.type, filestackError.message);\n } else {\n this.error(filestackError.type, filestackError.message);\n }\n })\n .picker({\n maxSize: this.options.maxSize,\n maxFiles: this.options.maxFiles,\n storeTo: {\n location: 'S3',\n path: this.upload_path,\n },\n container: $el[0],\n displayMode: 'dropPane',\n dropPane: {\n overlay: false,\n showProgress: false,\n customText: 'Drag and Drop Files',\n onSuccess: function (files) {\n if (files && files.length > 0) {\n this.process(files);\n }\n }.bind(this),\n onError: function (_files) {\n $el.removeClass('dragging');\n },\n onDrop: function (files) {\n $el.removeClass('dragging');\n $el.addClass('uploading');\n this.uploading = $.Deferred();\n if (typeof options.onStart === 'function') {\n options.onStart(files);\n }\n }.bind(this),\n onProgress: options.onProgress,\n },\n }).open()\n },\n\n openFilePicker: function(options) {\n pickFileAndStore({\n fileStackApiKey: this.fileStackApiKey,\n pickerOptions: $.extend({\n fromSources: ['local_file_system', 'box', 'dropbox', 'googledrive', 'onedrive'],\n maxSize: this.options.maxSize,\n maxFiles: this.options.maxFiles,\n accept: this.options.accept,\n onUploadDone: function (res) {\n if (res.filesUploaded && res.filesUploaded.length > 0) {\n this.uploading = $.Deferred();\n this.process(res.filesUploaded);\n }\n }.bind(this)\n }, options),\n storeOptions: {\n location: 's3',\n path: this.upload_path\n }\n })\n },\n\n process: function(files) {\n\n if (typeof this.options.beforeProcess === 'function') {\n this.options.beforeProcess();\n }\n\n var req = UC.net.post(this.options.createPath, {\n files: files,\n job_id: this.job_id,\n attorney_id: this.attorney_id,\n source_type: this.source_type\n }, function(response) {\n this.options.onUploadComplete(null, response.documents);\n\n if (this.uploading) {\n this.uploading.resolve();\n }\n }.bind(this)).fail(function(xhr) {\n if (xhr.responseJSON) {\n this.options.onUploadComplete(xhr.responseJSON.message);\n } else {\n this.options.onUploadComplete('There was an error during the upload. Please retry a little later');\n }\n\n if (this.uploading) {\n this.uploading.resolve();\n }\n }.bind(this));\n\n if (typeof this.options.processFailureCallback === 'function') {\n req.fail( function(res, err, message) {\n if (res.responseJSON && typeof res.responseJSON.message === 'string') {\n message = res.responseJSON.message;\n }\n this.options.processFailureCallback(message);\n }.bind(this));\n }\n },\n\n error: function(type, message) {\n\n if (type === 'WrongSize') {\n var mb = (this.options.maxSize / 1024 / 1024).toFixed(0);\n message = 'File too large. Must be less than {0} Mb'.format(mb);\n }\n\n UC.utils.showNotification(message, UC.constants.results.failure);\n },\n\n destroy: function(id, callback) {\n UC.net.destroy('/documents/{0}'.format(id), null, function(err, message) {\n if (typeof callback === 'function') callback(err, message);\n }.bind(this));\n }\n };\n}();\n","UC.components.WorkspaceNav = Backbone.View.extend({\n events: {\n 'click .js-workspace-user' : 'updateWorkspaceUser'\n },\n\n updateWorkspaceUser: function (event) {\n var newWorkspaceUserId = event.target.dataset['userId']\n\n if (UC.workspaceUser && newWorkspaceUserId !== UC.workspaceUser.id) {\n var body = { workspace_user_id: newWorkspaceUserId };\n\n UC.net.post('/sessions/set_workspace_user', body, function (response) {\n location.href = response.next_url;\n });\n }\n }\n})\n\n$(function () {\n $workspaceNavbar = $('#workspace-user-navbar')\n\n if ($workspaceNavbar.length > 0) {\n $('#header').addClass('header-with-workspace-navbar')\n new UC.components.WorkspaceNav({el: $workspaceNavbar});\n }\n});\n","$.fn.detachableHead = function (options) {\n var that = this,\n defaults = {\n backgroundColor: '#fff'\n },\n opt = $.fn.extend({}, defaults, options);\n\n function detach() {\n var $this = $(this),\n $head = $this.find('thead'),\n $tr = $head.find('tr');\n\n if ($tr && $tr.length > 0) {\n var $dummyTr = $tr.clone();\n $dummyTr.addClass('detach-dummy');\n\n $tr = $($tr[0]);\n $tr.addClass('detach');\n $this._backgroundColor = $tr.css('backgroundColor');\n $this._height = $tr.height();\n\n var $th = $tr.find('th'),\n $dTh = $dummyTr.find('th');\n\n $dTh.each(function (i) {\n var $currentTh = $th.eq(i),\n $currentDTh = $(this);\n $currentDTh.css({width: '{0}px'.format($currentTh.outerWidth())});\n });\n\n $dummyTr.css({\n 'position': 'fixed',\n 'z-index': 100,\n 'top': 0,\n 'backgroundColor': opt.backgroundColor,\n 'width': '{0}px'.format($this.width())\n });\n\n $head.append($dummyTr);\n that.detached = true;\n }\n }\n\n function attach() {\n var $this = $(this),\n $head = $this.find('thead'),\n $tr = $head.find('tr.detach');\n\n if ($tr) {\n $tr.removeClass('detach');\n $tr.css({backgroundColor: $this._backgroundColor, position: '', left: ''});\n $head.find('.detach-dummy').remove();\n that.detached = false;\n }\n }\n\n function onScroll() {\n var scrollTop = $(window).scrollTop(),\n scrollLeft = $(window).scrollLeft(),\n offsetTop = that.offset().top,\n offsetLeft = that.offset().left;\n\n if (scrollTop >= offsetTop) {\n if (!that.detached) {\n that.detach();\n }\n } else {\n if (that.detached) {\n that.attach();\n }\n }\n\n if (that.detached) {\n var left = scrollLeft == 0 ? '' : '{0}px'.format(offsetLeft - scrollLeft);\n that.find('tr.detach').css({left: left});\n }\n\n }\n\n $(window).scroll(onScroll);\n\n that.detach = detach;\n that.attach = attach;\n return that;\n};\n","export default function ifCond(v1, v2, options) {\n if(v1 === v2) {\n return options.fn(this);\n }\n return options.inverse(this);\n}\n","!function() {\n\n UC.modals.AttorneyProfileAddPastClients = Backbone.View.extend({\n\n el: '#mdlAddPastClients',\n\n events: {\n 'submit #formSearchClients' : 'search',\n 'click #btnSavePastClients' : 'save',\n 'click #btnPastClientAdd' : 'manuallyAdd',\n 'click #lnkManuallyAddClient' : 'showManualAdd'\n },\n\n elements: {\n 'formAddClient' : null,\n 'txtPastClientAdd' : null,\n 'addedClients' : null,\n 'pastClientAdded' : null,\n 'pastClientsSearchResults' : null,\n 'txtPastClientSearch' : null,\n 'pastClientsSearchBox' : null,\n 'pastClientAdded' : null,\n 'btnPastClientSearch' : null,\n 'btnSavePastClients' : null,\n 'pastClientsContent' : null\n },\n\n addedClients: {},\n\n render: function() {\n UC.utils.setSelectors(this.elements);\n this.elements.pastClientsSearchResults.html('');\n this.elements.txtPastClientSearch.val('');\n this.elements.addedClients.html('');\n this.elements.btnSavePastClients.buttonLoader();\n this.elements.btnPastClientSearch.buttonLoader();\n UC.utils.hideComponent(this.elements.pastClientsSearchBox);\n UC.utils.hideComponent(this.elements.pastClientAdded);\n UC.utils.showComponent(this.elements.btnPastClientSearch);\n this.elements.addedClients.on('click', '.action.remove', this.removePastClient.bind(this));\n this.elements.pastClientsSearchResults.on('click', '.action.add', this.addPastClient.bind(this));\n this.$el.modal({ backdrop: 'static' });\n },\n\n search: function(e) {\n e.preventDefault();\n this.elements.pastClientsSearchResults.html('');\n $('.row').removeClass('has-error');\n\n var data = {\n company_name: this.elements.txtPastClientSearch.val().trim()\n };\n\n if (!data.company_name || data.company_name === ''){\n UC.utils.showValidationErrors([{element: $('#txtPastClientSearch'), text: 'Missing company name'}]);\n } else {\n this.elements.btnPastClientSearch.showLoader();\n UC.net.get(UC.constants.search_companies_path, data, function(response) {\n this.searchResults = response.companies;\n this.elements.pastClientsSearchResults.html(response.html);\n UC.utils.showComponent(this.elements.pastClientsSearchBox);\n }.bind(this)).always(function(){\n this.elements.btnPastClientSearch.hideLoader();\n }.bind(this))\n }\n },\n\n showManualAdd: function(e) {\n e.preventDefault();\n this.elements.formAddClient.removeClass('hidden');\n },\n\n manuallyAdd: function(e) {\n e.preventDefault();\n $('.row').removeClass('has-error');\n\n var client = { name: this.elements.txtPastClientAdd.val().trim(), id: Date.now() };\n\n if (client.name && client.name !== '') {\n this.elements.formAddClient.addClass('hidden');\n this.elements.txtPastClientAdd.val('');\n\n if (this.elements.addedClients.find(\".client-name:contains('\" + client.name + \"')\").length === 0) {\n this.appendClientToPage(client);\n }\n } else {\n UC.utils.showValidationErrors([{element: this.elements.txtPastClientAdd, text: 'Missing company name'}]);\n }\n },\n\n newClientHTML: function(client) {\n var newClient =\n this.$el.find('#js-added-client-template').find('.js-added-client').clone();\n\n newClient.attr('data-id', client.id);\n newClient.find('.js-client-name').text(client.name);\n\n if (client.logo_url && client.logo_url !== '') {\n newClient.find('.js-client-logo').attr('src', client.logo_url)\n }\n\n return newClient[0].outerHTML;\n },\n\n appendClientToPage: function(client) {\n this.addedClients[client.id] = client;\n UC.utils.showComponent(this.elements.pastClientAdded);\n\n var newClientHTML = this.newClientHTML(client);\n\n this.elements.addedClients.append(newClientHTML);\n $('#add-client-{0}'.format(client.id)).hide();\n $('#added-client-{0}'.format(client.id)).removeClass('hide');\n },\n\n save: function(e) {\n e.preventDefault();\n var clients = [];\n for (var i in this.addedClients) {\n clients.push(this.addedClients[i]);\n };\n\n var data = {\n clients : clients,\n id: UC.user.id\n };\n\n this.elements.btnSavePastClients.showLoader();\n\n UC.net.post(UC.constants.add_past_clients_path, data, function(response) {\n if (UC.action === 'index' && UC.controller === 'dashboard') {\n UC.utils.checklistSuccessCallback('btnAddPastClients');\n } else {\n this.elements.pastClientsContent.html(response);\n $(\".add-button\").show();\n $('.past-client').tooltip({ container: 'body' });\n }\n this.$el.modal('hide');\n }.bind(this)).always(function() {\n this.elements.btnSavePastClients.hideLoader();\n }.bind(this));\n },\n\n addPastClient: function(e) {\n e.preventDefault();\n\n var index = $(e.target).closest('.js-search-result').data('index');\n client = this.searchResults[index];\n\n if (this.addedClients[client.id] === undefined && UC.constants.pastClientIds.indexOf(client.id.toString()) === -1) {\n this.appendClientToPage(client);\n }\n },\n\n removePastClient: function(e) {\n var clientId = $(e.target).closest('.js-added-client').data('id'),\n client = this.addedClients[clientId];\n\n if(client !== null) {\n delete this.addedClients[clientId];\n $(\"[data-id='{0}']\".format(clientId)).remove();\n $('#add-client-{0}'.format(clientId)).show();\n $('#added-client-{0}'.format(clientId)).hide();\n }\n }\n });\n}();\n","!function() {\n UC.modals.EditBio = Backbone.View.extend({\n\n el: '#mdlEditBiography',\n\n elements: {\n bioCounter: null,\n btnLoader: null,\n btnSaveBiography: null,\n biographyContent: null\n },\n\n events: {\n 'click #btnSaveBiography': 'saveBiography',\n 'click .js-pf-additional-label': 'showExample'\n },\n\n openBioModal: function (e) {\n if (e) e.preventDefault();\n var bioText = this.$el.find('.modal-body').data('originalBio');\n this.$('#txtBiography').val(bioText);\n this.$('#errEditBiography').hide();\n this.$el.modal({ backdrop: 'static' });\n },\n\n saveBiography: function() {\n var data = { biography : this.$('#txtBiography').val() };\n\n if (data.biography.length < 200) {\n this.$('#errEditBiography').html('Biography must be at least 200 characters in length.
    Current length: ' + data.biography.length);\n this.$('#errEditBiography').show();\n return;\n }\n\n if (data.biography.length > 1000) {\n this.$('#errEditBiography').html('Biography must be at less 1000 characters in length.
    Current length: ' + data.biography.length);\n this.$('#errEditBiography').show();\n return;\n }\n\n this.$('#errEditBiography').hide();\n this.elements.btnLoader.showLoader();\n\n UC.net.post(UC.constants.update_biography_path, data, function(response) {\n UC.utils.checklistSuccessCallback('btnEditBiography');\n this.elements.biographyContent.html(response.html);\n this.$el.find('.modal-body').data('originalBio', response.biography_text);\n this.$el.modal('hide');\n }.bind(this)).fail(function(res) {\n UC.closeTheLoop.handleFailure(res, true);\n }).always(function(res) {\n this.elements.btnLoader.hideLoader();\n }.bind(this));\n },\n\n initialize: function(opts) {\n this.elements.biographyContent = opts.biographyContent;\n this.elements.bioCounter = this.$('#txtBiography').charCounter({ min: 200, max: 1000, allowInvalid: true, validityThreshold: 0 });\n this.elements.btnLoader = this.$('#btnSaveBiography').buttonLoader();\n },\n\n showExample: function(e) {\n e.preventDefault();\n $(e.target).closest('.modal').find('.pf-additional').toggleClass('hide');\n }\n });\n}();\n","!function() {\n UC.modals.EditIndustries = Backbone.View.extend({\n\n el: '#mdlEditIndustries',\n\n events: {\n 'click #btnSaveIndustries': 'saveIndustries'\n },\n\n initialize: function(opts) {\n this.$btnLoader = this.$('#btnSaveIndustries').buttonLoader();\n\n if (opts) this.saveIndustriesCallback = opts.saveIndustriesCallback;\n },\n\n openModal: function() {\n this.$el.modal({ backdrop: 'static' });\n },\n\n saveIndustries: function() {\n var data = this.$('#frmEditIndustries').serializeJSON();\n\n this.$btnLoader.showLoader();\n UC.net.post(UC.constants.update_industries_path, data, function(response) {\n if (UC.action === 'index' && UC.controller === 'dashboard') {\n UC.utils.checklistSuccessCallback('btnEditIndustries');\n } else {\n this.saveIndustriesCallback(response);\n $('.list.paginate').paginateList();\n }\n\n this.$el.modal('hide');\n }.bind(this)).always(function() {\n this.$btnLoader.hideLoader();\n }.bind(this));\n }\n });\n}();\n","!function() {\n UC.modals.EditLanguages = Backbone.View.extend({\n\n el: '#mdlAddLanguages',\n\n events: {\n 'click #btnSaveLanguages': 'saveLanguages',\n 'click .add-language-proficiency': 'addLanguage',\n 'click .remove-language-proficiency': 'removeLanguage'\n },\n\n initialize: function(opts) {\n this.$('.language-row').find('.controls.col-sm-8').removeClass('col-sm-8').addClass('col-sm-12');\n // TODO: find a way to add error message div by passing flag into simple form\n this.$('.language-row').find('.form-group .controls').append(\"
    \")\n\n this.data = {};\n\n if (opts) this.saveCallback = opts.saveCallback;\n },\n\n openModal: function() {\n this.$el.modal({ backdrop: 'static' });\n },\n\n saveLanguages: function() {\n if (this.validateLanguages()) {\n UC.net.post(UC.constants.update_languages_path, this.data, function(response) {\n UC.utils.hideNotifications();\n if (UC.controller === 'dashboard' && UC.action === 'index'){\n UC.utils.checklistSuccessCallback('btnOpenLanguagesModal');\n } else {\n this.saveCallback(response);\n };\n this.$el.modal('hide');\n }.bind(this));\n\n }\n },\n\n addLanguage: function(e) {\n e.preventDefault();\n\n var html = this.$('#language-proficiency-template').html();\n var new_id = new Date().getTime();\n var regexp = new RegExp('new_Language', 'g');\n var $row = $(html.replace(regexp, new_id));\n\n $row.find('.controls.col-sm-8').removeClass('col-sm-8').addClass('col-sm-12');\n // TODO: find a way to add error message div by passing flag into simple form\n $row.find('.form-group .controls').append(\"
    \")\n this.$('.language-proficiencies').append($row);\n },\n\n removeLanguage: function(e) {\n e.preventDefault();\n $(e.target).closest('.language-row').remove();\n },\n\n validateLanguages: function() {\n this.$('.has-error').removeClass('has-error');\n this.data = { LanguageProficiencies: [] };\n\n var errors = [];\n var $rows = this.$('.language-row');\n\n if ($rows.length === 0) {\n UC.utils.showNotification('Must add at least one language', UC.constants.results.failure);\n return false\n } else {\n var that = this;\n $rows.each(function() {\n var $this = $(this);\n var $language = $this.find('.attorney_user_LanguageProficiencies_Language select.select');\n var language = $language.val();\n var $level = $this.find('.attorney_user_LanguageProficiencies_Level select.select');\n var level = $level.val();\n\n if (language === '') {\n errors.push({ element: $language, text: 'Language is required' });\n } else {\n for (var i = 0; i < that.data.LanguageProficiencies.length; i++) {\n var current = that.data.LanguageProficiencies[i];\n if (current.Language === language) {\n errors.push({ element: $language, text: 'Duplicate language' });\n }\n }\n }\n\n if (level === '') {\n errors.push({element: $level, text: 'Level is required'});\n }\n\n var source = UC.controller === 'dashboard' ? 'checklist' : 'attorney_profile';\n that.data.LanguageProficiencies.push({ Language: language, Level: level, Source: source, Added: new Date() });\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: \"form-group\" });\n return false\n } else {\n return true\n }\n }\n });\n}();\n","!function() {\n UC.modals.EditMainAttorneyProfileDetails = Backbone.View.extend({\n el: '#mdlEditMain',\n\n events: {\n 'change .barType': 'updateBarType',\n 'click .js-lnkRemoveBarCert': 'removeBarCert',\n 'click #lnkAddBarCert': 'addBarCert',\n 'click #btnSaveMain': 'saveModalForm',\n },\n\n initialize: function() {\n this.datepickerOptions = {\n dateFormat: 'mm/dd/yy',\n changeMonth: true,\n changeYear: true,\n yearRange: \"1940:+nn\",\n maxDate: \"0\"\n };\n this.$btnLoader = this.$el.find('#btnSaveMain').buttonLoader();\n this.$txtTagline = this.$el.find('#txtTagline');\n this.$txtServicesRate = this.$el.find('#txtServicesRate');\n this.$selHasInsurance = this.$el.find('#selHasInsurance');\n this.$txtLawSchool = this.$el.find('#txtLawSchool');\n this.$tblBarCerts = this.$el.find('#tblBarCerts');\n\n this.storeInitialValues();\n\n this.$tblBarCerts.find('.glyphicon.glyphicon-question-sign').tooltip();\n this.$selHasInsurance.select2({width: '100%'});\n this.showBarType($('#barCertTemplate div.bar-row'));\n\n this.$el.find(\"select[name='set_law_school']\").superSmartSearch({\n url: '/schools/smart_search',\n width: '100%',\n allowClear: true,\n tags: true,\n modal: this.$el\n });\n },\n\n storeInitialValues: function() {\n const tagLine = this.$txtTagline.val();\n this.initialData = {\n tagLine: tagLine ? tagLine.trim() : null,\n lawSchool: this.$txtLawSchool.val(),\n servicesRate: this.$txtServicesRate.val(),\n haveInsurance: this.$selHasInsurance.val(),\n barCerts: this.collectBarCerts()\n };\n },\n\n openModal: function(e) {\n if (e) e.preventDefault();\n\n UC.utils.clearValidationErrors('has-error', this.$el);\n\n this.rowId = UC.constants.bars_count || 0;\n\n this.$txtTagline.val(this.initialData.tagLine);\n this.$txtServicesRate.val(this.initialData.servicesRate);\n this.$selHasInsurance.val(this.initialData.haveInsurance).trigger('change');\n this.$txtLawSchool.val(this.initialData.lawSchool).trigger('change');\n this.$tblBarCerts.find('.bar-row').remove();\n\n if (this.initialData.barCerts.length == 0) {\n this.addBarCert();\n } else {\n _.each(this.initialData.barCerts, function(barCert) {\n this.addBarCert(null, barCert);\n }.bind(this));\n }\n\n this.$el.modal({ backdrop: 'static' });\n },\n\n removeBarCert: function(e) {\n e.preventDefault();\n\n $(e.currentTarget).parents('.bar-row').eq(0).remove();\n },\n\n updateBarType: function(e) {\n this.showBarType($(e.target).closest('.bar-row'));\n },\n\n showBarType: function($row) {\n var barCert = $row.attr('barCert'),\n selBarType = $row.find(\".barType[barCert='\" + barCert + \"']\"),\n txtBarCert = $row.find(\".barCert[barCert='\" + barCert + \"']\");\n\n var barType = selBarType.val() && selBarType.val().toLowerCase();\n\n if (barType == \"state\") {\n $row.find('.cert .barStateWrapper').show();\n $row.find('.cert .barCert').hide();\n }\n else if (barType == \"patent\") {\n $row.find('.cert .barStateWrapper').hide();\n $row.find('.cert .barCert').show();\n\n txtBarCert.val(\"Patent Bar\");\n txtBarCert.prop('disabled', true);\n }\n else if (barType == \"other\") {\n $row.find('.cert .barStateWrapper').hide();\n $row.find('.cert .barCert').show();\n\n txtBarCert.prop('disabled', false);\n }\n },\n\n barCertValue: function(raw) {\n return raw.charAt(0).toUpperCase() + raw.substring(1).toLowerCase();\n },\n\n addBarCert: function(e, values) {\n if (e) e.preventDefault();\n\n var newRow = this.createBarCertRow();\n\n if (values) {\n newRow.find('.barAdmittedDate').val(values.bar_admitted_date);\n newRow.find('.barNumber').val(values.bar_number);\n newRow.find('.barType').val(this.barCertValue(values.bar_type)).trigger('change');\n newRow.find('.barState').val(values.bar_state).trigger('change');\n newRow.find('.barCert').val(values.bar_cert_name).trigger('change');\n }\n\n this.$el.find('#tblBarCertsFooter').before(newRow);\n this.$el.find(\".barType[barCert='\" + this.rowId + \"']\").change(this.updateBarType.bind(this));\n this.$el.find(\".js-lnkRemoveBarCert[barCert='\" + this.rowId + \"']\").click(this.removeBarCert.bind(this));\n\n newRow.find('.datepicker').datepicker(this.datepickerOptions);\n\n this.showBarType(newRow);\n\n this.rowId++;\n },\n\n createBarCertRow: function() {\n var template = $('#barCertTemplate div.bar-row').clone();\n\n template.attr('barCert', this.rowId);\n template.find('*').each( function(index, element) {\n if ($(element).attr('barCert') === 'temp') {\n $(element).attr('barCert', this.rowId);\n }\n }.bind(this));\n\n template.find('select').select2({width: '100%'});\n\n return template;\n },\n\n saveModalForm: function(e) {\n var data = {\n Tagline: this.$txtTagline.val().trim(),\n set_law_school: this.$txtLawSchool.val(),\n ServicesRate: this.$txtServicesRate.val(),\n HaveInsurance: this.$selHasInsurance.val(),\n BarCerts: this.collectBarCerts()\n };\n\n if (this.validateMain(data)) {\n this.$btnLoader.showLoader();\n UC.net.post(UC.constants.updateMainPath, data, this.onUpdateMain.bind(this)).\n always(function() {\n this.$btnLoader.hideLoader();\n }.bind(this));\n };\n },\n\n onUpdateMain: function(response) {\n this.storeInitialValues();\n\n if (UC.action === 'index' && UC.controller === 'dashboard') {\n UC.utils.checklistSuccessCallback('btnEditMain');\n } else {\n $('#mainContent').html(response.html);\n $('#stats').html(response.stats_html);\n };\n\n this.$el.modal('hide');\n },\n\n collectBarCerts: function() {\n var barCerts = [];\n\n this.$el.find(\"div.bar-row\").each(function () {\n var barCert = {}, $this = $(this);\n\n if ($this.attr('barcert') !== 'temp') {\n barCert.bar_type = $this.find(\".barType\").val().toLowerCase();\n barCert.bar_state = $this.find(\".barState\").val();\n barCert.bar_cert_name = $this.find(\".barCert\").val();\n barCert.bar_number = $this.find(\".barNumber\").val();\n barCert.bar_admitted_date = $this.find(\".barAdmittedDate\").val();\n barCert.element = $this;\n barCerts.push(barCert);\n }\n });\n return barCerts;\n },\n\n validateMain: function(data) {\n UC.utils.clearValidationErrors('has-error', this.$el);\n var errors = [];\n\n if (!data.set_law_school) {\n errors.push({\n element: this.$txtLawSchool,\n text: 'Law School is required.',\n className: 'form-group'\n })\n }\n\n if (!data.ServicesRate || data.ServicesRate <= 0) {\n errors.push({\n element: this.$txtServicesRate,\n text: \"Hourly Rate must be a number greater than 0\",\n className: 'form-group'\n });\n }\n\n if (!data.HaveInsurance) {\n errors.push({\n element: this.$selHasInsurance,\n text: 'Selection is required',\n className: 'form-group'\n });\n }\n\n if (data.BarCerts.length == 0) {\n errors.push({\n element: this.$el.find('#tblBarCertsFooter'),\n text: 'Please provide at least one bar',\n className: 'form-group'\n });\n }\n\n $(data.BarCerts).each(function(){\n if (!this.bar_number) {\n errors.push({\n text: 'Number required',\n element: this.element.find('.barNumber')\n });\n };\n\n if (this.bar_type == 'other' && this.bar_cert_name == '') {\n errors.push({\n text: 'Bar required',\n element: this.element.find('.barCert')\n });\n };\n\n var dateFormatted = moment(this.bar_admitted_date, UC.constants.momentDateFormats, true);\n if (!this.bar_admitted_date) {\n errors.push({\n text: 'Date required',\n element: this.element.find('.barAdmittedDate'),\n className: 'bar-input'\n });\n } else if (!dateFormatted.isValid()){\n errors.push({\n element: this.element.find('.barAdmittedDate'),\n text: \"(mm/dd/yyyy)\",\n className: 'bar-input'\n });\n } else if (moment().isBefore(dateFormatted)) {\n errors.push({\n element: this.element.find('.barAdmittedDate'),\n text: \"Future date\",\n className: 'bar-input'\n });\n };\n\n delete this.element\n });\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n }\n\n return true;\n }\n });\n}();\n","!function() {\n\n UC.modals.AttorneyProfileEditPastClients = Backbone.View.extend({\n\n id: 'modalEditPastClients',\n\n className: 'modal hide',\n\n events: {\n 'click #btnSaveEditPastClients': 'save',\n 'click #showEditPastClients': 'showEditPastClients',\n 'click .past-client-remove': 'remove'\n },\n\n elements: {\n 'pastClientsContent' : null\n },\n\n render: function() {\n\n UC.net.get(UC.constants.edit_past_clients_path, {}, function(result) {\n this.setElement(result);\n UC.utils.setSelectors(this.elements);\n this.delegateEvents();\n this.$el.find('#formEditPastClients').sortable({\n items: '.pf-past-client',\n axis: 'y',\n stop: this.setOrder.bind(this)\n });\n this.loader = this.$el.find('#btnSaveEditPastClients').buttonLoader();\n this.$el.modal();\n }.bind(this));\n },\n\n setOrder: function() {\n this.$el.find('.pf-past-client').each(function(index) {\n $(this).find('.order').val(index);\n });\n },\n\n save: function(e) {\n e.preventDefault();\n\n var data = this.$el.find('#formEditPastClients').serializeJSON();\n\n data['id'] = UC.user.id;\n\n this.loader.showLoader();\n\n UC.net.put(UC.constants.update_past_clients_path, data, function(html) {\n this.elements.pastClientsContent.html(html);\n this.$el.modal('hide');\n $('.past-client').tooltip({ container: 'body' });\n }.bind(this)).always(function() {\n this.loader.hideLoader();\n }.bind(this));\n },\n\n remove: function(e) {\n e.preventDefault();\n var clientId = $(e.target).closest('.pf-past-client').data('id'),\n result = confirm(\"Are you sure you want to delete this Past Client?\");\n\n if (result) {\n var data = { clientId: clientId, id: UC.user.id };\n\n UC.net.post(UC.constants.delete_past_client_path, data, function(html) {\n this.elements.pastClientsContent.html(html);\n $('.past-client').tooltip({ container: 'body' });\n }.bind(this));\n\n $(e.target).closest('.pf-past-client').remove();\n }\n },\n\n showEditPastClients: function(e) {\n e.preventDefault();\n this.$el.modal('hide');\n $('#btnAddPastClients').click();\n }\n });\n}();\n","!function() {\n UC.modals.EditPracticeAreas = Backbone.View.extend({\n\n el: '#mdlEditPracticeAreas',\n\n events: {\n 'click #btnSavePracticeAreas': 'savePracticeAreas',\n 'click #btnCancelPracticeAreas': 'cancelPracticeAreas',\n 'click #aAllLegalSubjects': 'clickAllLegalSubjects',\n 'click #aNoneLegalSubjects': 'clickNoLegalSubjects'\n },\n\n initialize: function(opts) {\n if (opts){\n this.initPracticeAreaPopovers = opts.initPracticeAreaPopovers;\n this.savePracticeAreasCallback = opts.savePracticeAreas;\n this.cancelPracticeAreasCallback = opts.cancelPracticeAreas;\n }\n this.superFancyCatLegalSubjects = $(\"[name='LegalSubjectIds[]']\").superFancyCat();\n },\n\n openModal: function() {\n this.$el.modal({ backdrop: 'static' });\n },\n\n cancelPracticeAreas: function(){\n this.$el.modal('hide');\n if (this.cancelPracticeAreasCallback) {\n this.cancelPracticeAreasCallback(this.superFancyCatLegalSubjects);\n }\n },\n\n clickAllLegalSubjects: function(e) {\n e.preventDefault();\n this.superFancyCatLegalSubjects.toggleAll();\n },\n\n clickNoLegalSubjects: function(e) {\n e.preventDefault();\n this.superFancyCatLegalSubjects.toggleNone();\n },\n\n savePracticeAreas: function() {\n if (this.savePracticeAreasCallback) {\n this.savePracticeAreasCallback();\n } else {\n var data = {LegalSubjectIds: $(\"[name='LegalSubjectIds[]']\").val()};\n UC.net.post(UC.constants.update_practice_areas_path, data, this.onSavePracticeAreas.bind(this))\n }\n },\n\n onSavePracticeAreas: function(response) {\n this.$el.modal('hide');\n\n if (UC.action === 'index'){\n UC.utils.checklistSuccessCallback('btnEditPracticeAreas');\n\n if (response.currentLegalGroups && response.currentLegalGroups.length > 0) {\n new UC.modals.AttorneyTopLegalGroups({\n allLegalGroups: response.allLegalGroups,\n attorneyLegalGroups: response.currentLegalGroups,\n attorneyTopLegalGroups: response.topLegalGroups,\n afterUpdateCallback: function() {\n $('#top-legal-groups-modal').modal('hide');\n }\n });\n }\n } else {\n $('#practiceAreasContent').html(response.html);\n this.initPracticeAreaPopovers();\n\n if (response.currentLegalGroups && response.currentLegalGroups.length > 0) {\n new UC.modals.AttorneyTopLegalGroups({\n allLegalGroups: response.allLegalGroups,\n attorneyLegalGroups: response.currentLegalGroups,\n attorneyTopLegalGroups: response.topLegalGroups,\n afterUpdateCallback: function(res) {\n $('#practiceAreasContent').html(res.html);\n $('#top-legal-groups-modal').modal('hide');\n this.initPracticeAreaPopovers();\n }.bind(this)\n });\n }\n }\n }\n });\n}();\n","!function() {\n UC.modals.EditWorkHistory = Backbone.View.extend({\n\n el: '#mdlEditWorkHistory',\n\n elements: {\n modalWorkHistory: null,\n btnAddNewWorkHistory: null\n },\n\n initialize: function(opts) {\n this.$el.modal = new UC.modals.AttorneyProfileWorkHistoriesForm({\n updateWorkHistoryPagination: opts.updateWorkHistoryPagination\n });\n },\n\n openModal: function(e) {\n e.preventDefault();\n this.$el.modal.render();\n }\n });\n}();\n","UC.modals.AttorneyProfileUpdatePhoneNumber = Backbone.View.extend({\n\n el: '#mdlUpdatePhoneNumber',\n\n events: { 'submit #js-userPhoneNumberForm' : 'save' },\n\n elements: {\n 'btnSavePhoneNumber' : null,\n 'js-userPhoneNumber' : null\n },\n\n render: function() {\n UC.utils.setSelectors(this.elements);\n\n this.elements.btnLoader = this.elements.btnSavePhoneNumber.buttonLoader();\n this.$el.modal({ backdrop: 'static' });\n },\n\n handleSuccessfulUpdate: function(response) {\n UC.utils.clearValidationErrors('form-group');\n UC.utils.checklistSuccessCallback('btnUpdatePhoneNumber');\n\n this.$el.modal('hide');\n },\n\n handleFailedUpdate: function(xhr) {\n var error = {\n element: this.elements['js-userPhoneNumber'],\n text: xhr.responseJSON['message']\n }\n\n xhr.handled = true;\n\n UC.utils.showValidationErrors([error], { className: \"form-group\" });\n },\n\n updatePhoneNumber: function(data) {\n UC.net.post(\n UC.constants.update_org_info_path, data, this.handleSuccessfulUpdate.bind(this)\n ).fail(\n this.handleFailedUpdate.bind(this)\n ).always(\n function() { this.elements.btnLoader.hideLoader(); }.bind(this)\n );\n },\n\n save: function(e) {\n e.preventDefault();\n\n this.elements.btnLoader.showLoader();\n var data = { info : { Phone : this.elements['js-userPhoneNumber'].val() } }\n this.updatePhoneNumber(data);\n }\n});\n","!function() {\n UC.modals.AttorneyProfileWorkHistoriesForm = Backbone.View.extend({\n el: '#mdlEditWorkHistory',\n\n elements: {\n 'btnAddNewWorkHistory': null,\n 'lblNoWorkHistory': null,\n 'lnkAddNew': null,\n 'template': null,\n 'addNewContainer': null,\n 'workHistoryContainer' : null\n },\n\n events: {\n 'click #lnkAddNew' : 'showNewForm',\n 'click .js-delete' : 'destroy',\n 'click .js-edit' : 'showForm',\n 'click .js-save-work-history' : 'save',\n 'click .js-cancel-work-history' : 'cancel'\n },\n\n initialize: function(opts) {\n this.updateWorkHistoryPagination = opts.updateWorkHistoryPagination;\n },\n\n changedIds: {},\n\n render: function() {\n UC.utils.setSelectors(this.elements);\n this.$el.modal({ backdrop: 'static' });\n },\n\n showForm: function(e) {\n e.preventDefault();\n if (!this.editingForm) {\n var $history = $(e.currentTarget).closest('.work-history'),\n id = $history.data('id'),\n $form = $history.find('form');\n\n this.editingForm = $form.clone();\n this.initForm($form);\n $form.change(function() { this.changedIds[id] = true }.bind(this));\n }\n },\n\n showNewForm: function(e) {\n e.preventDefault();\n if (this.$el.find('#form_new').length === 0) {\n var $template = this.elements.template,\n $form = $template.clone();\n\n $form.attr('id', 'form_new');\n this.elements.addNewContainer.append($form);\n this.editingForm = true;\n this.elements.lblNoWorkHistory.addClass('hidden');\n this.initForm($form);\n }\n },\n\n showFormControls: function() {\n this.$el.find('.btn-modal-control').addClass('hidden');\n this.$el.find('.btn-form-control').removeClass('hidden');\n },\n\n hideFormControls: function() {\n delete this.editingForm;\n this.activeForm = null;\n this.$el.find('.btn-form-control').addClass('hidden');\n this.$el.find('.btn-modal-control').removeClass('hidden');\n\n if (!this.elements.workHistoryContainer.find('*').length) {\n this.elements.lblNoWorkHistory.removeClass('hidden');\n }\n },\n\n initForm: function($form) {\n $form.removeClass('hidden');\n $form.find('.datepicker').datepicker({\n dateFormat: 'mm/dd/yy',\n changeMonth: true,\n changeYear: true,\n yearRange: \"1940:+nn\",\n maxDate: \"0\"\n });\n $form.find(\"textarea[name='Description']\").charCounter({max: 400});\n $form.find(\"textarea[name='Description']\").trigger('countchars');\n\n $form.find('.icon-calendar').click(function(e) {\n $(e.target).closest('.input-with-icon-right').find('input').focus();\n });\n\n $form.find(\"select[name='set_company']\").superSmartSearch({\n url: '/companies/smart_search',\n tags: true,\n modal: $form\n });\n\n this.setEndDateEnabled(null, $form);\n $form.find(\"input[name='PresentlyWorkAtCompany']\").click(this.setEndDateEnabled.bind(this));\n\n this.activeForm = $form;\n this.showFormControls();\n },\n\n setEndDateEnabled: function(e, $form) {\n if (e) $form = $(e.target).closest('form');\n var checked = $form.find(\"input[name='PresentlyWorkAtCompany']\")[0].checked,\n input = $form.find(\"input[name='EndDate']\");\n\n if (checked) {\n input.attr('disabled', 'disabled');\n input.val(null);\n } else {\n input.removeAttr('disabled');\n }\n },\n\n cancel: function(e) {\n e.preventDefault();\n var $form = this.activeForm;\n\n if ($form.attr('id') === 'form_new') {\n $form.remove();\n } else {\n var $history = $form.closest('.work-history'),\n id = $history.data('id');\n\n if (this.changedIds[id]) {\n $form.replaceWith(this.editingForm);\n } else {\n $form.addClass('hidden');\n }\n }\n\n this.hideFormControls();\n },\n\n destroy: function(e) {\n e.preventDefault();\n\n if (confirm('Are you sure you want to delete this Work History item permanently?')) {\n var $history = $(e.target).closest('.work-history'),\n id = $history.data('id'),\n data = {\n refresh_profile: UC.controller === 'attorney_profile'\n };\n\n UC.net.destroy('/work_histories/{0}'.format(id), data, function(res) {\n UC.utils.showNotification(res.message, UC.constants.results.success);\n $history.remove();\n if (this.$el.find('.work-history').length === 0) {\n this.elements.lblNoWorkHistory.removeClass('hidden');\n\n if (UC.controller === 'dashboard' && UC.action === 'index') {\n var $item = $('#btnAddNewWorkHistory').closest('.js-checklist-item'),\n $icon = $item.find('.js-checklist-item-icon')\n\n $icon.removeClass('text-success');\n $icon.addClass('text-grey-15');\n }\n }\n\n if (data.refresh_profile && $('#workHistoryContent').length > 0) {\n $('#workHistoryContent').html(res.profile);\n this.updateWorkHistoryPagination();\n }\n }.bind(this));\n }\n },\n\n save: function(e) {\n e.preventDefault();\n var $form = this.activeForm,\n formData = $form.serializeJSON(),\n id = $form.attr('id').replace('form_', '');\n\n if (id !== 'new' && !this.changedIds[id]) {\n $form.addClass('hidden');\n delete this.editingForm;\n return;\n }\n\n var data = {\n work_history: formData,\n refresh_profile: UC.controller === 'attorney_profile'\n };\n\n if (this.validate(data.work_history, $form)) {\n\n if (id === 'new') {\n UC.net.post('/work_histories', data, function(res){\n this.elements.workHistoryContainer.prepend(res.row);\n this.elements.lblNoWorkHistory.addClass('hidden');\n $form.remove();\n this.orderItems();\n\n if (data.refresh_profile && $('#workHistoryContent').length > 0) {\n $('#workHistoryContent').html(res.profile);\n this.updateWorkHistoryPagination();\n } else if (UC.controller === 'dashboard' && UC.action === 'index'){\n UC.utils.checklistSuccessCallback('btnAddNewWorkHistory');\n }\n\n this.hideFormControls();\n }.bind(this));\n\n } else {\n\n UC.net.put('/work_histories/{0}'.format(id), data, function(res){\n var $html = $(res.row),\n id = $html.data('id'),\n $existing = this.$el.find(\"[data-id='\" + id + \"']\");\n\n $existing.replaceWith($html);\n\n if (data.refresh_profile && $('#workHistoryContent').length > 0) {\n $('#workHistoryContent').html(res.profile);\n this.updateWorkHistoryPagination();\n } else if (UC.controller === 'dashboard' && UC.action === 'index'){\n UC.utils.checklistSuccessCallback('btnAddNewWorkHistory');\n }\n\n this.orderItems();\n this.hideFormControls();\n }.bind(this));\n\n }\n }\n },\n\n orderItems: function() {\n var $wrapper = this.elements.workHistoryContainer;\n $wrapper.find('.work-history').sort(function(a, b) {\n return b.getAttribute('data-unixtime') - a.getAttribute('data-unixtime');\n }).appendTo($wrapper);\n },\n\n validate: function(data, $form) {\n $form.find('.has-error').removeClass('has-error');\n var errors = [];\n\n data.Company = data.set_company.trim();\n data.Position = data.Position.trim();\n data.Description = data.Description.trim();\n\n if (data.Company === null || data.Company === \"\") {\n errors.push({\n element: $form.find(\"input[name='set_company']\"),\n text: \"Company can't be blank\"\n });\n }\n\n if (data.Position === null || data.Position === \"\") {\n errors.push({\n element: $form.find(\"input[name='Position']\"),\n text: \"Position can't be blank\"\n });\n }\n\n if (data.Description === null || data.Description === \"\") {\n errors.push({\n element: $form.find(\"textarea[name='Description']\"),\n text: \"Description can't be blank\"\n });\n }\n\n if (data.StartDate && data.StartDate != '') {\n var start_date = moment(data.StartDate, UC.constants.momentDateFormats, true);\n\n if (start_date.isValid()) {\n data.StartDate = start_date.format();\n } else {\n errors.push({\n element: $form.find(\"input[name='StartDate']\"),\n text: \"Date is invalid\"\n });\n }\n }\n\n if (data.EndDate && data.EndDate != '') {\n var end_date = moment(data.EndDate, UC.constants.momentDateFormats, true);\n\n if (end_date.isValid()) {\n data.EndDate = end_date.format();\n } else {\n errors.push({\n element: $form.find(\"input[name='EndDate']\"),\n text: \"Date is invalid\"\n });\n }\n } else {\n data.EndDate = null;\n }\n\n if (data.StartDate && !data.EndDate && data.PresentlyWorkAtCompany != 'on') {\n errors.push({\n element: $form.find(\"input[name='EndDate']\"),\n text: \"You must choose an end date or select that you currently work at this position\"\n });\n }\n\n if (!data.StartDate && (data.EndDate || data.PresentlyWorkAtCompany)) {\n errors.push({\n element: $form.find(\"input[name='EndDate']\"),\n text: \"You must select a start date if an end date is chosen\"\n });\n\n }\n\n delete data.PresentlyWorkAtCompany;\n UC.utils.showValidationErrors(errors, {\n className: 'form-group'\n });\n\n return errors.length === 0;\n }\n });\n}();\n","!function() {\n\n UC.modals.JobContactMessageModal= Backbone.View.extend({\n events: {\n 'click #send-job-contact-message' : 'sendMessage'\n },\n\n initialize: function(args) {\n this.recipientId = args.recipientId;\n this.$el.modal({show: false});\n this.$template = this.$el.clone();\n this.sendMessageBtnLoader = this.$el.find('#send-job-contact-message').buttonLoader();\n },\n\n open: function() {\n this.$el.modal('show');\n this.$el.on('hidden.bs.modal', this.resetModal.bind(this));\n },\n\n resetModal: function() {\n this.$el = this.$template.clone();\n this.$el.modal({show: false});\n this.delegateEvents();\n },\n\n sendMessage: function() {\n this.sendMessageBtnLoader.showLoader();\n this.clearErrors();\n\n if(this.validate()) {\n UC.net.post('/messages', {\n recipient: this.recipientId,\n messageInput: this.$el.find('#message-text').val(),\n job: this.$el.find('#job-id').val(),\n source: 'attorney_client_profile'\n })\n .done(this.messageSent.bind(this))\n .fail(function() {\n this.sendMessageBtnLoader.hideLoader();\n }.bind);\n } else {\n this.sendMessageBtnLoader.hideLoader();\n }\n\n },\n\n validate: function() {\n var valid = true;\n var $jobListGroup;\n var $messageTextGroup;\n var messageText;\n\n if (!this.getJobId()) {\n valid = false;\n $jobListGroup = this.$el.find('#job-list-group');\n\n $jobListGroup.find('.error-message').text(\"A job must be selected\");\n $jobListGroup.addClass('has-error');\n }\n\n $messageTextGroup = this.$el.find('#message-text-group');\n messageText = $messageTextGroup.find('#message-text').val();\n\n\n if (!$.trim(messageText)) {\n valid = false;\n $messageTextGroup.find('.error-message').text('The message may not be blank');\n $messageTextGroup.addClass('has-error');\n }\n\n return valid;\n },\n\n clearErrors: function() {\n $('.form-group').removeClass('has-error');\n },\n\n getJobId: function() {\n return this.$el.find('#job-id').val();\n },\n\n messageSent: function() {\n this.$el.modal('hide');\n }\n\n });\n\n}();\n","UC.modals.QuoteCalculatorModal= Backbone.View.extend({\n\n el: '#modalQuoteCalculator',\n\n events: {\n 'change #js-qcUserId': 'fetchAttorneyClient',\n 'change #qcServiceFees': 'validateServiceFees',\n 'change #qcFilingFees': 'validateFilingFees',\n 'change #qcServiceFeesClient': 'validateServiceFeesClient',\n 'change #qcFilingFeesClient': 'validateFilingFeesClient',\n 'change [name=\"proposal[PaymentCount]\"]': 'updatePaymentTerms',\n 'change .fees': 'calculateProposalFees',\n 'change .js-client-fees': 'calculateProposalFeesClient',\n 'click #tabHourlyFee': 'showHourlyFee',\n 'click #tabFixedFee': 'showFixedFee'\n },\n\n initialize: function(args) {\n this.$el.modal({show: false});\n this.$template = this.$el.clone();\n\n this.$form = this.$el.find('#frmAddProject');\n this.initHelp();\n this.$('.fees').currencyInput();\n this.$el.find('#UserId').select2({ width: '100%' });\n this.$el.find('#UserId').trigger('change');\n\n $('[data-toggle=\"tooltip\"]').tooltip();\n\n this.client_loaded = false;\n this.$el.find(\"#proposals-form-quote\").css('visibility', 'hidden');\n },\n\n open: function() {\n this.$el.modal('show');\n this.$el.on('hidden.bs.modal', this.resetModal.bind(this));\n\n var kissData = {\n userId: UC.user.id\n };\n\n UC.utils.recordKissEvent('quote_calculator_opened', kissData);\n this.$el.find('#UserId').trigger('change');\n this.$el.find(\"#proposals-form-quote\").css('visibility', 'hidden');\n },\n\n resetModal: function() {\n this.$el = this.$template.clone();\n this.$el.modal({show: false});\n this.delegateEvents();\n },\n\n // Form specific methods\n\n fetchAttorneyClient: function(e) {\n var $selected = $(e.currentTarget).find('option:selected');\n var client_id = $selected.data('attorney-client-id');\n\n if (client_id) {\n var path = '/clients/{0}.json'.format(client_id);\n this.client_loaded = true;\n this.$el.find(\"#proposals-form-quote\").css('visibility', 'visible');\n\n UC.net.get(path, function(attorney_client) {\n this.onFetchAttorneyClient(attorney_client);\n }.bind(this));\n } else {\n this.client_loaded = false;\n this.$el.find(\"#proposals-form-quote\").css('visibility', 'hidden');\n }\n },\n\n onFetchAttorneyClient: function(attorney_client) {\n this.attorney_client = attorney_client;\n\n this.$('#forUserTitle').text(\"for \" + this.attorney_client.FirstName + \" \" + this.attorney_client.LastName);\n this.$('#hourlyClientName').text(this.attorney_client.FirstName + \" \" + this.attorney_client.LastName);\n this.hourly_rate = 0;\n if (this.attorney_client.HourlyRate) {\n this.hourly_rate = this.attorney_client.HourlyRate;\n } else if (this.attorney_client.latest_hourly_rate) {\n this.hourly_rate = this.attorney_client.latest_hourly_rate;\n } else {\n this.hourly_rate = 0;\n }\n this.$('#qcServiceFees').val(UC.utils.formatCurrency(0));\n this.$('#qcFilingFees').val(UC.utils.formatCurrency(0));\n this.$('#qcEstimatedHours').val(0);\n\n this.payment_profile = this.attorney_client.payment_profile;\n this.transaction_type = this.attorney_client.transaction_type;\n this.client_id = this.attorney_client.UserId;\n this.has_invoices = this.attorney_client.has_invoices;\n this.percentFee = (this.payment_profile.baked_service_fee / 100) + 1;\n\n this.showFixedFee();\n\n var kissData = {\n attorneyId: UC.user.id,\n clientId: this.attorney_client.UserId\n };\n\n UC.utils.recordKissEvent('quote_calculator_attorney_client_fetch', kissData);\n },\n\n /// Form Quote\n\n toggleBakedInFee: function() {\n var hasBakedFee = !!this.payment_profile.baked_service_fee;\n\n // show disclaimer on \"Your Fees\" only for non-baked attorneys\n this.$('#your-fees-disclaimer').toggleClass('hidden', hasBakedFee);\n this.$('#your-fees-no-disclaimer').toggleClass('hidden', !hasBakedFee);\n },\n\n initHelp: function() {\n var $serviceFees = $('#qcServiceFees');\n var $filingFees = $('#qcFilingFees');\n var $body = $('body');\n\n $serviceFees.popover({\n placement: 'top',\n content: 'Not sure how much to bid? Click here for help.',\n trigger: 'manual',\n html: true\n });\n\n $filingFees.popover({\n placement: 'top',\n content: 'Not sure how much to bid? Click here for help.',\n trigger: 'manual',\n html: true\n });\n\n // set data attribute on element to close on next click after it has been shown\n $serviceFees.on('shown.bs.popover', function() {\n $serviceFees.data('closePopoverOnClick', true);\n });\n\n $filingFees.on('shown.bs.popover', function() {\n $filingFees.data('closePopoverOnClick', true);\n });\n\n // this logic is to close the popover when clicking outside of the popover div. we want to close it on the second 'click'\n // in most cases since it is opened by a click (triggering a change event) which is why we set a data attribute of\n // closePopoverOnClick\n $body.on('click', function(e) {\n var $target = $(e.target);\n\n if ($target.parents('.popover.in').length === 0 && $serviceFees.data('closePopoverOnClick')) {\n $serviceFees.popover('hide');\n }\n });\n\n new UC.components.FeesPopover({el: this.$el});\n },\n\n updatePaymentTerms: function(e) {\n var termValue = $('[name=\"proposal[PaymentCount]\"]:checked').val();\n\n this.paymentCount = null;\n this.$('#panel-upfront').addClass('hidden');\n\n if (parseInt(termValue, 10) === 2) {\n this.$('#panel-upfront').removeClass('hidden');\n this.paymentCount = 2;\n } else if (parseInt(termValue, 10) === 1) {\n this.paymentCount = 1;\n }\n\n this.toggleBakedInFee();\n this.calculateProposalFees();\n },\n\n setBidType: function(bidType) {\n var $proposalType = this.$('#BidType');\n $proposalType.val(bidType);\n },\n\n calculateProposalFees: function() {\n var $serviceFees = this.$('#qcServiceFees');\n var $estimatedHours = this.$('#qcEstimatedHours');\n var $filingFees = this.$('#qcFilingFees');\n var $proposalType = this.$('#BidType');\n\n var serviceFees = UC.utils.currencyToFloat($serviceFees.val());\n var estimatedHours = UC.utils.currencyToFloat($estimatedHours.val());\n var filingFees = UC.utils.currencyToFloat($filingFees.val());\n var bidType = parseInt($proposalType.val(), 10);\n\n if (serviceFees < 0) $serviceFees.val(0);\n if (estimatedHours < 0) $estimatedHours.val(0);\n if (filingFees <= 0) {\n $filingFees.val(UC.utils.formatCurrency(filingFees));\n }\n\n // add any client \"baked-in\" fees to the total and show proper payment terms\n this.handleClientFees(bidType, serviceFees, estimatedHours, filingFees);\n },\n\n calculateProposalFeesClient: function() {\n var $serviceFeesClient = this.$('#qcServiceFeesClient');\n var $estimatedHoursClient = this.$('#qcEstimatedHoursClient');\n var $filingFeesClient = this.$('#qcFilingFeesClient');\n var $proposalType = this.$('#BidType');\n\n var serviceFeesClient = UC.utils.currencyToFloat($serviceFeesClient.val());\n var estimatedHoursClient = UC.utils.currencyToFloat($estimatedHoursClient.val());\n var filingFeesClient = UC.utils.currencyToFloat($filingFeesClient.val());\n var bidType = parseInt($proposalType.val(), 10);\n\n if (serviceFeesClient < 0) $serviceFeesClient.val(0);\n if (estimatedHoursClient < 0) $estimatedHoursClient.val(0);\n if (filingFeesClient <= 0) {\n $filingFeesClient.val(UC.utils.formatCurrency(filingFeesClient));\n }\n\n // add any client \"baked-in\" fees to the total and show proper payment terms\n this.handleAttorneyFees({bidType: bidType, serviceFees: serviceFeesClient, estimatedHours: estimatedHoursClient, filingFees: filingFeesClient});\n },\n\n calculateClientHourly: function() {\n // add the baked in fee to the base service fees\n return this.hourly_rate * this.percentFee;\n },\n\n handleClientFees: function(bidType, serviceFees, estimatedHours, filingFees) {\n var platformFees = 0.0;\n var totalAttorneyServiceFee = 0.0;\n\n if (bidType === UC.constants.BidType.HourlyRate) {\n totalAttorneyServiceFee = serviceFees * estimatedHours;\n } else {\n totalAttorneyServiceFee = serviceFees;\n }\n\n if (this.percentFee > 0) {\n\n // these are currently always the same as the attorney\n this.$('#qcEstimatedHoursClient').val(UC.utils.formatCurrency(estimatedHours));\n this.$('#qcFilingFeesClient').val(UC.utils.formatCurrency(filingFees));\n\n // add the baked in fee to the base service fees\n var clientServiceFees = serviceFees * this.percentFee;\n\n // add the baked in fee to the total attorney service fees\n var totalClientServiceFees = totalAttorneyServiceFee * this.percentFee;\n\n var amountClientServiceText = UC.utils.formatCurrency(clientServiceFees);\n this.$('#qcServiceFeesClient').val(amountClientServiceText);\n\n if (this.$('#qcPlatformFee').length) {\n platformFees = this.calculatePlatformFees(totalClientServiceFees, filingFees);\n var amountPlatformText = UC.utils.formatCurrency(platformFees, true);\n this.$('#qcPlatformFee').text(amountPlatformText);\n }\n\n var amountClientText = UC.utils.formatCurrency(totalClientServiceFees + filingFees + platformFees, true);\n this.$('#quoteTotalFeesClient').text(amountClientText);\n } else {\n this.$('#qcPlatformFee').text(UC.utils.formatCurrency(0, true));\n }\n\n var totalText = UC.utils.formatCurrency(totalAttorneyServiceFee + filingFees, true);\n this.$('#quoteTotalFees').text(totalText);\n\n // this should include any extra client fees from above\n if(platformFees > 0) {\n this.updateUpfrontPaymentPlatform(totalClientServiceFees, filingFees, platformFees);\n } else {\n this.updateUpfrontPaymentTerms(totalClientServiceFees, filingFees);\n }\n },\n\n handleAttorneyFees: function(options) {\n var bidType = options['bidType'];\n var serviceFees = options['serviceFees'];\n var estimatedHours = options['estimatedHours'];\n var filingFees = options['filingFees'];\n var platformFees = 0.0;\n var totalClientServiceFee = 0.0;\n\n if (bidType === UC.constants.BidType.HourlyRate) {\n totalClientServiceFee = serviceFees * estimatedHours;\n } else {\n totalClientServiceFee = serviceFees;\n }\n\n if (this.percentFee > 0) {\n\n // these are currently always the same as the client\n this.$('#qcEstimatedHours').val(UC.utils.formatCurrency(estimatedHours));\n this.$('#qcFilingFees').val(UC.utils.formatCurrency(filingFees));\n\n // divide the baked in fee to the client's service fees\n var attorneyServiceFees = serviceFees / this.percentFee;\n\n // divide the baked in fee to the total client service fees\n var totalAttorneyServiceFees = totalClientServiceFee / this.percentFee;\n\n var amountAttorneyServiceText = UC.utils.formatCurrency(attorneyServiceFees);\n this.$('#qcServiceFees').val(amountAttorneyServiceText);\n\n if (this.$('#qcPlatformFee').length) {\n platformFees = this.calculatePlatformFees(totalClientServiceFee, filingFees);\n var amountPlatformText = UC.utils.formatCurrency(platformFees, true);\n this.$('#qcPlatformFee').text(amountPlatformText);\n }\n\n var amountClientText = UC.utils.formatCurrency(totalClientServiceFee + filingFees + platformFees, true);\n this.$('#quoteTotalFeesClient').text(amountClientText);\n } else {\n this.$('#qcPlatformFee').text(UC.utils.formatCurrency(0, true));\n }\n\n var totalText = UC.utils.formatCurrency(totalAttorneyServiceFees + filingFees, true);\n this.$('#quoteTotalFees').text(totalText);\n\n // this should include any extra client fees from above\n if(platformFees > 0) {\n this.updateUpfrontPaymentPlatform(totalClientServiceFee, filingFees, platformFees);\n } else {\n this.updateUpfrontPaymentTerms(totalClientServiceFee, filingFees);\n }\n },\n\n calculatePlatformFees: function(totalClientServiceFees, filingFees) {\n var serviceRake = this.payment_profile.platform_service_fee_percent / 100;\n var filingRake = this.payment_profile.platform_filing_fee_percent / 100;\n var platformServiceFee = totalClientServiceFees * serviceRake;\n var platformFilingFee = filingFees * filingRake;\n return platformFilingFee + platformServiceFee;\n },\n\n updateUpfrontPaymentTerms: function(totalServiceFees, filingFees) {\n var $optionFiling = this.$('#optionFiling');\n\n if (filingFees > 0) {\n $optionFiling.removeAttr('disabled');\n $optionFiling.text('All Filing Fees ({0})'.format(UC.utils.formatCurrency(filingFees, true)));\n } else {\n $optionFiling.attr('disabled', 'disabled');\n $optionFiling.text('All Filing Fees');\n }\n\n this.$('#option75').text('75% of Service Fees ({0})'.format(UC.utils.formatCurrency(totalServiceFees * 0.75, true)));\n this.$('#option50').text('50% of Service Fees ({0})'.format(UC.utils.formatCurrency(totalServiceFees * 0.50, true)));\n this.$('#option25').text('25% of Service Fees ({0})'.format(UC.utils.formatCurrency(totalServiceFees * 0.25, true)));\n },\n\n updateUpfrontPaymentPlatform: function(totalServiceFees, filingFees, platformFees) {\n var upfrontPercentage = [75, 50, 25, 10];\n var $optionFiling = this.$('#optionFiling');\n\n if (filingFees > 0) {\n $optionFiling.removeAttr('disabled');\n } else {\n $optionFiling.attr('disabled', 'disabled');\n }\n\n $optionFiling.text('All Filing Fees');\n upfrontPercentage.map(function(percentage) {\n var totalUpfront = parseFloat((totalServiceFees + platformFees).toFixed(2)) * percentage / 100;\n return (\n this.$('#option' + percentage).text(\n '{0}% of Service + Platform Fees ({1})'.format(\n percentage,\n UC.utils.formatCurrency(totalUpfront , true)))\n )\n }.bind(this))\n },\n\n validateFees: function($fees, feeAmount, feeValidation) {\n if (feeValidation) {\n $fees.val('0.00');\n $fees.popover('show');\n $fees.data('closePopoverOnClick', false);\n }\n },\n\n validateServiceFees: function() {\n var minServiceFeeAmount = 50;\n var $serviceFees = this.$('#qcServiceFees');\n var serviceFeeAmount = UC.utils.currencyToFloat($serviceFees.val());\n var feeValidation = serviceFeeAmount < minServiceFeeAmount && serviceFeeAmount !== 0;\n this.validateFees($serviceFees, serviceFeeAmount, feeValidation);\n var $proposalType = this.$('#BidType');\n var bidType = parseInt($proposalType.val(), 10);\n\n if (bidType && bidType === UC.constants.BidType.HourlyRate\n && serviceFeeAmount != this.hourly_rate\n && this.hourly_rate > 0) {\n\n var kissData = {\n userId: UC.user.id,\n serviceFeeAmount: serviceFeeAmount,\n oldhourlyRate: this.hourly_rate,\n clientId: this.attorney_client.UserId\n };\n if (UC.job) kissData.jobId = UC.job.id;\n UC.utils.recordKissEvent('quote_calculator_fee_changed_from_hourly_rate', kissData);\n }\n },\n\n validateServiceFeesClient: function() {\n var minServiceFeeAmount = 50 * this.percentFee;\n var $serviceFees = this.$('#qcServiceFeesClient');\n var serviceFeeAmount = UC.utils.currencyToFloat($serviceFees.val());\n var feeValidation = serviceFeeAmount < minServiceFeeAmount && serviceFeeAmount !== 0;\n this.validateFees($serviceFees, serviceFeeAmount, feeValidation);\n },\n\n validateFilingFees: function() {\n var $filingFees = this.$('#qcFilingFees');\n var filingFeeAmount = UC.utils.currencyToFloat($filingFees.val());\n var feeValidation = filingFeeAmount < 0;\n this.validateFees($filingFees, filingFeeAmount, feeValidation);\n },\n\n validateFilingFeesClient: function() {\n var $filingFees = this.$('#qcFilingFeesClient');\n var filingFeeAmount = UC.utils.currencyToFloat($filingFees.val());\n var feeValidation = filingFeeAmount < 0;\n this.validateFees($filingFees, filingFeeAmount, feeValidation);\n },\n\n showHourlyFee: function(e) {\n if (e) e.preventDefault();\n if (this.client_loaded === false) return;\n\n var $serviceFees = this.$('#qcServiceFees');\n var serviceFeeAmount = UC.utils.currencyToFloat($serviceFees.val());\n\n UC.utils.showPanel(this.$('.panelHours'));\n this.$('#tabHourlyFee').addClass('active');\n this.$('#tabFixedFee').removeClass('active');\n this.$('#lblServiceFee').text('Hourly Rate:');\n this.setBidType(UC.constants.BidType.HourlyRate);\n\n if (this.hourly_rate > 0) {\n // Hourly Rate info\n if (serviceFeeAmount === 0) this.$('#qcServiceFees').val(UC.utils.formatCurrency(this.hourly_rate));\n this.$('#hourlyRate').text(UC.utils.formatCurrency(this.calculateClientHourly(), true) + '/hr');\n this.$('clientTimesheetLink').toggleClass('hidden', !this.has_invoices);\n this.$('#clientTimesheetLink').attr('href', '/invoices?UserId=' + this.client_id);\n UC.utils.showPanel(this.$('#hourlyNoticeRow'));\n } else {\n UC.utils.hidePanel(this.$('#hourlyNoticeRow'));\n }\n\n this.calculateProposalFees();\n\n $('.js-hourly-blurb').removeClass('hidden');\n },\n\n showFixedFee: function(e) {\n if (e) e.preventDefault();\n if (this.client_loaded === false) return;\n UC.utils.hidePanel(this.$('.panelHours'));\n UC.utils.hidePanel(this.$('#hourlyNoticeRow'));\n this.$('#tabFixedFee').addClass('active');\n this.$('#tabHourlyFee').removeClass('active');\n this.$('#lblServiceFee').text('Service Fees:');\n this.setBidType(UC.constants.BidType.FixedBid);\n this.calculateProposalFees();\n $('.js-hourly-blurb').addClass('hidden');\n }\n\n});\n","UC.partials.ScheduledCallsTimesAvailable = Backbone.View.extend({\n\n events: {\n 'click #time-available-add': 'addRow',\n 'click .time-available-remove': 'removeRow'\n },\n\n initialize: function() {\n this.initCalendars();\n },\n\n initCalendars: function() {\n var options = $.extend({\n minDate: \"0\"\n }, UC.constants.datepickerOptions);\n\n this.$el.find('.time-available-date').datepicker(options);\n\n this.$el.find('.js-calendar-button').click(function(e) {\n $(e.target).closest('.input-with-icon-right').find('input').focus();\n });\n },\n\n errors: function() {\n var errors = [];\n var data = [];\n\n this.$el.find('.time-available').each(function() {\n var $el = $(this);\n var $date = $el.find('.time-available-date');\n var $from = $el.find('.time-available-range-from');\n var $to = $el.find('.time-available-range-to');\n var date = moment($date.val(), UC.constants.momentDateFormats, true);\n\n if (!date.isValid()) {\n errors.push({element: $date, text: 'Please provide a valid date (mm/dd/yyyy)', className: 'form-group'});\n }\n\n if (date.isBefore(new Date(), 'day')) {\n errors.push({ element: $date, text: 'Date must be in the future', className: 'form-group' });\n }\n\n var from = parseInt($from.val().replace(/\\D/g,''), 10);\n var to = parseInt($to.val().replace(/\\D/g,''), 10);\n\n var overlaps = data.find(function(overlap) {\n return overlap.date == $date.val() && overlap.to_hour >= from && overlap.from_hour <= to;\n });\n\n if ( from >= to) {\n errors.push({ element: $from, text: 'From time must be before to time', className: 'form-group' });\n } else if(overlaps) {\n errors.push({ element: $from, text: 'Time segments cannot overlap', className: 'form-group' });\n }\n data.push({\n date: $date.val(),\n from_hour: from,\n to_hour: to\n });\n });\n\n return errors;\n },\n\n serialize: function() {\n var data = [];\n\n this.$el.find('.time-available').each(function() {\n var $el = $(this);\n var date = $el.find('.time-available-date').val();\n var from = $el.find('.time-available-range-from').val();\n var to = $el.find('.time-available-range-to').val();\n\n data.push({\n date: date,\n from_hour: from,\n to_hour: to\n });\n });\n\n return data;\n },\n\n addRow: function(e) {\n e.preventDefault();\n var $template = this.$el.find('#time-available-template');\n this.$el.find('#times-available-list').append($template.html());\n this.initCalendars();\n this.toggleAddTime();\n },\n\n removeRow: function(e) {\n e.preventDefault();\n $(e.target).closest('.time-available').remove();\n this.toggleAddTime();\n },\n\n toggleAddTime: function() {\n var $add = this.$el.find('#time-available-add');\n\n if (this.$el.find('.time-available').length >= 3) {\n $add.hide();\n } else {\n $add.show();\n }\n }\n});\n","!function() {\n\n UC.modals.ScheduledCallsNew = Backbone.View.extend({\n\n className: 'modal fade',\n\n events: {\n 'hidden.bs.modal': 'remove'\n },\n\n routes: {\n scheduled_calls_new: '/users/{0}/scheduled_calls/new'\n },\n\n initialize: function(options) {\n this.attorney_id = options.attorney_id;\n this.noInstantAvailability = options.noInstantAvailability;\n this.isPaidConsultationPacakge = options.isPaidConsultationPacakge;\n this.onRequest = options.onRequest || this.setButtonAsRequested.bind(this)\n this.jobId = options.jobId;\n\n return this;\n },\n\n render: function() {\n var path = this.routes.scheduled_calls_new.format(this.attorney_id);\n\n var data = {\n no_instant_availability: this.noInstantAvailability,\n is_paid_consultation_package: this.isPaidConsultationPacakge\n }\n\n UC.net.get(path, data)\n .done(function(res) {\n var scheduleCallModal = new UC.partials.modalV9({\n className: 'modal v9 modal-backport',\n modalContent: res.html,\n customModal: true,\n });\n\n new UC.partials.ScheduledCallsFormRequest({\n el: scheduleCallModal.el,\n onRequest: this.onRequest,\n removeAlternativeTimeOptions: this.removeAlternativeTimeOptions,\n jobId: this.jobId\n });\n }.bind(this));\n\n var event_data = {\n attorney_id: this.attorney_id,\n job_id: (this.jobId || UC.constants.jobId)\n };\n\n UC.utils.sendNesEvent('proposals_schedule_call_click', event_data);\n },\n\n setButtonAsRequested: function() {\n var $bid = $('#{0}'.format(this.attorney_id));\n\n this.$el.modal('hide');\n $bid.find('.jp-schedule-phone-call').addClass('hide');\n $bid.find('.jp-phone-call-scheduled').removeClass('hide');\n }\n });\n}();\n","!function() {\n\n UC.modals.ScheduledCallsShow = Backbone.View.extend({\n\n className: 'modal fade',\n\n events: {\n 'hidden.bs.modal': 'remove'\n },\n\n routes: {\n scheduled_calls_show: '/scheduled_calls/{0}'\n },\n\n initialize: function(options) {\n this.options = options || {};\n this.scheduled_call_id = this.options.scheduled_call_id;\n return this;\n },\n\n render: function() {\n\n var path = this.routes.scheduled_calls_show.format(this.scheduled_call_id);\n\n UC.net.get(path, function(res) {\n this.$el.html(res.html);\n this.$el.modal();\n\n new UC.partials.ScheduledCallsChooseAvailable({\n el: this.$el,\n isModal: true,\n onReply: function(result) {\n this.$el.modal('hide');\n $('body').find('.btn-schedule-call-reply').remove();\n\n if (typeof this.options.callback === 'function') {\n this.options.callback(result);\n }\n }.bind(this)\n });\n\n var data = {\n json_attributes: {\n time_to_first_availability: this.$('.js-select-time-step').data('firstAvailability'),\n client_id: this.$('#scheduled_calls_form_reply').data('clientId'),\n bid_id: this.$('#scheduled_calls_form_reply').data('bidId')\n },\n attorney_id: this.$('#scheduled_calls_form_reply').data('attorneyId'),\n };\n UC.utils.sendNesEvent('schedule_call_reply_click', data);\n\n }.bind(this));\n },\n });\n}();\n","if (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n \n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP && oThis\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n \n fNOP.prototype = this.prototype;\n fBound.prototype = new fNOP();\n \n return fBound;\n };\n}","/*\n * Fix for browsers with no Array.indexOf implementation\n */\nif (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function (obj, start) {\n for (var i = (start || 0), j = this.length; i < j; i++) {\n if (this[i] === obj) {\n return i;\n }\n }\n return -1;\n };\n}\n","/*\n * Fix for browsers with no String.trim implementation\n */\nif (typeof String.prototype.trim !== 'function') {\n String.prototype.trim = function () {\n return this.replace(/^\\s+|\\s+$/g, '');\n };\n}\n","// This is a manifest file that'll be compiled into application.js, which will include all the files\n// listed below.\n//\n// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,\n// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.\n//\n// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the\n// compiled file.\n//\nimport 'jquery-ujs'\nimport 'backbone'\nimport 'bootstrap'\nimport 'moment'\nimport 'jquery-serializejson'\nimport 'js-cookie'\nimport 'handlebars/dist/handlebars.runtime'\nimport 'bootstrap-multiselect'\n\nimport './polyfills'\nimport './upcounsel'\nimport './utils'\nimport './components'\n\nimport './views/public/jobs/manage_cog'\nimport './views/public/jobs/modal_change_status'\n\n// Fixes bootstrap vs. jquery-ui button conflict\n// https://github.com/twbs/bootstrap/issues/6094\n$.fn.button.noConflict();\n","var map = {\n\t\"./admin/biography_snippets/change_reason_modal.hbs\": \"./app/assets/javascripts/templates/admin/biography_snippets/change_reason_modal.hbs\",\n\t\"./admin/cache/modal_content.hbs\": \"./app/assets/javascripts/templates/admin/cache/modal_content.hbs\",\n\t\"./admin/job_bulk_inviter/more_info.hbs\": \"./app/assets/javascripts/templates/admin/job_bulk_inviter/more_info.hbs\",\n\t\"./admin/map/attorney_card.hbs\": \"./app/assets/javascripts/templates/admin/map/attorney_card.hbs\",\n\t\"./admin/notable/new_admin_log_entry_modal.hbs\": \"./app/assets/javascripts/templates/admin/notable/new_admin_log_entry_modal.hbs\",\n\t\"./admin/press_logos/press_logo_edit.hbs\": \"./app/assets/javascripts/templates/admin/press_logos/press_logo_edit.hbs\",\n\t\"./admin/press_logos/press_logo_new.hbs\": \"./app/assets/javascripts/templates/admin/press_logos/press_logo_new.hbs\",\n\t\"./admin/press_logos/press_logo_new_file_uploaded.hbs\": \"./app/assets/javascripts/templates/admin/press_logos/press_logo_new_file_uploaded.hbs\",\n\t\"./components/alert_modal.hbs\": \"./app/assets/javascripts/templates/components/alert_modal.hbs\",\n\t\"./components/attachment_textarea.hbs\": \"./app/assets/javascripts/templates/components/attachment_textarea.hbs\",\n\t\"./components/calendar_availability/availability_day_group.hbs\": \"./app/assets/javascripts/templates/components/calendar_availability/availability_day_group.hbs\",\n\t\"./components/calendar_availability/availability_time_range.hbs\": \"./app/assets/javascripts/templates/components/calendar_availability/availability_time_range.hbs\",\n\t\"./components/calendar_availability/availability_time_ranges.hbs\": \"./app/assets/javascripts/templates/components/calendar_availability/availability_time_ranges.hbs\",\n\t\"./components/draft_proposal_template_list.hbs\": \"./app/assets/javascripts/templates/components/draft_proposal_template_list.hbs\",\n\t\"./components/job_overview_scheduled_calls.hbs\": \"./app/assets/javascripts/templates/components/job_overview_scheduled_calls.hbs\",\n\t\"./components/proposal_template_index_list.hbs\": \"./app/assets/javascripts/templates/components/proposal_template_index_list.hbs\",\n\t\"./components/super_fancy_cat.hbs\": \"./app/assets/javascripts/templates/components/super_fancy_cat.hbs\",\n\t\"./components/timesheets/add_timesheet_line_items_invoice_modal.hbs\": \"./app/assets/javascripts/templates/components/timesheets/add_timesheet_line_items_invoice_modal.hbs\",\n\t\"./components/timesheets/add_timesheet_lines_invoice_button.hbs\": \"./app/assets/javascripts/templates/components/timesheets/add_timesheet_lines_invoice_button.hbs\",\n\t\"./components/timesheets/add_timesheet_row_button.hbs\": \"./app/assets/javascripts/templates/components/timesheets/add_timesheet_row_button.hbs\",\n\t\"./components/timesheets/client_invoiced_line_items.hbs\": \"./app/assets/javascripts/templates/components/timesheets/client_invoiced_line_items.hbs\",\n\t\"./components/timesheets/create_timesheet_invoice_button.hbs\": \"./app/assets/javascripts/templates/components/timesheets/create_timesheet_invoice_button.hbs\",\n\t\"./components/timesheets/current_timesheet_line_items_for_client.hbs\": \"./app/assets/javascripts/templates/components/timesheets/current_timesheet_line_items_for_client.hbs\",\n\t\"./components/timesheets/save_status_indicator.hbs\": \"./app/assets/javascripts/templates/components/timesheets/save_status_indicator.hbs\",\n\t\"./components/timesheets/timesheet_date_filters.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_date_filters.hbs\",\n\t\"./components/timesheets/timesheet_intro.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_intro.hbs\",\n\t\"./components/timesheets/timesheet_jobs_dropdown.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_jobs_dropdown.hbs\",\n\t\"./components/timesheets/timesheet_line_item_row.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_line_item_row.hbs\",\n\t\"./components/timesheets/timesheet_table.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_table.hbs\",\n\t\"./components/timesheets/timesheet_table_header.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_table_header.hbs\",\n\t\"./components/timesheets/timesheet_tabs.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_tabs.hbs\",\n\t\"./components/timesheets/timesheet_totals.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_totals.hbs\",\n\t\"./components/timesheets/timesheet_types_dropdown.hbs\": \"./app/assets/javascripts/templates/components/timesheets/timesheet_types_dropdown.hbs\",\n\t\"./public/attorney_legal_groups/attorney_top_legal_groups_modal.hbs\": \"./app/assets/javascripts/templates/public/attorney_legal_groups/attorney_top_legal_groups_modal.hbs\",\n\t\"./public/calls/cancel.hbs\": \"./app/assets/javascripts/templates/public/calls/cancel.hbs\",\n\t\"./public/calls/modal_initiate.hbs\": \"./app/assets/javascripts/templates/public/calls/modal_initiate.hbs\",\n\t\"./public/document_download_offer.hbs\": \"./app/assets/javascripts/templates/public/document_download_offer.hbs\",\n\t\"./public/emails/email.hbs\": \"./app/assets/javascripts/templates/public/emails/email.hbs\",\n\t\"./public/invoices/attachment.hbs\": \"./app/assets/javascripts/templates/public/invoices/attachment.hbs\",\n\t\"./public/jobs/live_chat_message.hbs\": \"./app/assets/javascripts/templates/public/jobs/live_chat_message.hbs\",\n\t\"./public/jobs/modal_change_status.hbs\": \"./app/assets/javascripts/templates/public/jobs/modal_change_status.hbs\",\n\t\"./public/jobs/modal_message_attorney.hbs\": \"./app/assets/javascripts/templates/public/jobs/modal_message_attorney.hbs\",\n\t\"./public/jobs/modal_request_invite.hbs\": \"./app/assets/javascripts/templates/public/jobs/modal_request_invite.hbs\",\n\t\"./public/proposals/confirm_subscription_modal.hbs\": \"./app/assets/javascripts/templates/public/proposals/confirm_subscription_modal.hbs\",\n\t\"./public/proposals/subscription_prompt_modal.hbs\": \"./app/assets/javascripts/templates/public/proposals/subscription_prompt_modal.hbs\",\n\t\"./public/search/result.hbs\": \"./app/assets/javascripts/templates/public/search/result.hbs\",\n\t\"./shared/modal.hbs\": \"./app/assets/javascripts/templates/shared/modal.hbs\",\n\t\"./shared/modal_close_the_loop.hbs\": \"./app/assets/javascripts/templates/shared/modal_close_the_loop.hbs\",\n\t\"./shared/modal_v9.hbs\": \"./app/assets/javascripts/templates/shared/modal_v9.hbs\",\n\t\"./shared/notification.hbs\": \"./app/assets/javascripts/templates/shared/notification.hbs\",\n\t\"./shared/pagination.hbs\": \"./app/assets/javascripts/templates/shared/pagination.hbs\",\n\t\"./shared/panel_close_the_loop.hbs\": \"./app/assets/javascripts/templates/shared/panel_close_the_loop.hbs\"\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 = \"./app/assets/javascripts/templates sync recursive ^\\\\.\\\\/.*\\\\.hbs$\";","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\\n
    \\n
    \\n\\n
    \\n

    Do you want to add any notes for this status change?

    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n\\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n \\n
    \\n\\n
    \\n close\\n Delete\\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n \\n \\\"\\\"\\n \\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"attorney\") : depth0)) != null ? lookupProperty(stack1,\"Name\") : stack1), depth0))\n + \"
    \\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"attorney\") : depth0)) != null ? lookupProperty(stack1,\"Status\") : stack1), depth0))\n + \"\\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n

    Add Note

    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"attributes\") : depth0)) != null ? lookupProperty(stack1,\"Name\") : stack1), depth0))\n + \"\\n
    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n\\n
    \\n\\n
    \\n \\n \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n

    \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":30},\"end\":{\"line\":5,\"column\":39}}}) : helper)))\n + \"

    \\n
    \\n\\n
    \\n \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"message\") || (depth0 != null ? lookupProperty(depth0,\"message\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":6},\"end\":{\"line\":9,\"column\":17}}}) : helper)))\n + \"\\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n
    \\n
    \\n Attach files by dragging & dropping or clicking here\\n
    \\n
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n \\n\\n
    \\n\\n \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"value\") : depth0),((stack1 = ((stack1 = (depths[1] != null ? lookupProperty(depths[1],\"model\") : depths[1])) != null ? lookupProperty(stack1,\"attributes\") : stack1)) != null ? lookupProperty(stack1,\"FromTime\") : stack1),{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(2, data, 0, blockParams, depths),\"inverse\":container.program(4, data, 0, blockParams, depths),\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":12},\"end\":{\"line\":11,\"column\":23}}})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n var alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"6\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"value\") : depth0),((stack1 = ((stack1 = (depths[1] != null ? lookupProperty(depths[1],\"model\") : depths[1])) != null ? lookupProperty(stack1,\"attributes\") : stack1)) != null ? lookupProperty(stack1,\"ToTime\") : stack1),{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(2, data, 0, blockParams, depths),\"inverse\":container.program(4, data, 0, blockParams, depths),\"data\":data,\"loc\":{\"start\":{\"line\":27,\"column\":12},\"end\":{\"line\":31,\"column\":23}}})) != null ? stack1 : \"\");\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n to\\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n\\n
    \\n Remove\\n
    \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true,\"useDepths\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n return \"selected\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n
    \\n\\n
    \\n\\n
    \\n This prevents calls from being scheduled at the last minute.\\n\\n
    \\n Require at least\\n\\n
    \\n \\n
    \\n\\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n \\n
  • \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n You don't have any calls scheduled. Review your\\n proposals\\n to schedule calls with attorneys. Review your\\n messages\\n to reschedule a canceled call\\n
  • \\n\";\n},\"3\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"scheduledCalls\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 1, blockParams),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":15,\"column\":6},\"end\":{\"line\":62,\"column\":15}}})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[0][0]) != null ? lookupProperty(stack1,\"isScheduled\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams),\"inverse\":container.program(7, data, 0, blockParams),\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":16,\"column\":8},\"end\":{\"line\":61,\"column\":15}}})) != null ? stack1 : \"\");\n},\"5\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n
    \\n
    \\n Call Scheduled with \"\n + alias2(alias1(((stack1 = ((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"Attorney\") : stack1)) != null ? lookupProperty(stack1,\"full_name\") : stack1), depth0))\n + \" on\\n \"\n + alias2(alias1(((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"adjusted_date_time\") : stack1), depth0))\n + \"\\n
    \\n\\n
    \\n Scheduled\\n \"\n + alias2(alias1(((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"time_ago\") : stack1), depth0))\n + \"\\n
    \\n
    \\n\\n
    \\n \\n Cancel Call\\n \\n\\n \\n Reschedule\\n \\n
    \\n
  • \\n\";\n},\"7\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = blockParams[1][0]) != null ? lookupProperty(stack1,\"isPending\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0, blockParams),\"inverse\":container.noop,\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":51,\"column\":8},\"end\":{\"line\":61,\"column\":8}}})) != null ? stack1 : \"\");\n},\"8\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n
    \\n You have requested a call with \"\n + alias2(alias1(((stack1 = ((stack1 = blockParams[2][0]) != null ? lookupProperty(stack1,\"Attorney\") : stack1)) != null ? lookupProperty(stack1,\"full_name\") : stack1), depth0))\n + \".\\n They are reviewing your call request,\\n and you may send them a\\n message\\n to discuss your project.\\n
    \\n
  • \\n \";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
      \\n
    • \\n

      Your Calls

      \\n
    • \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"isEmptyState\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams),\"inverse\":container.program(3, data, 0, blockParams),\"data\":data,\"blockParams\":blockParams,\"loc\":{\"start\":{\"line\":6,\"column\":4},\"end\":{\"line\":63,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n\\n\";\n},\"useData\":true,\"useBlockParams\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n \\n \\n \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"proposalTemplates\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":12,\"column\":9}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"name\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":6},\"end\":{\"line\":16,\"column\":13}}})) != null ? stack1 : \"\")\n + \"\\n
      \\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"options\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":19,\"column\":8},\"end\":{\"line\":23,\"column\":17}}})) != null ? stack1 : \"\")\n + \"
    \\n
  • \\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"

    \\n \\n All •\\n None\\n \\n \\n \\n \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":46},\"end\":{\"line\":13,\"column\":54}}}) : helper)))\n + \"\\n \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"count\") || (depth0 != null ? lookupProperty(depth0,\"count\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"count\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":43},\"end\":{\"line\":14,\"column\":52}}}) : helper)))\n + \"\\n

    \\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":12},\"end\":{\"line\":21,\"column\":20}}}) : helper)))\n + \"\\n
  • \\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n return \"selected\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n
    \\n
    \\n \\n

    Select timesheet entries

    \\n
    \\n\\n
    \\n
    \\n\\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" Import Timesheet\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" Import Timesheet\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"timesheetsAvailableToAdd\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":6,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n\\n
    \\n\\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n Create an invoice for \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"formattedSelectedModelFees\") || (depth0 != null ? lookupProperty(depth0,\"formattedSelectedModelFees\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"formattedSelectedModelFees\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":26},\"end\":{\"line\":3,\"column\":56}}}) : helper)))\n + \"\\n \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" \\n Create an invoice\\n \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"anyModelsSelected\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":10,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n\\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" All changes saved\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" Saving...\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"currentTimesheetStateSaved\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n
    Time Tracking
    \\n
    \\n Track your billable hours directly through UpCounsel.\\n You can enter billable time for a client at any point during your work together, either through a specific\\n job or through the the client's profile. No matter where you enter your time, entries will be accessible\\n on either page. Use the \\\"Create an Invoice\\\" button at any time to select time entries and push them\\n directly into an invoice.\\n
    \\n
    \\n Please check out the Attorney Education Center for additional details and instructions.\\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n Start a new spreadsheet by adding your first timesheet entry.\\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n\\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"selectNotRelatedtoUcJob\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":4},\"end\":{\"line\":6,\"column\":11}}})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n return \" Not related to an UpCounsel job\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(container.lambda((depth0 != null ? lookupProperty(depth0,\"selectedJobTitle\") : depth0), depth0))\n + \"\\n\";\n},\"6\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"9\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,\"attributes\") : depth0)) != null ? lookupProperty(stack1,\"_id\") : stack1),((stack1 = ((stack1 = (depths[1] != null ? lookupProperty(depths[1],\"model\") : depths[1])) != null ? lookupProperty(stack1,\"attributes\") : stack1)) != null ? lookupProperty(stack1,\"JobId\") : stack1),{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(10, data, 0, blockParams, depths),\"inverse\":container.program(12, data, 0, blockParams, depths),\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":6},\"end\":{\"line\":18,\"column\":17}}})) != null ? stack1 : \"\");\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"selectNotRelatedtoUcJob\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.program(19, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":24,\"column\":6},\"end\":{\"line\":28,\"column\":13}}})) != null ? stack1 : \"\");\n},\"17\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.program(6, data, 0, blockParams, depths),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":31,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true,\"useDepths\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" \\n \\n \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,\"model\") : depth0)) != null ? lookupProperty(stack1,\"selected\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.program(6, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":12,\"column\":9}}})) != null ? stack1 : \"\")\n + \" \\n \\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n \\n \\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"allowedToSelectLine\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.program(16, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":23,\"column\":4},\"end\":{\"line\":35,\"column\":11}}})) != null ? stack1 : \"\");\n},\"11\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,\"model\") : depth0)) != null ? lookupProperty(stack1,\"selected\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.program(14, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":24,\"column\":6},\"end\":{\"line\":28,\"column\":13}}})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"notInvoiceable\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.program(19, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":29,\"column\":4},\"end\":{\"line\":35,\"column\":4}}})) != null ? stack1 : \"\");\n},\"17\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"previouslySelectedLineJobConflict\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(20, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":32,\"column\":4},\"end\":{\"line\":35,\"column\":4}}})) != null ? stack1 : \"\");\n},\"20\":function(container,depth0,helpers,partials,data) {\n return \" \\n \";\n},\"22\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"24\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"26\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formattedDate\") || (depth0 != null ? lookupProperty(depth0,\"formattedDate\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formattedDate\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":49,\"column\":6},\"end\":{\"line\":49,\"column\":23}}}) : helper)))\n + \"\\n\";\n},\"28\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"30\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(31, data, 0),\"inverse\":container.program(33, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":58,\"column\":2},\"end\":{\"line\":62,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\\n
    Job
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(35, data, 0),\"inverse\":container.program(37, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":66,\"column\":4},\"end\":{\"line\":70,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n\";\n},\"31\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"33\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"35\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"37\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"39\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"41\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"43\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"45\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"displayType\") || (depth0 != null ? lookupProperty(depth0,\"displayType\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"displayType\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":86,\"column\":6},\"end\":{\"line\":86,\"column\":21}}}) : helper)))\n + \"\\n
    \\n\";\n},\"47\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"49\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"51\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"model\") : depth0)) != null ? lookupProperty(stack1,\"attributes\") : stack1)) != null ? lookupProperty(stack1,\"Description\") : stack1), depth0))\n + \"\\n\";\n},\"53\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"55\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"57\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"59\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"model\") : depth0)) != null ? lookupProperty(stack1,\"attributes\") : stack1)) != null ? lookupProperty(stack1,\"Hours\") : stack1), depth0))\n + \"\\n\";\n},\"61\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"63\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"65\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"67\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formattedRate\") || (depth0 != null ? lookupProperty(depth0,\"formattedRate\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"formattedRate\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":136,\"column\":6},\"end\":{\"line\":136,\"column\":23}}}) : helper)))\n + \"\\n\";\n},\"69\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"71\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"showDeleteButton\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(72, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":153,\"column\":4},\"end\":{\"line\":157,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n\";\n},\"72\":function(container,depth0,helpers,partials,data) {\n return \" \\n \\n \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showDeleteButton\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":7}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"allowedToSelectLine\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":0},\"end\":{\"line\":15,\"column\":7}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showInvoicedIcon\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.program(10, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":18,\"column\":2},\"end\":{\"line\":36,\"column\":9}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.program(24, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":39,\"column\":0},\"end\":{\"line\":43,\"column\":7}}})) != null ? stack1 : \"\")\n + \"\\n
    Date
    \\n\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(26, data, 0),\"inverse\":container.program(28, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":48,\"column\":4},\"end\":{\"line\":52,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n\\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showJobColumn\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(30, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":57,\"column\":0},\"end\":{\"line\":72,\"column\":7}}})) != null ? stack1 : \"\")\n + \"\\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(39, data, 0),\"inverse\":container.program(41, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":75,\"column\":0},\"end\":{\"line\":79,\"column\":7}}})) != null ? stack1 : \"\")\n + \"
    Type
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showTypeSelect\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(43, data, 0),\"inverse\":container.program(45, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":82,\"column\":2},\"end\":{\"line\":88,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n\\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(47, data, 0),\"inverse\":container.program(49, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":93,\"column\":0},\"end\":{\"line\":97,\"column\":7}}})) != null ? stack1 : \"\")\n + \"
    Description
    \\n\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(51, data, 0),\"inverse\":container.program(53, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":101,\"column\":4},\"end\":{\"line\":105,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(55, data, 0),\"inverse\":container.program(57, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":110,\"column\":0},\"end\":{\"line\":114,\"column\":7}}})) != null ? stack1 : \"\")\n + \"
    Hours
    \\n\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(59, data, 0),\"inverse\":container.program(61, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":118,\"column\":4},\"end\":{\"line\":122,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(63, data, 0),\"inverse\":container.program(65, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":126,\"column\":0},\"end\":{\"line\":130,\"column\":7}}})) != null ? stack1 : \"\")\n + \"\\n
    Rate
    \\n\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"readOnly\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(67, data, 0),\"inverse\":container.program(69, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":135,\"column\":4},\"end\":{\"line\":139,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n\\n
    \\n
    Subtotal
    \\n\\n
    \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formattedSubtotal\") || (depth0 != null ? lookupProperty(depth0,\"formattedSubtotal\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"formattedSubtotal\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":147,\"column\":4},\"end\":{\"line\":147,\"column\":25}}}) : helper)))\n + \"\\n
    \\n
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showDeleteColumn\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(71, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":151,\"column\":0},\"end\":{\"line\":159,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"tab\") || (depth0 != null ? lookupProperty(depth0,\"tab\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"tab\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":51},\"end\":{\"line\":1,\"column\":58}}}) : helper)))\n + \"-tab\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n\\n
    \\n
    \\n\\n
    \\n\\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"checked\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"sortDirection\") : depth0),\"asc\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.program(6, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":4},\"end\":{\"line\":17,\"column\":15}}})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n Job\\n\\n\"\n + ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"sortByField\") : depth0),\"JobId\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.program(6, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":27,\"column\":4},\"end\":{\"line\":35,\"column\":15}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n
    \\n Type\\n
    \\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"sortDirection\") : depth0),\"asc\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.program(14, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":28,\"column\":6},\"end\":{\"line\":32,\"column\":17}}})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n return \"
    Type
    \\n\";\n},\"18\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n\\n
    \\n Date\\n\\n\"\n + ((stack1 = __default(require(\"../../../handlebars_helpers/ifCond.js\")).call(alias1,(depth0 != null ? lookupProperty(depth0,\"sortByField\") : depth0),\"Date\",{\"name\":\"ifCond\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":2},\"end\":{\"line\":20,\"column\":13}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showJobColumn\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.program(16, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":23,\"column\":0},\"end\":{\"line\":43,\"column\":7}}})) != null ? stack1 : \"\")\n + \"\\n\\n
    Description
    \\n
    Quantity
    \\n
    Attorney Rate
    \\n
    Subtotal
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"showDeleteColumn\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(18, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":50,\"column\":0},\"end\":{\"line\":52,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"
  • \\n Current\\n
  • \\n
  • \\n \\n Invoiced\\n \\n
  • \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"
  • \\n \\n Current\\n \\n
  • \\n
  • \\n Invoiced\\n
  • \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
      \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"isShowingCurrentTimesheetsTab\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":4},\"end\":{\"line\":21,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"totalHours\") || (depth0 != null ? lookupProperty(depth0,\"totalHours\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"totalHours\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":6},\"end\":{\"line\":11,\"column\":20}}}) : helper)))\n + \" hour\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"totalHours\") || (depth0 != null ? lookupProperty(depth0,\"totalHours\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"totalHours\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":13,\"column\":6},\"end\":{\"line\":13,\"column\":20}}}) : helper)))\n + \" hours\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n Total\\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"totalHoursOne\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":4},\"end\":{\"line\":14,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n
    \\n
    \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"formattedTotalFees\") || (depth0 != null ? lookupProperty(depth0,\"formattedTotalFees\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"formattedTotalFees\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":19,\"column\":4},\"end\":{\"line\":19,\"column\":26}}}) : helper)))\n + \"\\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var alias1=container.lambda, alias2=container.escapeExpression;\n\n return \"
    \\n
    \"\n + alias2(alias1(depth0, depth0))\n + \"
    \\n
    \\n \\n
    \\n
    \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n\\n
    \\n\\n

    Select your practice areas

    \\n\\n
    \\n\\n
    \\n Of the practice areas you have selected, please indicate which are your main areas of focus. You can select up to\\n three that will be highlighted on your profile.\\n\\n \\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"availableRanking\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":10},\"end\":{\"line\":23,\"column\":19}}})) != null ? stack1 : \"\")\n + \"
    \\n \\n\\n
    \\n

    \\n
    \\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n\\n
    \\n

    Cancel Your Call

    \\n
    \\n\\n
    \\n

    \\n Are you sure you want to cancel this call? This will send an email notification to the other party that the call\\n has been canceled.\\n

    \\n\\n
    \\n \\n \\n\\n
    \\n \\n\\n \\n
    \\n \\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n
    \\n\\n\\n
    \\n

    Initiate a Call from UpCounsel

    \\n
    \\n\\n
    \\n\\n
    \\n\\n

    \\n Please click the “Call” button below to initiate your phone call.\\n Your phone will ring within 5-10 seconds and once you pick up,\\n you’ll hear your call ringing to the other party.\\n If there is no answer,\\n you can leave a voicemail as you normally would.\\n

    \\n\\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" Primary\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \" Unverified\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"unless\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"primary\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":2},\"end\":{\"line\":17,\"column\":13}}})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n return \" Set as primary\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n return \" Verification email sent. Resend\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"Email\") || (depth0 != null ? lookupProperty(depth0,\"Email\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"Email\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":2},\"end\":{\"line\":2,\"column\":11}}}) : helper)))\n + \"\\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"primary\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":2},\"end\":{\"line\":6,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"IsVerified\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":2},\"end\":{\"line\":10,\"column\":13}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"IsVerified\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":2},\"end\":{\"line\":18,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"IsVerified\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":20,\"column\":2},\"end\":{\"line\":22,\"column\":13}}})) != null ? stack1 : \"\")\n + \"
    \";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n\\n ×\\n\\n
    \\n \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":6,\"column\":43},\"end\":{\"line\":6,\"column\":51}}}) : helper)))\n + \"\\n
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n \\n \\n
    \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"messageText\") || (depth0 != null ? lookupProperty(depth0,\"messageText\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"messageText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":47},\"end\":{\"line\":21,\"column\":64}}}) : helper))) != null ? stack1 : \"\")\n + \"
    \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n \\n \\n \\n
    \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"senderName\") || (depth0 != null ? lookupProperty(depth0,\"senderName\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"senderName\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":35},\"end\":{\"line\":10,\"column\":49}}}) : helper)))\n + \"
    \\n
    \\n\\n
    \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"typingAnimation\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":4},\"end\":{\"line\":22,\"column\":11}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"

    Changing the bidding status to 'closed' will stop new proposals and allow you to focus\\n on communicating with those attorneys that have already responded to your request.

    \\n

    If you no longer wish to hire an attorney for this project, please\\n click here to cancel the request instead.

    \\n

    Are you sure you want to close bidding on your job?

    \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"

    By canceling your job, you will no longer be able to hire an attorney using this job request. If you\\n wish to hire an attorney for the same legal work, you will need to post a new job.

    \\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \n \"
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.hooks.blockHelperMissing, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \"\";\n\n stack1 = ((helper = (helper = lookupProperty(helpers,\"remove\") || (depth0 != null ? lookupProperty(depth0,\"remove\") : depth0)) != null ? helper : alias2),(options={\"name\":\"remove\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":47,\"column\":12},\"end\":{\"line\":54,\"column\":23}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"remove\")) { stack1 = alias4.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n buffer += \"\\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"reopenCheck\") || (depth0 != null ? lookupProperty(depth0,\"reopenCheck\") : depth0)) != null ? helper : alias2),(options={\"name\":\"reopenCheck\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":56,\"column\":12},\"end\":{\"line\":63,\"column\":28}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"reopenCheck\")) { stack1 = alias4.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer;\n},\"9\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n
    \\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n \\n
    \\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, alias5=container.hooks.blockHelperMissing, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \n \"
    \\n\\n
    \\n\\n
    \\n\\n
    \\n \\n

    \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":32},\"end\":{\"line\":9,\"column\":41}}}) : helper)))\n + \"

    \\n
    \\n\\n
    \\n
    \\n\\n

    \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"subtitle\") || (depth0 != null ? lookupProperty(depth0,\"subtitle\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"subtitle\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":14},\"end\":{\"line\":15,\"column\":26}}}) : helper)))\n + \"

    \\n\\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"closeBidding\") || (depth0 != null ? lookupProperty(depth0,\"closeBidding\") : depth0)) != null ? helper : alias2),(options={\"name\":\"closeBidding\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":17,\"column\":10},\"end\":{\"line\":23,\"column\":27}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"closeBidding\")) { stack1 = alias5.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n buffer += \"\\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"cancel\") || (depth0 != null ? lookupProperty(depth0,\"cancel\") : depth0)) != null ? helper : alias2),(options={\"name\":\"cancel\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":25,\"column\":10},\"end\":{\"line\":28,\"column\":21}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"cancel\")) { stack1 = alias5.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n buffer += \"\\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"closeBidding\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":31,\"column\":10},\"end\":{\"line\":44,\"column\":21}}})) != null ? stack1 : \"\")\n + \"\\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"admin\") || (depth0 != null ? lookupProperty(depth0,\"admin\") : depth0)) != null ? helper : alias2),(options={\"name\":\"admin\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":46,\"column\":10},\"end\":{\"line\":64,\"column\":20}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"admin\")) { stack1 = alias5.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n buffer += \"\\n
    \\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"cancel\") || (depth0 != null ? lookupProperty(depth0,\"cancel\") : depth0)) != null ? helper : alias2),(options={\"name\":\"cancel\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":67,\"column\":12},\"end\":{\"line\":69,\"column\":23}}}),(typeof helper === alias3 ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"cancel\")) { stack1 = alias5.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"cancel\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":71,\"column\":12},\"end\":{\"line\":73,\"column\":23}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n \\n
    \\n
    \\n
    \\n\\n \\n\\n \\n
    \\n
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"
    \\n\\n
    \\n
    \\n\\n
    \\n

    Contact Attorney About Your Job

    \\n
    \\n\\n
    \\n
    \\n
    \\n \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n\\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n\\n
    \\n

    Request a Proposal

    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n\\n \\n\\n \\n
    \\n
    \\n\\n
    \\n \\n \\n
    \\n \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"\\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n return \"\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"icon\") || (depth0 != null ? lookupProperty(depth0,\"icon\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"icon\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":29,\"column\":80},\"end\":{\"line\":29,\"column\":90}}}) : helper))) != null ? stack1 : \"\")\n + \"
    \\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"subtitle\") || (depth0 != null ? lookupProperty(depth0,\"subtitle\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"subtitle\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":30,\"column\":16},\"end\":{\"line\":30,\"column\":30}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n
    \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"content\") || (depth0 != null ? lookupProperty(depth0,\"content\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"content\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":41,\"column\":16},\"end\":{\"line\":41,\"column\":29}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n
    \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n\\n
    \\n\\n \\n\\n
    \\n\\n
    \\n\\n
    \\n\\n
    \\n\\n \\n\\n
    \\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"icon\") || (depth0 != null ? lookupProperty(depth0,\"icon\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"icon\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":22,\"column\":16},\"end\":{\"line\":22,\"column\":26}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n
    \\n\\n

    \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":25,\"column\":37},\"end\":{\"line\":25,\"column\":48}}}) : helper))) != null ? stack1 : \"\")\n + \"

    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"subtitle\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":27,\"column\":12},\"end\":{\"line\":32,\"column\":19}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n\\n
    \\n
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"content\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":39,\"column\":12},\"end\":{\"line\":43,\"column\":19}}})) != null ? stack1 : \"\")\n + \"
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n \\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":12},\"end\":{\"line\":4,\"column\":23}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n \\n\\n
    \\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"content\") || (depth0 != null ? lookupProperty(depth0,\"content\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"content\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":12},\"end\":{\"line\":8,\"column\":25}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"

    For the safety and privacy of our users, we don't allow the sharing of personal contact information until after an attorney has been hired. If you want to communicate with an attorney before hiring them, you can send them a message or schedule a call directly through UpCounsel.

    \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"

    For the safety and privacy of our users, we don't allow the sharing of personal contact information before a client hires an attorney. If you want to contact a potential client before you have been hired, you can send them a message or schedule a call directly through UpCounsel.

    \\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"emails\") || (depth0 != null ? lookupProperty(depth0,\"emails\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"emails\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":31,\"column\":48},\"end\":{\"line\":31,\"column\":60}}}) : helper)))\n + \"\\n
    \\n
    \\n
    \\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"phone_numbers\") || (depth0 != null ? lookupProperty(depth0,\"phone_numbers\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"phone_numbers\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":42,\"column\":48},\"end\":{\"line\":42,\"column\":67}}}) : helper)))\n + \"\\n
    \\n
    \\n
    \\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"linkedins\") || (depth0 != null ? lookupProperty(depth0,\"linkedins\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"linkedins\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":53,\"column\":48},\"end\":{\"line\":53,\"column\":63}}}) : helper)))\n + \"\\n
    \\n
    \\n
    \\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n
    \\n \\n \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"urls\") || (depth0 != null ? lookupProperty(depth0,\"urls\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"urls\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":64,\"column\":48},\"end\":{\"line\":64,\"column\":58}}}) : helper)))\n + \"\\n
    \\n
    \\n
    \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \n \"
    \\n\\n
    \\n
    \\n\\n
    \\n

    Please do not include personal contact information

    \\n
    \\n\\n
    \\n\\n
    \\n
    \\n\\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"show_client\") || (depth0 != null ? lookupProperty(depth0,\"show_client\") : depth0)) != null ? helper : container.hooks.helperMissing),(options={\"name\":\"show_client\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":12},\"end\":{\"line\":17,\"column\":28}}}),(typeof helper === \"function\" ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"show_client\")) { stack1 = container.hooks.blockHelperMissing.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"show_client\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":19,\"column\":12},\"end\":{\"line\":21,\"column\":23}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"emails\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":8},\"end\":{\"line\":35,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"phone_numbers\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":37,\"column\":8},\"end\":{\"line\":46,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"linkedins\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":48,\"column\":8},\"end\":{\"line\":57,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"urls\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":59,\"column\":8},\"end\":{\"line\":68,\"column\":15}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n\\n
    \\n \\n
    \\n\\n
    \\n
    \\n\\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"

    \"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"modalTitle\") || (depth0 != null ? lookupProperty(depth0,\"modalTitle\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"modalTitle\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":45},\"end\":{\"line\":9,\"column\":59}}}) : helper)))\n + \"

    \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"modalSubTitle\") : depth0)) != null ? lookupProperty(stack1,\"text\") : stack1), depth0))\n + \"\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n\\n
    \\n\\n \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"modalTitle\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":6},\"end\":{\"line\":10,\"column\":13}}})) != null ? stack1 : \"\")\n + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"modalSubTitle\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":6},\"end\":{\"line\":14,\"column\":13}}})) != null ? stack1 : \"\")\n + \"
    \\n\\n
    \\n \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"modalContent\") || (depth0 != null ? lookupProperty(depth0,\"modalContent\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"modalContent\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":18,\"column\":8},\"end\":{\"line\":18,\"column\":26}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n
    \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"modalFooter\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":21,\"column\":6},\"end\":{\"line\":42,\"column\":13}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \" \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
    \\n
    \\n \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"allow_close\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":4},\"end\":{\"line\":8,\"column\":11}}})) != null ? stack1 : \"\")\n + \" \"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"message\") || (depth0 != null ? lookupProperty(depth0,\"message\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"message\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":4},\"end\":{\"line\":9,\"column\":17}}}) : helper))) != null ? stack1 : \"\")\n + \"\\n
    \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
  • \\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"gap\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":6},\"end\":{\"line\":15,\"column\":13}}})) != null ? stack1 : \"\")\n + \"
  • \\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n return \" ...\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n var alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \" \"\n + alias2(alias1((depth0 != null ? lookupProperty(depth0,\"page\") : depth0), depth0))\n + \"\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
      \\n\\n
    • \\n \\n «\\n \\n
    • \\n\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"pages\") : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":2},\"end\":{\"line\":17,\"column\":11}}})) != null ? stack1 : \"\")\n + \"\\n
    • \\n \\n »\\n \\n
    • \\n
    \\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"

    For the safety and privacy of our users, we don't allow the sharing of personal contact information until after an attorney has been hired. If you want to communicate with an attorney before hiring them, you can send them a message or schedule a call directly through UpCounsel.

    \\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"

    For the safety and privacy of our users, we don't allow the sharing of personal contact information before a client hires an attorney. If you want to contact a potential client before you have been hired, you can send them a message or schedule a call directly through UpCounsel.

    \\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, options, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n }, buffer = \n \"
    \\n
    \\n
    \\n\\n

    Please do not include personal contact information

    \\n\\n\";\n stack1 = ((helper = (helper = lookupProperty(helpers,\"show_client\") || (depth0 != null ? lookupProperty(depth0,\"show_client\") : depth0)) != null ? helper : container.hooks.helperMissing),(options={\"name\":\"show_client\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":7,\"column\":6},\"end\":{\"line\":9,\"column\":22}}}),(typeof helper === \"function\" ? helper.call(alias1,options) : helper));\n if (!lookupProperty(helpers,\"show_client\")) { stack1 = container.hooks.blockHelperMissing.call(depth0,stack1,options)}\n if (stack1 != null) { buffer += stack1; }\n return buffer + \"\\n\"\n + ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"show_client\") : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":6},\"end\":{\"line\":13,\"column\":17}}})) != null ? stack1 : \"\")\n + \"\\n
    \\n
    \\n
    \\n\";\n},\"useData\":true});","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetInvoices = Backbone.Collection.extend({\n\n model: UC.timesheetComponent.TimesheetInvoice\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetJobs = Backbone.Collection.extend({\n\n model: UC.timesheetComponent.TimesheetJob\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetLineItems = Backbone.Collection.extend({\n\n model: UC.timesheetComponent.TimesheetLineItem,\n\n url: '/timesheet_line_items',\n\n initialize: function(modelsArray, opts) {\n opts = opts || {};\n\n // if any of these attributes are set, it implies that these are default values for the collection that will be used\n // when fetching relevant line items and creating new ones\n this.clientId = opts.clientId;\n this.invoiceId = opts.invoiceId;\n this.jobId = opts.jobId;\n this.direct = opts.direct;\n this.invoiced = opts.invoiced;\n this.startDateFilter = null;\n this.endDateFilter = null;\n\n this.selectedLineItemsJobId = null;\n\n this.on('line-selected', this.lineItemSelected.bind(this));\n this.on('line-unselected', this.removeSelectedJobIdIfAppropriate.bind(this));\n this.on('remove', this.removeSelectedJobIdIfAppropriate.bind(this));\n this.on('dateFilterChange', this.fetchModels.bind(this));\n this.on('destroy', this.triggerEventForModelDestroySync.bind(this));\n\n // Typically we should fetch models based on filter options. Should make this flexible to initiate anywhere\n if (!modelsArray) this.fetchModels(opts.filterOptions);\n },\n\n fetchModels: function(filterOptions) {\n var filter = {};\n if (this.clientId) filter.client = this.clientId;\n if (this.invoiceId) filter.invoice = this.invoiceId;\n if (this.jobId) filter.job = this.jobId;\n if (this.direct) filter.direct = this.direct;\n if (this.invoiced) filter.invoiced = true;\n\n if (this.startDateFilter) filter.start_date = this.startDateFilter.format(UC.constants.momentDateFormats[0]);\n if (this.endDateFilter) filter.end_date = this.endDateFilter.format(UC.constants.momentDateFormats[0]);\n\n _.extend(filter, filterOptions);\n\n _.extend(filter, {include_job_details: this.needJobDropdownOptions()});\n\n UC.net.get(this.url, filter, null, {cache: false})\n .done(this.handleModelFetchResponse.bind(this));\n },\n\n needJobDropdownOptions: function() {\n // If there is a client id present for the collection and not an invoice or job id (or direct), it indicates the user\n // should be on the client timesheet page, where they can select jobs they've worked on with the client for ts lines\n return !!(this.clientId && !(this.invoiced || this.invoiceId || this.jobId || this.direct));\n },\n\n handleModelFetchResponse: function(response) {\n this.setShowIntroVisibility(response.line_items_created_by_user_count);\n\n if (response.invoices) this.invoicesCollection = new UC.timesheetComponent.TimesheetInvoices(response.invoices);\n if (response.jobs) this.jobsCollection = new UC.timesheetComponent.TimesheetJobs(response.jobs);\n\n this.reset(response.timesheet_line_items);\n },\n\n setShowIntroVisibility: function(userLineItemCount) {\n this.showIntro = userLineItemCount === 0;\n },\n\n sumOfModelHours: function(models) {\n var sum = _.reduce(models, function(total, m) {\n return total + (parseFloat(m.get('Hours')) || 0);\n }, 0);\n\n return UC.utils.handleFloatPrecision(sum, 2);\n },\n\n totalHours: function() {\n return this.sumOfModelHours(this.models);\n },\n\n totalHoursOne: function() {\n return this.totalHours() === 1;\n },\n\n sumOfModelFees: function(models) {\n var sum = _.reduce(models, function(total, m) {\n return total + (m.calculateSubtotal() || 0);\n }, 0)\n\n return UC.utils.handleFloatPrecision(sum, 2);\n },\n\n totalFees: function() {\n return this.sumOfModelFees(this.models);\n },\n\n formattedTotalFees: function() {\n return UC.utils.formatCurrency(this.totalFees(), true);\n },\n\n selectedLineItemModels: function() {\n return this.models.filter(function(m) {\n return m.selected;\n })\n },\n\n modelsNotAddedToInvoice: function() {\n return this.models.filter(function(m) {\n return !m.addedToInvoice;\n })\n },\n\n selectedLineItemModelIds: function() {\n return _.map(this.selectedLineItemModels(), function(m) {\n return m.get('_id');\n });\n },\n\n sumOfSelectedModelFees: function() {\n return this.sumOfModelFees(this.selectedLineItemModels());\n },\n\n formattedSelectedModelFees: function() {\n return UC.utils.formatCurrency(this.sumOfSelectedModelFees(), true);\n },\n\n selectedModelsCount: function() {\n return this.selectedLineItemModels().length;\n },\n\n anyModelsSelected: function() {\n return this.selectedModelsCount() > 0;\n },\n\n lineItemSelected: function(model) {\n // The collection can only have one job selected at a given time as this is how invoices are generated and invoices\n // are associated with jobs\n this.selectedLineItemsJobId = model.get('JobId') || 'direct';\n },\n\n removeSelectedJobIdIfAppropriate: function() {\n if (!this.anyModelsSelected()) this.selectedLineItemsJobId = null;\n },\n\n triggerEventForModelDestroySync: function (model) {\n // The destroy event removes a model from the collection before sync. As a result, a sync event is not fired on the\n // collection. This function triggers the expected sync event to show to the user a delete was successful.\n model.on('sync', function() {\n this.trigger('model-delete-sync');\n }.bind(this));\n },\n\n createNewModel: function() {\n var newModel = new UC.timesheetComponent.TimesheetLineItem({\n ClientId: this.clientId,\n JobId: this.jobId,\n InvoiceId: this.invoiceId,\n Type: 'time_entry'\n }, {\n collection: this\n });\n\n this.create(newModel, {wait: true});\n\n UC.utils.recordKissEvent('timesheet_entry_created', {\n page_path: window.location.pathname\n });\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetInvoice = Backbone.Model.extend({\n idAttribute: '_id'\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetJob = Backbone.Model.extend({\n idAttribute: '_id'\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetLineItem = Backbone.Model.extend({\n idAttribute: '_id',\n\n initialize: function() {\n this.on('change:JobId', this.handleSelectednessForJobChange.bind(this));\n },\n\n formattedDate: function() {\n var dateString = this.get('Date');\n\n if (dateString) {\n return moment(dateString, UC.constants.momentDateFormats, true).format(\"MM/DD/YYYY\");\n }\n },\n\n calculateSubtotal: function() {\n var rate = this.get('Rate');\n var hours = this.get('Hours');\n return parseFloat((Math.round(rate * hours * 100)/100).toFixed(2)) || 0;\n },\n\n formattedSubtotal: function() {\n return UC.utils.formatCurrency(this.calculateSubtotal(), true);\n },\n\n formattedRate: function() {\n return UC.utils.formatCurrency(this.get('Rate') || 0, true);\n },\n\n markSelected: function() {\n this.selected = true;\n this.trigger('line-selected', this);\n },\n\n markUnselected: function() {\n this.selected = false;\n this.trigger('line-unselected', this);\n },\n\n jobsCollection: function() {\n return this.collection.jobsCollection;\n },\n\n invoicesCollection: function() {\n return this.collection.invoicesCollection;\n },\n\n getAssociatedJobModel: function() {\n if (!this.get('JobId')) return;\n return this.jobsCollection().get(this.get('JobId'));\n },\n\n getAssociatedInvoiceModel: function() {\n if (!this.get('InvoiceId')) return;\n return this.invoicesCollection().get(this.get('InvoiceId'));\n },\n\n jobStatus: function() {\n var jobModel = this.getAssociatedJobModel();\n if (jobModel) return jobModel.get('Status');\n },\n\n isInvoiceable: function() {\n if (this.invoiced()) return false;\n if (!this.get('JobId')) return true;\n return _.indexOf([UC.constants.JobStatus.WorkInProgress], this.jobStatus()) !== -1;\n },\n\n invoiced: function() {\n return !!this.get('InvoiceId');\n },\n\n invoiceNumber: function() {\n var invoiceModel = this.getAssociatedInvoiceModel();\n if (invoiceModel) return invoiceModel.get('InvoiceNumber');\n },\n\n invoiceId: function() {\n var invoiceModel = this.getAssociatedInvoiceModel();\n if (invoiceModel) return invoiceModel.get('_id');\n },\n\n readOnly: function() {\n return this.invoiced();\n },\n\n handleSelectednessForJobChange: function() {\n if (!this.selected) return;\n\n if (this.collection.selectedModelsCount() === 1 && this.isInvoiceable()) {\n // This is the only selected model. We can trigger it as selected again to update the collection selected job id\n this.markSelected();\n } else {\n // Going to unselect this model as there are other selected models which have a different job\n this.markUnselected();\n }\n },\n\n addToInvoice: function() {\n this.addedToInvoice = true;\n\n // after the ts line is added to the inovice it should become unselected\n this.selected = false;\n this.trigger('ts-line-added-to-invoice', this);\n },\n\n removeFromInvoice: function() {\n this.addedToInvoice = false;\n this.trigger('ts-line-removed-from-invoice', this);\n },\n\n allowedToSelectLine: function() {\n // You cannot select a line if it is not invoiceable\n if (!this.isInvoiceable()) return false;\n\n // You can select a line if it is invoiceable and another line has not yet been selected\n if (!this.collection.selectedLineItemsJobId) return true;\n\n // You can select a line if it's invoiceable and its job matches a previously selected line\n return this.matchesPreviouslySelectedLineJob();\n },\n\n matchesPreviouslySelectedLineJob: function() {\n return (this.get('JobId') || 'direct') === this.collection.selectedLineItemsJobId;\n },\n\n parse: function(response) {\n return response.timesheet_line_item;\n },\n\n displayType: function() {\n for(var i = 0; i < this.types.length; i++) {\n if (this.types[i].value === this.attributes.Type) {\n return this.types[i].label;\n }\n }\n\n return '';\n },\n\n types: [\n { value: 'time_entry', label: 'Time Entry' },\n { value: 'fixed_fees', label: 'Fixed Fees' },\n { value: 'filing_fees', label: 'Filing Fees' },\n { value: 'expenses', label: 'Expenses' }\n ]\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.AddTimesheetLinesItemsInvoiceModal = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/add_timesheet_line_items_invoice_modal\"),\n\n tagName: 'div',\n\n className: 'modal fade',\n\n events: {\n \"hidden.bs.modal\" : \"deleteElement\",\n \"click #add-ts-line-to-inv\" : \"addTsLineToInv\"\n },\n\n initialize: function (opts) {\n\n this.timesheetTableView = new UC.timesheetComponent.TimesheetTableView({\n collection: this.collection,\n readOnlyOverride: true,\n modelFilters: {\n notAddedToInvoice: true\n }\n });\n\n },\n\n render: function() {\n this.$el.html(this.template(this));\n this.timesheetTableView.render();\n this.timesheetTableView.delegateEvents();\n this.$('#timesheet-line-item-container').html(this.timesheetTableView.$el);\n this.delegateEvents();\n this.$el.modal();\n },\n\n timesheetsAvailableToAdd: function() {\n return this.collection.modelsNotAddedToInvoice().length > 0;\n },\n\n deleteElement: function() {\n this.$el.remove();\n },\n\n addTsLineToInv: function() {\n this.$el.modal('hide');\n var addedModels = this.collection.selectedLineItemModels();\n var modelIds = [];\n\n for (var i = 0, len = addedModels.length; i < len; i++) {\n var model = addedModels[i];\n model.addToInvoice();\n modelIds.push(model.get('_id'));\n }\n\n UC.utils.recordKissEvent('timesheet_line_items_imported_to_invoice', {\n timesheet_lines: modelIds\n });\n }\n\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.AddTimesheetLinesButtonInvoiceView = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/add_timesheet_lines_invoice_button\"),\n\n tagName: 'span',\n\n events: {\n 'click .import-ts-lines' : 'preventDefaultClick',\n 'click #add-ts-lines' : 'showAddTsLinesModal'\n },\n\n initialize: function (opts) {\n this.addTsModalView = opts.addTsModalView;\n this.collection.on('ts-line-added-to-invoice', this.render.bind(this));\n this.collection.on('ts-line-removed-from-invoice', this.render.bind(this));\n this.collection.on('ts-lines-marked-on-invoice-load', this.render.bind(this));\n },\n\n render: function () {\n this.$el.html(this.template({timesheetsAvailableToAdd: this.timesheetsAvailableToAdd()}));\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n },\n\n timesheetsAvailableToAdd: function() {\n return this.collection.modelsNotAddedToInvoice().length > 0;\n },\n\n showAddTsLinesModal: function() {\n UC.utils.recordKissEvent('import_timesheet_entries_to_invoice_click');\n\n this.addTsModalView.render();\n },\n\n preventDefaultClick: function(e) {\n e.preventDefault();\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.AddTimesheetRowButtonView = Backbone.View.extend({\n\n initialize: function(opts) {\n this.tableView = opts.tableView;\n },\n\n events: {\n 'click #add-ts-row' : 'addTimesheetRowButtonClick'\n },\n\n tagName: 'div',\n\n id: 'new-timesheet-row-btn-container',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/add_timesheet_row_button\"),\n\n render: function() {\n this.$el.html(this.template(this));\n },\n\n addTimesheetRowButtonClick: function(e) {\n e.preventDefault();\n\n this.collection.createNewModel();\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.ClientInvoicedLineItemsView = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/client_invoiced_line_items\"),\n\n tagName: 'div',\n\n id: 'invoiced-timesheet-line-items',\n\n initialize: function(opts) {\n this.clientId = opts.clientId;\n this.$parentElement = $(opts.parentElement);\n\n this.collection = new UC.timesheetComponent.TimesheetLineItems(null, {\n clientId: this.clientId,\n invoiced: true\n });\n\n this.timesheetTableView = new UC.timesheetComponent.TimesheetTableView({\n collection: this.collection,\n showJobColumn: true,\n });\n\n this.timesheetTotalsView = new UC.timesheetComponent.TimesheetTotalsView({\n collection: this.collection\n });\n\n this.timesheetDateFiltersView = new UC.timesheetComponent.TimesheetDateFiltersView({\n collection: this.collection\n });\n\n this.render();\n },\n\n render: function() {\n this.$el.html(this.template(this.collection));\n\n this.timesheetDateFiltersView.render();\n this.$('#timesheet-date-filters-container').html(this.timesheetDateFiltersView.$el);\n\n this.$('#timesheet-line-item-container').html(this.timesheetTableView.$el);\n\n this.timesheetTotalsView.render();\n this.$('#timesheet-totals-container').html(this.timesheetTotalsView.$el);\n\n this.$parentElement.html(this.$el);\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.CreateTimesheetInvoiceButtonView = Backbone.View.extend({\n\n tagName: 'span',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/create_timesheet_invoice_button\"),\n\n events: {\n 'click #create-ts-invoice-btn.inactive' : 'preventDefaultClick',\n 'click #create-ts-invoice-btn.enabled' : 'createTimesheetInvoiceBtnClick'\n },\n\n initialize: function() {\n this.collection.on('line-selected line-unselected destroy change:Hours change:Rate change:JobId', this.render.bind(this));\n },\n\n templateData: function() {\n return {\n anyModelsSelected: this.anyModelsSelected(),\n formattedSelectedModelFees: this.formattedSelectedModelFees(),\n newInvoiceUrlForTsLines: this.newInvoiceUrlForTsLines()\n }\n },\n\n render: function() {\n this.$el.html(this.template(this.templateData()));\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n },\n\n preventDefaultClick: function(e) {\n e.preventDefault();\n },\n\n createTimesheetInvoiceBtnClick: function() {\n UC.utils.recordKissEvent('create_invoice_from_timesheet_entries_click', {\n selected_timesheet_line_ids: this.collection.selectedLineItemModelIds(),\n page_path: window.location.pathname\n });\n },\n\n newInvoiceUrlForTsLines: function() {\n var url = '/invoices/new';\n var relevantJobId = this.collection.jobId || this.collection.selectedLineItemsJobId;\n var selectedLineItemIds = this.collection.selectedLineItemModelIds();\n var clientId = this.collection.clientId;\n\n var paramsObj = { timesheet_line_items: selectedLineItemIds };\n\n if (relevantJobId !== 'direct') {\n url = url + '/' + relevantJobId;\n }\n\n return url + '?' + $.param(paramsObj);\n },\n\n anyModelsSelected: function() {\n return this.collection.anyModelsSelected();\n },\n\n formattedSelectedModelFees: function() {\n return this.collection.formattedSelectedModelFees();\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.CurrentTimesheetLineItemsForClientView = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/current_timesheet_line_items_for_client\"),\n\n tagName: 'div',\n\n id: 'current-timesheet-line-items',\n\n initialize: function(opts) {\n this.clientId = opts.clientId;\n this.$parentElement = $(opts.parentElement);\n\n this.collection = new UC.timesheetComponent.TimesheetLineItems(null, {\n clientId: this.clientId,\n filterOptions: {\n current_line_items: true\n }\n });\n\n this.timesheetTableView = new UC.timesheetComponent.TimesheetTableView({\n collection: this.collection,\n allowNewTimesheetLines: !!opts.allowNewTimesheetLines,\n showDeleteColumn: true,\n showJobColumn: true,\n showTypeSelect: true\n });\n\n this.timesheetTotalsView = new UC.timesheetComponent.TimesheetTotalsView({\n collection: this.collection\n });\n\n this.collection.on('reset', this.render.bind(this));\n\n this.createTimesheetInvoiceButtonView = new UC.timesheetComponent.CreateTimesheetInvoiceButtonView({\n collection: this.collection\n });\n\n },\n\n render: function() {\n this.$el.html(this.template(this.collection));\n\n if (this.collection.showIntro) this.$('#timesheet-intro-container').html(this.introHtml());\n\n this.timesheetTableView.render();\n this.$('#timesheet-line-item-container').html(this.timesheetTableView.$el);\n\n this.timesheetTotalsView.render();\n this.$('#timesheet-totals-container').html(this.timesheetTotalsView.$el);\n\n this.createTimesheetInvoiceButtonView.render();\n this.$('#create-ts-inv-btn-container').html(this.createTimesheetInvoiceButtonView.$el);\n\n this.$parentElement.html(this.$el);\n },\n\n introHtml: function() {\n return UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_intro\")();\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.InvoiceFormView = Backbone.View.extend({\n\n initialize: function(opts) {\n this.jobId = opts.jobId;\n this.directInvoice = !opts.jobId;\n this.clientId = opts.clientId;\n this.invoiceForm = opts.invoiceForm;\n this.$tsServiceFeeLinesBtnContainer = opts.tsServiceFeeLinesBtnContainer;\n this.$tsExpenseLinesBtnContainer = opts.tsExpenseLinesBtnContainer;\n\n this.collection = new UC.timesheetComponent.TimesheetLineItems(null, {\n jobId: this.jobId,\n clientId: this.clientId,\n direct: this.directInvoice,\n filterOptions: {\n current_line_items: true\n }\n });\n\n this.addTsModalView = new UC.timesheetComponent.AddTimesheetLinesItemsInvoiceModal({\n collection: this.collection\n });\n\n this.addTsBtnViewServiceFees = new UC.timesheetComponent.AddTimesheetLinesButtonInvoiceView({\n collection: this.collection,\n addTsModalView: this.addTsModalView\n });\n\n this.addTsBtnViewExpenses = new UC.timesheetComponent.AddTimesheetLinesButtonInvoiceView({\n collection: this.collection,\n addTsModalView: this.addTsModalView\n });\n\n this.collection.on('reset', this.markTsLineModelsOnInvoice.bind(this));\n this.collection.on('ts-lines-marked-on-invoice-load', this.render.bind(this));\n this.collection.on('ts-line-added-to-invoice', this.addInvoiceLineBasedOnTsLine.bind(this));\n\n $('#invoice-items').on('invoiceLineItemRemoved', '.invoice-line-item', this.invoiceLineRemoved.bind(this));\n\n },\n\n render: function() {\n this.addTsBtnViewServiceFees.render();\n this.addTsBtnViewExpenses.render();\n this.$tsServiceFeeLinesBtnContainer.html(this.addTsBtnViewServiceFees.$el);\n this.$tsExpenseLinesBtnContainer.html(this.addTsBtnViewExpenses.$el);\n },\n\n markTsLineModelsOnInvoice: function() {\n $('.invoice-line-item').each(function(i, el) {\n var tsLineId = $(el).data('timesheet-item-id');\n var model;\n\n if (tsLineId) {\n model = this.collection.get(tsLineId);\n model.addedToInvoice = true;\n }\n }.bind(this));\n\n this.collection.trigger('ts-lines-marked-on-invoice-load');\n },\n\n invoiceLineRemoved: function(e) {\n var $invItem = $(e.currentTarget);\n var tsLineId = $invItem.data('timesheet-item-id');\n\n if (tsLineId) this.collection.get(tsLineId).removeFromInvoice();\n },\n\n addInvoiceLineBasedOnTsLine: function(tsLineModel) {\n var lineType = tsLineModel.get('Type');\n var itemType;\n\n if (lineType === 'filing_fees' || lineType === 'expenses') {\n itemType = 'filing';\n } else {\n itemType = 'service';\n }\n\n this.invoiceForm.addLineItem(itemType, {\n date: tsLineModel.formattedDate(),\n quantity: tsLineModel.get('Hours') || 0,\n unitPrice: tsLineModel.get('Rate') || 0,\n description: tsLineModel.get('Description'),\n type: tsLineModel.get('Type'),\n timesheetLineItemId: tsLineModel.get('_id')\n });\n }\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.SaveStatusIndicatorView = Backbone.View.extend({\n\n tagName: 'div',\n\n id: 'ts-save-status',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/save_status_indicator\"),\n\n initialize: function () {\n this.saveStatusCounter = 0;\n this.collection.on('add', this.handleTimesheetRequestMade.bind(this));\n this.collection.on('request', this.handleTimesheetRequestMade.bind(this));\n this.collection.on('sync', this.handleTimesheetRequestComplete.bind(this));\n this.collection.on('model-delete-sync', this.handleTimesheetRequestComplete.bind(this));\n this.setTimeoutId = null;\n },\n\n render: function () {\n this.$el.html(this.template({currentTimesheetStateSaved: this.currentTimesheetStateSaved()}));\n },\n\n handleTimesheetRequestMade: function () {\n this.saveStatusCounter++;\n this.render();\n },\n\n handleTimesheetRequestComplete: function () {\n this.saveStatusCounter--;\n\n if (this.setTimeoutId) clearTimeout(this.setTimeoutId);\n\n this.setTimeoutId = setTimeout(this.render.bind(this), 1500);\n },\n\n currentTimesheetStateSaved: function () {\n return this.saveStatusCounter === 0;\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetDateFiltersView = Backbone.View.extend({\n\n tagName: 'span',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_date_filters\"),\n\n events: {\n 'change input' : 'setDateFilterOnCollection'\n },\n\n render: function() {\n this.$el.html(this.template(this));\n this.$('.datepicker').datepicker();\n },\n\n setDateFilterOnCollection: function(e) {\n var $dateInput = $(e.currentTarget);\n var filterType = $dateInput.data('type');\n var dateString = $dateInput.val();\n var momentDate;\n\n if (dateString) {\n momentDate = moment(dateString, UC.constants.momentDateFormats, true);\n\n if (!this.dateValid(momentDate, filterType)) return;\n }\n\n switch (filterType) {\n case 'start-date':\n this.collection.startDateFilter = momentDate;\n break;\n case 'end-date':\n this.collection.endDateFilter = momentDate;\n break;\n }\n\n this.collection.trigger('dateFilterChange');\n },\n\n dateValid: function(momentDate, filterType) {\n\n if (!momentDate.isValid()) {\n UC.utils.showNotification(\"You've entered an invalid date\", UC.constants.results.failure);\n this.clearDateInput(filterType);\n return false;\n }\n\n if (filterType === 'start-date' && this.collection.endDateFilter && momentDate > this.collection.endDateFilter) {\n UC.utils.showNotification(\"Your start date filter is set past your end date filter\", UC.constants.results.failure);\n this.clearDateInput(filterType);\n return false;\n }\n\n if (filterType === 'end-date' && this.collection.startDateFilter && momentDate < this.collection.startDateFilter) {\n UC.utils.showNotification(\"Your end date filter is set before your start date filter\", UC.constants.results.failure);\n this.clearDateInput(filterType);\n return false;\n }\n\n return true;\n },\n\n clearDateInput: function(filterType) {\n $.datepicker._clearDate(this.$('input[data-type=\"' + filterType + '\"]'));\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetJobsDropdownView = Backbone.View.extend({\n tagName: 'span',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_jobs_dropdown\"),\n\n render: function() {\n var options = { dropdownAutoWidth: true };\n\n this.$el.html(this.template(this.templateData()));\n if (this.newLineItem()) options.placeholder = 'Add Job';\n\n this.$('select').select2(options);\n },\n\n templateData: function() {\n return {\n readOnly: this.readOnly(),\n selectedJobTitle: this.selectedJobTitle(),\n newLineItem: this.newLineItem(),\n collection: this.collection,\n model: this.model,\n selectNotRelatedtoUcJob: this.selectNotRelatedtoUcJob()\n }\n },\n\n newLineItem: function() {\n return !this.model.get('_id');\n },\n\n selectNotRelatedtoUcJob: function() {\n if(!this.model.get('_id')) return false;\n if(this.model.get('JobId')) return false;\n return true;\n },\n\n readOnly: function() {\n return this.model.readOnly();\n },\n\n selectedJob: function() {\n return this.model.getAssociatedJobModel();\n },\n\n selectedJobTitle: function() {\n var jobModel = this.selectedJob();\n\n if (jobModel) return jobModel.get('JobTitle');\n }\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetLineItemRowView = Backbone.View.extend({\n tagName: 'div',\n\n className: 'tr flipped-outer-border',\n\n events: {\n 'change .ts-line-item-field' : 'updateField',\n 'click .select-ts-line' : 'selectLineClicked',\n 'click .delete-ts-line' : 'deleteTsLineLineClick',\n 'focus input' : 'inputFocused',\n 'focusout input' : 'inputUnFocused',\n 'keydown .ts-line-item-rate' : 'createNewTsLineOnTabIfLastLine'\n },\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_line_item_row\"),\n\n initialize: function(opts) {\n this.model.on('change:Hours change:Rate', this.updateSubtotal.bind(this));\n this.model.on('change:JobId', this.render.bind(this));\n this.model.on('change:Rate', this.formatRateField.bind(this));\n this.model.on('change:Hours', this.setHoursInputValue.bind(this));\n this.model.on('destroy', this.removeElement.bind(this));\n this.model.on('line-selected', this.selectLineItem.bind(this));\n this.model.on('line-unselected', this.unselectLineItem.bind(this));\n this.tableView = opts.tableView;\n this.readOnlyOverride = opts.readOnlyOverride;\n },\n\n templateData: function() {\n return {\n showDeleteButton: this.showDeleteButton(),\n allowedToSelectLine: this.allowedToSelectLine(),\n showInvoicedIcon: this.showInvoicedIcon(),\n invoiceUrl: this.invoiceUrl(),\n notInvoiceable: this.notInvoiceable(),\n invoiceNumber: this.invoiceNumber(),\n previouslySelectedLineJobConflict: this.previouslySelectedLineJobConflict(),\n readOnly: this.readOnly(),\n formattedDate: this.formattedDate(),\n showJobColumn: this.showJobColumn(),\n showTypeSelect: this.showTypeSelect(),\n displayType: this.displayType(),\n formattedRate: this.formattedRate(),\n formattedSubtotal: this.formattedSubtotal(),\n showDeleteColumn: this.showDeleteColumn(),\n model: this.model\n }\n },\n\n render: function() {\n this.$el.html(this.template(this.templateData()));\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n this.$('.datepicker').datepicker(UC.constants.datepickerOptions);\n\n if (this.tableView.showJobColumn) {\n this.jobsDropdownView = new UC.timesheetComponent.TimesheetJobsDropdownView({\n model: this.model,\n collection: this.jobsCollection()\n });\n\n this.jobsDropdownView.render();\n this.$('.ts-line-job-dropdown-container').html(this.jobsDropdownView.$el);\n }\n\n if (this.showTypeSelect()) {\n this.typesDropdownView = new UC.timesheetComponent.TimesheetTypesDropdownView({\n model: this.model,\n showSelect: this.showJobColumn()\n });\n\n this.typesDropdownView.render();\n this.$('.ts-line-type-dropdown-container').html(this.typesDropdownView.$el);\n }\n\n this.$('.fancy-check').fancyCheck({manualChecking: true});\n if (this.model.selected) this.$el.addClass('selected');\n\n this.delegateEvents();\n },\n\n updateField: function(e) {\n var $updatedInput = $(e.currentTarget);\n var fieldName = $updatedInput.data('field-name');\n var fieldType = $updatedInput.data('field-type');\n var value = $updatedInput.val();\n\n\n if (fieldType === 'currency' || fieldType === 'float') {\n var convertedVal = UC.utils.stripCurrency(value);\n\n if (isNaN(convertedVal)) {\n value = null;\n } else {\n value = (Math.round(convertedVal * 100) / 100.0).toFixed(2);\n }\n\n // Removes trailing zeros from hours field as they are not necessary\n if (fieldType === 'float' && value) value = parseFloat(value);\n }\n\n // We cannot set a null value for rate as it will not reflect properly on invoice\n if (fieldName === 'Rate' && !value) value = '0.00';\n\n if (fieldType === 'date') {\n var date = moment(value, UC.constants.momentDateFormats, true);\n\n if (date.isValid()) {\n value = date.format(\"MM/DD/YYYY\");\n } else {\n value = '';\n this.clearDateInputValue();\n }\n }\n\n var updates = {};\n\n updates[fieldName] = value;\n\n this.model.save(updates, {patch: true});\n },\n\n updateSubtotal: function() {\n this.$('.ts-line-item-subtotal .attribute-detail').text(this.formattedSubtotal());\n },\n\n formatRateField: function() {\n this.$('.ts-line-item-rate').val(this.formattedRate());\n },\n\n setHoursInputValue: function() {\n this.$('input[data-field-name=\"Hours\"]').val(this.model.get('Hours'));\n },\n\n clearDateInputValue: function() {\n this.$('input[data-field-name=\"Date\"]').val('');\n },\n\n selectLineClicked: function(e) {\n e.preventDefault();\n\n if (this.model.selected) {\n this.model.markUnselected();\n } else if (this.model.allowedToSelectLine()) {\n this.model.markSelected();\n } else {\n // This case should be prevented by re-render\n new UC.components.alertModal({\n title: 'Select line item from same job',\n message: 'You can only create an invoice from line items that are associated with a single job'\n });\n }\n },\n\n unselectLineItem: function() {\n this.$('.select-ts-line').removeClass('checked');\n this.$el.removeClass('selected');\n },\n\n selectLineItem: function() {\n this.$('.select-ts-line').addClass('checked');\n this.$el.addClass('selected');\n },\n\n inputFocused: function(e) {\n $parentCell = $(e.currentTarget).closest('.tc');\n $parentCell.addClass('focused');\n },\n\n inputUnFocused: function(e) {\n $parentCell = $(e.currentTarget).closest('.tc');\n $parentCell.removeClass('focused');\n },\n\n deleteTsLineLineClick: function(e) {\n e.preventDefault();\n\n UC.utils.recordKissEvent('timesheet_entry_deleted', {\n timesheet_line_id: this.model.get('_id'),\n page_path: window.location.pathname\n });\n\n this.model.destroy();\n },\n\n removeElement: function() {\n this.$el.remove();\n },\n\n jobsCollection: function() {\n return this.model.jobsCollection();\n },\n\n showDeleteColumn: function() {\n return this.tableView.showDeleteColumn;\n },\n\n isInvoiceable: function() {\n return this.model.isInvoiceable();\n },\n\n formattedDate: function() {\n return this.model.formattedDate();\n },\n\n formattedSubtotal: function() {\n return this.model.formattedSubtotal();\n },\n\n formattedRate: function() {\n return this.model.formattedRate();\n },\n\n showInvoicedIcon: function() {\n return this.model.invoiced();\n },\n\n showDeleteButton: function() {\n return (this.showDeleteColumn() && !this.model.invoiced());\n },\n\n allowedToSelectLine: function() {\n return this.model.allowedToSelectLine();\n },\n\n notInvoiceable: function() {\n return !this.model.isInvoiceable();\n },\n\n readOnly: function() {\n return this.readOnlyOverride || this.model.readOnly();\n },\n\n showJobColumn: function() {\n return this.tableView.showJobColumn;\n },\n\n invoiceNumber: function() {\n return this.model.invoiceNumber();\n },\n\n previouslySelectedLineJobConflict: function() {\n return !this.model.matchesPreviouslySelectedLineJob();\n },\n\n invoiceUrl: function() {\n var invoiceId = this.model.invoiceId();\n\n if (invoiceId) return '/invoices/{0}'.format(invoiceId);\n },\n\n createNewTsLineOnTabIfLastLine: function(e) {\n var keyCode = e.which;\n\n if (keyCode === 9 && this.lastLineInTable()) {\n this.model.collection.createNewModel();\n }\n },\n\n lastLineInTable: function() {\n var tsTableLineViews = this.tableView.timesheetLineViews;\n\n return tsTableLineViews[tsTableLineViews.length-1] === this;\n },\n\n setFocusOnDateCell: function() {\n this.$('.ts-date-col input:text:visible:first').focus();\n },\n\n showTypeSelect: function() {\n return !this.model.readOnly() && this.tableView.showTypeSelect ;\n },\n\n displayType: function() {\n return this.model.displayType();\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetTableView = Backbone.View.extend({\n tagName: 'div',\n\n id: 'timesheet-container',\n\n className: 'marg-b-20',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_table\"),\n\n headerTemplate: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_table_header\"),\n\n events: {\n 'click .sortable-table-header' : 'sortTableByHeaderClick',\n 'click .select-all': 'selectAllTimesheetItems'\n },\n\n initialize: function(opts) {\n this.collection.on('reset', this.handleCollectionReset.bind(this));\n this.collection.on('add', this.newTimesheetLineAdded.bind(this));\n this.collection.on('line-selected line-unselected', this.render.bind(this));\n this.collection.on('remove', this.handleTsLineRemoved.bind(this));\n\n this.showDeleteColumn = !!opts.showDeleteColumn;\n this.allowNewTimesheetLines = !!opts.allowNewTimesheetLines;\n this.readOnlyOverride = opts.readOnlyOverride;\n this.showJobColumn = !!opts.showJobColumn;\n this.showTypeSelect = !!opts.showTypeSelect;\n this.showDeleteColumn = !!opts.showDeleteColumn;\n\n this.modelFilters = opts.modelFilters;\n this.sortByField = 'Date';\n this.sortByFieldType = 'date';\n this.sortDirection = 'asc';\n this.tab = opts.tab;\n this.selectAll = false;\n\n this.timesheetLineViews = [];\n\n this.initStatusIndicatorView();\n },\n\n initStatusIndicatorView: function() {\n this.saveStatusIndicatorView = new UC.timesheetComponent.SaveStatusIndicatorView({\n collection: this.collection,\n tableView: this\n });\n\n this.saveStatusIndicatorView.render();\n },\n\n handleTsLineRemoved: function(model) {\n this.removeTsLineViewForModel(model);\n this.renderTimesheetHeaderAndLines();\n },\n\n removeTsLineViewForModel: function(model) {\n this.timesheetLineViews = _.reject(this.timesheetLineViews, function(view) {\n return model.get('_id') === view.model.get('_id');\n })\n },\n\n handleCollectionReset: function() {\n this.timesheetLineViews = [];\n\n this.collection.models.forEach(function(model) {\n this.addLineItemView(model);\n }.bind(this));\n\n this.render();\n },\n\n addLineItemView: function(model) {\n var newTsLineView = new UC.timesheetComponent.TimesheetLineItemRowView({\n model: model,\n tableView: this,\n readOnlyOverride: this.readOnlyOverride,\n showDeleteColumn: this.showDeleteColumn\n });\n\n this.timesheetLineViews.push(newTsLineView);\n return newTsLineView;\n },\n\n appendLineItemViewToTable: function(view) {\n view.render();\n this.$timesheetLineItemsTbody.append(view.$el);\n },\n\n render: function() {\n this.$el.html(this.template(this));\n\n this.$tsHeader = this.$('#ts-header');\n\n this.$timesheetLineItemsTbody = this.$('#timesheet-line-items');\n\n this.renderTimesheetHeaderAndLines();\n\n if (this.allowNewTimesheetLines) this.appendNewTimesheetRowButton();\n if (this.showSaveStatus()) this.appendSaveStatusIndicator();\n\n },\n\n renderTimesheetHeaderAndLines: function() {\n this.$tsHeader.html(this.headerTemplate(this));\n\n // clear existing html;\n this.$timesheetLineItemsTbody.html('');\n\n this.timesheetLineViews.forEach(function(view) {\n if (this.tsLineViewRelevantBasedOnFilter(view)) this.appendLineItemViewToTable(view);\n }.bind(this));\n\n this.$('.table').stickyCssTableHeader();\n this.$('[data-toggle=\"tooltip\"]').tooltip({container: 'body'});\n },\n\n appendNewTimesheetRowButton: function() {\n\n var newTimesheetRowButton = new UC.timesheetComponent.AddTimesheetRowButtonView({\n collection: this.collection,\n tableView: this\n });\n\n newTimesheetRowButton.render();\n\n this.$('#new-timesheet-row-btn-wrapper').html(newTimesheetRowButton.$el);\n },\n\n newTimesheetLineAdded: function(model) {\n var view = this.addLineItemView(model);\n this.timesheetLineViews.push(view);\n this.appendLineItemViewToTable(view);\n view.setFocusOnDateCell();\n },\n\n tsLineViewRelevantBasedOnFilter: function(view) {\n if(!this.modelFilters) return true;\n\n if(this.modelFilters.notAddedToInvoice) return !view.model.addedToInvoice;\n },\n\n sortTableByHeaderClick: function(e) {\n var columnFieldName = $(e.currentTarget).data('field-name');\n var columnFieldType = $(e.currentTarget).data('field-type');\n\n if (this.sortByField === columnFieldName) {\n this.toggleSortDirection()\n } else {\n this.sortByField = columnFieldName;\n this.sortByFieldType = columnFieldType;\n this.sortDirection = 'asc';\n }\n\n this.timesheetLineViews = this.sortTsLineViews();\n\n this.renderTimesheetHeaderAndLines();\n },\n\n sortTsLineViews: function() {\n return this.timesheetLineViews.sort(function(view1, view2) {\n var model1 = view1.model;\n var model2 = view2.model;\n\n var model1Id = model1.get('_id');\n var model2Id = model2.get('_id');\n\n var value1 = this.sortableValue(model1, this.sortByField, this.sortByFieldType);\n var value2 = this.sortableValue(model2, this.sortByField, this.sortByFieldType);\n\n // In order to maintain sort order on re-render, we need to have a secondary sort criteria (_id) when the primary\n // sort values are equal\n if (value1 === value2) {\n if (this.sortDirection === 'asc') {\n return model1Id < model2Id ? -1 : model1Id > model2Id ? 1 : 0;\n } else {\n return model2Id < model1Id ? -1 : model2Id > model1Id ? 1 : 0;\n }\n }\n\n if (this.sortDirection === 'asc') {\n return value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n } else {\n return value2 < value1 ? -1 : value2 > value1 ? 1 : 0;\n }\n\n }.bind(this));\n },\n\n sortableValue: function(model, sortFieldName, sortFieldType) {\n var convertedValue;\n\n switch (sortFieldType) {\n case \"date\":\n var dateString = model.get(sortFieldName) || 1;\n convertedValue = new Date(dateString);\n break;\n case \"jobSelect\":\n var jobModel = model.getAssociatedJobModel();\n\n if (jobModel) {\n convertedValue = jobModel.get('JobTitle').toLowerCase();\n } else {\n convertedValue = \"\";\n }\n\n break;\n default:\n convertedValue = model.get(sortFieldName);\n }\n\n return convertedValue;\n },\n\n toggleSortDirection: function() {\n if (this.sortDirection === 'asc') {\n this.sortDirection = 'desc';\n } else {\n this.sortDirection = 'asc';\n }\n },\n\n showSaveStatus: function() {\n return !!this.allowNewTimesheetLines;\n },\n\n appendSaveStatusIndicator: function() {\n this.$('#ts-save-status-wrapper').html(this.saveStatusIndicatorView.$el);\n },\n\n selectAllTimesheetItems: function() {\n this.selectAll = !this.selectAll;\n this.$('.select-all').toggleClass('checked');\n if (this.selectAll) {\n this.collection.models.forEach(function(model) {\n if(model.allowedToSelectLine()) {\n model.markSelected();\n }\n });\n } else {\n this.collection.models.forEach(function(model) {\n model.markUnselected();\n });\n }\n }\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetTabsView = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_tabs\"),\n\n initialize: function (opts) {\n this.isShowingCurrentTimesheetsTab = opts.tab === opts.currentTab;\n },\n\n render: function () {\n this.$el.html(this.template(this));\n }\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetTotalsView = Backbone.View.extend({\n\n tagName: 'div',\n \n id: 'timesheet-totals',\n\n className: 'inline-block grey-BG rounded-corners border-grey',\n\n template: UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_totals\"),\n\n initialize: function() {\n this.collection.on('add destroy reset change:Hours change:Rate', this.render.bind(this));\n },\n\n render: function() {\n this.$el.html(this.template(this.templateData()));\n },\n\n templateData: function() {\n return {\n totalHoursOne: this.collection.totalHoursOne(),\n totalHours: this.collection.totalHours(),\n formattedTotalFees: this.collection.formattedTotalFees()\n }\n }\n\n});\n","UC = UC || {};\nUC.timesheetComponent = UC.timesheetComponent || {};\n\nUC.timesheetComponent.TimesheetTypesDropdownView = Backbone.View.extend({\n tagName: 'span',\n\n template: UC.views.resolveHandlebarsTemplate('components/timesheets/timesheet_types_dropdown'),\n\n render: function () {\n var options = { dropdownAutoWidth: true, width: '100%' };\n\n this.$el.html(this.template({typeSelectOptions: this.typeSelectOptions()}));\n if (this.newLineItem()) {\n options.placeholder = 'Select Type';\n }\n\n this.$('select').select2(options);\n },\n\n newLineItem: function () {\n return !this.model.get('_id');\n },\n\n typeSelectOptions: function () {\n types = this.model.types;\n var output = '';\n\n for(var i = 0; i < types.length; i++) {\n if (this.model.attributes.Type === types[i].value) {\n output += ''.format(types[i].value, types[i].label)\n } else {\n output += ''.format(types[i].value, types[i].label)\n }\n }\n\n return output;\n }\n});\n","import { ClientJS } from 'clientjs'; // previous lib name is client_browser\nimport { default as Cookies } from 'js-cookie';\nimport './components/popdown.jquery'\n\n/*\n * C like string format\n */\nString.prototype.format = function() {\n var pattern = /\\{\\d+\\}/g;\n var args = arguments;\n var s = (this || '').toString();\n return s.replace(pattern, function (capture) {\n return args[capture.match(/\\d+/)];\n });\n};\n\n/*\n * Turns \"this\".splice(2, '-') into \"th-is\"\"\n */\nString.prototype.splice = function(idx, delim) {\n if (idx > this.length) {\n return this;\n } else {\n return this.slice(0, idx) + delim + this.slice(idx, this.length);\n }\n};\n\n/*\n * Turns \"This Thing\" into \"this_thing\"\n */\nString.prototype.toSnakeCase = function() {\n return this.split(\" \")\n .map(function(k) {\n return k.toLowerCase();\n })\n .join(\"_\");\n};\n\n/*\n * Turns \"this_thing\" into \"ThisThing\"\n */\nString.prototype.classify = function() {\n return this.replace(/(?:^|[-_])(\\w)?/g, function(_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n};\n\n/*\n * Turns \"my sentance\" into \"My sentance\"\n */\nString.prototype.capitalize = function(all) {\n if (all === true) {\n return this.split(\" \")\n .map(function(i) {\n return i[0].toUpperCase() + i.substring(1);\n })\n .join(\" \");\n } else {\n return this.replace(this[0], this[0].toUpperCase());\n }\n};\n\nString.prototype.isBlank = function() {\n return this.length === 0 || !this.trim();\n};\n\n// Function to check if viewport is mobile width, returns boolean\n$.fn.isMobileWidth = function() {\n return this.width() < UC.constants.minSmallScreen;\n};\n\n$.fn.isScrollable = function() {\n return this.get(0).scrollHeight > this.outerHeight();\n};\n\nUC.browser = new ClientJS();\nUC.locale = \"en\";\nUC.translations = { en: {}, es: {} };\nUC.translation_namespaces = { en: [], es: [] };\n\nUC.page = UC.page || {};\nUC.models = UC.models || {};\nUC.collections = UC.collections || {};\nUC.views = UC.views || {};\nUC.partials = UC.partials || {};\nUC.modals = UC.modals || {};\nUC.components = UC.components || {};\nUC.constants = UC.constants || {};\nUC.constants.emptySelectValue = \"##\";\nUC.constants.emptySelectText = \"--\";\nUC.constants.emptySelectItem = '';\nUC.constants.results = {\n success: \"success\",\n failure: \"failure\",\n warning: \"warning\",\n info: \"info\"\n};\n\nUC.constants.minSmallScreen = 768;\nUC.constants.minMediumScreen = 992;\n\nUC.constants.momentDateFormats = [\"M/D/YYYY\", \"MM/DD/YYYY\"];\n\nUC.constants.datepickerOptions = {\n dateFormat: \"mm/dd/yy\",\n changeMonth: true,\n changeYear: true\n};\n\nUC.views.resolveHandlebarsTemplate = function(templateName) {\n return require('./templates/' + templateName + '.hbs');\n}\n\nUC.utils = {};\n\nUC.utils.generateSlug = function (string) {\n return(\n string\n .toLowerCase()\n .replace(/^\\s+|\\s+$|\\./g, \"\")\n .replace(/\\s/g, \"-\")\n .replace(/(?![a-z0-9-_])/g, \"\")\n );\n};\n\nUC.utils.setLocale = function(locale) {\n var current_locale = UC.locale,\n namespaces = UC.translation_namespaces[current_locale];\n UC.locale = locale;\n namespaces.forEach(function(namespace) {\n UC.utils.fetchTranslations({\n resource: namespace,\n locale: locale\n });\n });\n};\n\nUC.utils.toggleMobile = function() {\n $(\"html\").hasClass(\"isMobile\")\n ? $(\"html\").removeClass(\"isMobile\")\n : $(\"html\").addClass(\"isMobile\");\n};\n\nUC.utils.fetchTranslations = function(options, callback) {\n var options = options || {},\n resource = options.resource || \"en\",\n locale = options.locale || UC.locale,\n version = options.version || \"v1\",\n data = {\n resource: resource,\n locale: locale\n };\n UC.net\n .get(\"/api/\" + version + \"/translations\", data, function(translations) {\n UC.translation_namespaces[locale] =\n UC.translation_namespaces[locale] || [];\n UC.translation_namespaces[locale].push(resource);\n UC.utils.add_translations(translations, locale);\n if (callback) {\n callback.call();\n }\n })\n .fail(function() {});\n};\n\nUC.utils.add_translations = function(translations, locale, prefix) {\n var locale = locale || UC.utils.locale;\n UC.translations[locale] = UC.translations[locale] || {};\n\n for (var translation in translations) {\n var key = translation,\n value = translations[key];\n var registryKey = prefix ? prefix + \".\" + key : key;\n var valueType = typeof value;\n if (translations.hasOwnProperty(translation)) {\n if (valueType === \"string\" || valueType === \"number\") {\n UC.translations[locale][registryKey] = value;\n } else {\n UC.utils.add_translations(value, locale, registryKey);\n }\n }\n }\n};\n\nUC.utils.translate = function(key, templateData, options) {\n var options = options || {};\n var locale = options.locale || UC.locale;\n var translation = UC.translations[locale] && UC.translations[locale][key];\n\n if (typeof translation === \"undefined\") {\n return UC.utils.translate.whenUndefined(key, locale);\n } else {\n return templateData\n ? translation.replace(/%{(\\w+)}/g, function(match, param) {\n return templateData[param] || match;\n })\n : translation;\n }\n};\n\nUC.utils.translate.whenUndefined = function(key, locale) {\n return key;\n};\n\nUC.utils.recordNesClickEvent = function(element, attributes) {\n $(element).click(function() {\n UC.utils.sendNesEvent('track_click', attributes)\n })\n};\n\nUC.utils.sendNesEvent = function (eventName, attributes) {\n if (!UC.constants.captureClientEvents) {\n return\n }\n\n var defaults = {\n user_agent: navigator.userAgent,\n referrer: window.document.referrer,\n current_url: window.location.href,\n page_tags: UC.constants.pageTags\n };\n\n if (UC.user) defaults.user_id = UC.user.id;\n if (UC.job) defaults.job_id = UC.job.id;\n if (UC.invoice) defaults.invoice_id = UC.invoice.id;\n if (UC.payment) defaults.payment_id = UC.payment.id;\n\n attributes = $.extend({}, defaults, attributes);\n\n var data = {\n eventName: eventName,\n attributes: attributes\n };\n\n if (!UC.user || !UC.user.impersonate) {\n if (window.Bugsnag) {\n Bugsnag.leaveBreadcrumb('UC.utils.sendNesEvent', {data: JSON.stringify(data)});\n }\n $.post(\"/events/client_nes_event\", data).fail(function(xhr) {\n xhr.handled = true;\n });\n }\n};\n\nUC.utils.noBackbone = function() {\n var $body = $(\"body\");\n\n // Some browsers, such as older versions of IE, do not support data attributes\n // on the body element. Google translate also seems to fail. Perhaps we\n // should try a different method?\n return !$body.data('controller') || !$body.data('action') ||\n $body.hasClass('no-backbone');\n};\n\n// method for magically pulling in components based\n// on body[data-controller] and body[data-action]\nUC.utils.initView = function(module) {\n var $body = $(\"body\");\n\n if (UC.utils.noBackbone()) return;\n\n var controller_path = $body.data(\"controller\").split(\"/\");\n\n var namespace = (module || controller_path[0] || \"\").classify();\n var controller = (controller_path[1] || \"\").classify();\n var action = $body.data(\"action\").classify();\n\n if (namespace === \"Public\") {\n // we don't scope public scripts\n namespace = \"\";\n }\n\n // controller scoped script\n var klass_controller = UC.views[\"{0}{1}\".format(namespace, controller)];\n // specific action scoped script\n var klass_action =\n UC.views[\"{0}{1}{2}\".format(namespace, controller, action)];\n\n _.each([klass_controller, klass_action], function(klass) {\n if (klass && klass.prototype instanceof Backbone.View) {\n new klass({ el: \"body\" });\n }\n });\n};\n\n// finds {keys} as `id selectors`s and selects elements on the page and set them to {value}.\nUC.utils.setSelectors = function(elements) {\n for (var element in elements) {\n if (elements.hasOwnProperty(element)) {\n elements[element] = jQuery(\"#\" + element);\n }\n }\n};\n\nUC.utils.findSelectedElement = function(select) {\n return $(select)\n .find(\"option:selected\")\n .last();\n};\n\nUC.utils.setSelectedElement = function(select, elementValue, opts) {\n opts = opts || {};\n var itemAttrForQuery = \"value\";\n var findSelector;\n\n $(select)\n .find(\"option\")\n .prop(\"selected\", false);\n\n if (opts.optionAttr) itemAttrForQuery = opts.optionAttr;\n\n findSelector = \"option[\" + itemAttrForQuery + '=\"{0}\"]';\n $(select)\n .find(findSelector.format(elementValue))\n .prop(\"selected\", \"selected\");\n};\n\nUC.utils.setSelectedElementByText = function(select, text) {\n $(select)\n .find(\"option\")\n .filter(function() {\n return $(this).html() == text;\n })\n .prop(\"selected\", \"selected\");\n};\n\nUC.utils.isEmptySelectValue = function(select) {\n return (\n UC.utils.findSelectedElement(select).val() == UC.constants.emptySelectValue\n );\n};\n\nUC.utils.anyEmptySelectValue = function(selectElements) {\n for (var i = 0, len = selectElements.length; i < len; i++) {\n if (UC.utils.isEmptySelectValue(selectElements[i])) {\n return true;\n }\n }\n\n return false;\n};\n\nUC.utils.showComponent = UC.utils.showPanel = function(panel, options) {\n var pnl = $(panel),\n defaults = {\n transition: \"none\"\n },\n opt = $.fn.extend({}, defaults, options);\n\n if (opt.transition != \"none\" && !$(\"body\").hasClass(\"notransition\")) {\n pnl.addClass(opt.transition);\n }\n\n pnl.removeClass(\"hidden hide\");\n};\n\nUC.utils.showComponents = UC.utils.showPanels = function(panels) {\n for (var i = 0, len = panels.length; i < len; i++) {\n UC.utils.showPanel(panels[i]);\n }\n};\n\nUC.utils.toggleComponents = UC.utils.togglePanels = function(panels) {\n if (panels && panels.length > 0) {\n for (var i = 0, len = panels.length; i < len; i++) {\n if (panels[i].hasClass(\"hidden\")) {\n UC.utils.showComponent(panels[i]);\n } else {\n UC.utils.hideComponent(panels[i]);\n }\n }\n }\n};\n\nUC.utils.fadeInComponent = function(component, options) {\n component.css({ display: \"none\" });\n UC.utils.showComponent(component);\n component.fadeIn(options);\n};\n\nUC.utils.viewportWidth = function() {\n return document.compatMode == \"BackCompat\"\n ? document.body.clientWidth\n : document.documentElement.clientWidth;\n};\n\nUC.utils.viewportHeight = function() {\n return document.compatMode == \"BackCompat\"\n ? document.body.clientHeight\n : document.documentElement.clientHeight;\n};\n\nUC.utils.isMobileViewPort = function() {\n return UC.utils.viewportWidth() < UC.constants.minSmallScreen;\n};\n\nUC.utils.isDesktopViewPort = function() {\n return UC.utils.viewportWidth() >= UC.constants.minMediumScreen;\n};\n\nUC.utils.hideComponent = UC.utils.hidePanel = function(panel, options) {\n var pnl = $(panel),\n defaults = {\n transition: \"none\"\n },\n opt = $.fn.extend({}, defaults, options);\n\n if (opt.transition != \"none\" && !$(\"body\").hasClass(\"notransition\")) {\n pnl.addClass(opt.transition);\n }\n\n pnl.addClass(\"hidden\");\n};\n\nUC.utils.hideComponents = UC.utils.hidePanels = function(panels) {\n for (var i = 0, len = panels.length; i < len; i++) {\n UC.utils.hidePanel(panels[i]);\n }\n};\n\nUC.utils.showConfirmModal = function(title, text, callback, options) {\n var defaults = {\n title: title,\n text: text,\n callback: callback\n },\n opt = $.fn.extend({}, defaults, options);\n UC.components.confirmModal(opt);\n};\n\nUC.utils.getParameterByName = function(name) {\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\"),\n results = regex.exec(location.search);\n return results == null\n ? \"\"\n : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n};\n\nUC.utils.scrollToElement = function(element, options) {\n var options = options || {};\n var offset = typeof options.offset !== \"undefined\" ? options.offset : 50;\n var scroll_to = $(element).offset().top - offset;\n\n // only scroll if we need to\n if (scroll_to !== $(\"body\").scrollTop()) {\n $(\"html, body\").animate({ scrollTop: scroll_to }, 500);\n\n if (typeof options.callback === \"function\") {\n setTimeout(options.callback, 500);\n }\n }\n};\n\nUC.utils.scrollToTop = function(options) {\n var offset = options ? options.offset : 50;\n\n $(\"html, body\").animate(\n {\n scrollTop: 0 - offset\n },\n 500\n );\n};\n\nUC.utils.ensureUrlProtocol = function(url) {\n return /^(https?|ftp):\\/\\//i.test(url) ? url : \"http://{0}\".format(url);\n};\n\nUC.utils.camelToUnderscore = function(str) {\n return str.replace(/([A-Z])/g, function($1) {\n return \"_\" + $1.toLowerCase();\n });\n};\n\nUC.utils.isAttorney = function() {\n return UC.user && UC.user.type == \"attorney\";\n};\n\nUC.utils.registerEnterKey = function(selector, fn) {\n function onKeyDown(e) {\n if (e.keyCode == 13) {\n fn();\n }\n }\n\n selector.bind(\"keydown\", onKeyDown);\n};\n\nUC.utils.unRegisterEnterKey = function(selector) {\n selector.unbind(\"keydown\");\n};\n\nUC.utils.recordPajEvent = function(options) {\n var kissEventName = \"paj-\" + options.eventName,\n // kiss events have hyphens, regular nes events have underscores\n nesEventName = kissEventName.replace(/-/g, \"_\"),\n properties = {},\n nesProperties = {};\n\n if (options.stageName) properties.stageName = options.stageName;\n\n if (options.jobPackage) {\n properties.packageName = options.jobPackage.package;\n properties.packageId = options.jobPackage.package_id;\n };\n\n if (options.jobLead) {\n if (options.jobLead._id) properties.jobLeadId = options.jobLead._id;\n if (options.jobLead.legalPhraseId)\n properties.legalPhraseId = options.jobLead.legalPhraseId;\n if (options.jobLead.legalAreaId)\n properties.legalAreaId = options.jobLead.legalAreaId;\n if (options.jobLead.legalTaskId)\n properties.legalTaskId = options.jobLead.legalTaskId;\n if (options.jobLead.FixedFeePackageId)\n properties.fixedFeePackageId = options.jobLead.fixedFeePackageId;\n } else if (options.jobLeadId) {\n properties.jobLeadId = options.jobLeadId;\n }\n\n if (options.legalPhraseId) properties.legalPhraseId = options.legalPhraseId;\n if (options.legalAreaId) properties.legalAreaId = options.legalAreaId;\n if (options.legalTaskId) properties.legalTaskId = options.legalTaskId;\n if (options.legalTileId) properties.legalTileId = options.legalTileId;\n if (options.selectionType) properties.selectionType = options.selectionType;\n if (options.questionId) properties.questionId = options.questionId;\n\n if (UC.constants.legalTilesHash && properties.legalTileId) {\n properties.legalTileName =\n UC.constants.legalTilesHash[properties.legalTileId].Name;\n }\n\n for (var i in properties) {\n var nesProp = UC.utils.camelToUnderscore(i).toUpperCase();\n nesProperties[nesProp] = properties[i];\n }\n\n if (UC.user && UC.user.id) properties.userId = UC.user.id;\n\n nesProperties['event_name'] = nesEventName;\n\n // TODO: Resolve data discrepancy\n // https://upcounsel.atlassian.net/browse/UC-12107\n UC.utils.sendNesEvent('track_view_paj', nesProperties);\n};\n\nUC.utils.recordGoogleAnalytics = function(hitType, opts) {\n if (typeof ga === \"function\") {\n ga(\"send\", hitType, opts);\n } else {\n console.log(\"Google analytics hasn't loaded yet...\");\n }\n};\n\nUC.utils.recordGoogleAnalyticsEvent = function(\n eventCategory,\n eventAction,\n opts\n) {\n var opts = typeof opts === \"undefined\" ? {} : opts;\n opts[\"eventCategory\"] = eventCategory;\n opts[\"eventAction\"] = eventAction;\n UC.utils.recordGoogleAnalytics(\"event\", opts);\n};\n\nUC.utils.recordGoogleAnalyticsPageView = function(pageUrl) {\n UC.utils.recordGoogleAnalytics(\"pageview\", pageUrl);\n};\n\nUC.utils.recordBookingTransaction = function(\n jobId,\n userId,\n attorneyId,\n attorneyName,\n amount\n) {\n if (typeof ga === \"function\") {\n // Send Google Analytics.js ecommerce event\n ga(\"require\", \"ecommerce\");\n ga(\"ecommerce:addTransaction\", {\n id: \"JobId_\" + jobId, // Transaction ID. Required.\n revenue: amount // Grand Total.\n });\n ga(\"ecommerce:addItem\", {\n id: \"JobId_\" + jobId, // Transaction ID. Required.\n name: attorneyName, // Product name. Required.\n sku: \"AttorneyId_\" + attorneyId, // SKU/code.\n category: \"Booked Job\", // Category or variation.\n price: amount, // Unit price.\n quantity: \"1\" // Quantity.\n });\n ga(\"ecommerce:send\");\n }\n};\n\nUC.utils.createTrackingImage = function(url) {\n new Image().src = url;\n};\n\nUC.utils.setLinksTarget = function(selector, target) {\n selector.each(function() {\n var $this = $(this);\n $this\n .data(\"orig-target\", $this.attr(\"target\") || \"\")\n .attr(\"target\", target);\n });\n};\n\nUC.utils.resetLinksTarget = function(selector) {\n selector.each(function() {\n var $this = $(this);\n $this.attr(\"target\", $this.data(\"orig-target\"));\n });\n};\n\nUC.utils.hideLoaders = function(loaders) {\n if (loaders) {\n for (var i = 0, len = loaders.length; i < len; i++) {\n loaders[i].hideLoader();\n }\n }\n};\n\nUC.utils.showLoaders = function(loaders) {\n if (loaders) {\n for (var i = 0, len = loaders.length; i < len; i++) {\n loaders[i].showLoader();\n }\n }\n};\n\n//http://stackoverflow.com/questions/4770025/how-to-disable-scrolling-temporarily\nUC.utils.preventScrolling = function(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n};\n\nUC.utils.preventScrollKeys = function(e) {\n var keys = { 37: 1, 38: 1, 39: 1, 40: 1 };\n\n if (keys[e.keyCode] && e) {\n e.preventDefault();\n return false;\n }\n};\n\nUC.utils.disableScrolling = function() {\n if (window.addEventListener)\n // older FF\n window.addEventListener(\"DOMMouseScroll\", UC.utils.preventScrolling, false);\n window.onwheel = UC.utils.preventScrolling; // modern standard\n window.onmousewheel = document.onmousewheel = UC.utils.preventScrolling; // older browsers, IE\n window.ontouchmove = UC.utils.preventScrolling; // mobile\n document.onkeydown = UC.utils.preventScrollKeys;\n};\n\nUC.utils.enableScrolling = function() {\n if (window.removeEventListener) {\n window.removeEventListener(\n \"DOMMouseScroll\",\n UC.utils.preventScrolling,\n false\n );\n }\n\n window.onmousewheel = document.onmousewheel = null;\n window.onwheel = null;\n window.ontouchmove = null;\n document.onkeydown = null;\n};\n\nUC.utils.handleGenericClick = function($this, eventName) {\n var attributes = {\n \"page-path\": window.location.pathname,\n \"button-value\": $this.attr(\"value\") || $this.text(),\n href: $this.attr(\"href\")\n };\n\n if (!eventName) {\n eventName = $this.data(\"event-name\") || \"Generic Button Click\";\n }\n\n attributes = $.extend({}, $this.data(), attributes);\n delete attributes[\"eventName\"];\n delete attributes[\"loader\"];\n UC.utils.recordKissEvent(eventName, attributes);\n};\n\nUC.fee = {};\nUC.fee.from_percent = function(amount, percent) {\n return amount * percent / 100.0;\n};\n\n$(function() {\n\n if (UC.browser.isMobile()) {\n $(\"html\").addClass(\"isMobile\");\n }\n\n $(\"html\").addClass(UC.browser.getBrowser());\n $(\"html\").addClass(UC.browser.getEngine());\n $(\"html\").addClass(UC.browser.getOS());\n\n if ($.prototype.tooltip) {\n $(\".iconHelp, .poshyme\").tooltip({container: 'body'});\n }\n\n if ($.prototype.draggable) {\n $(document).on(\"mouseover\", \".jqmWindow legend\", function(e) {\n $(\".jqmWindow\").draggable({\n handle: \"legend\",\n });\n });\n\n $(\".modal-content\").each(function(index, element) {\n var $element = $(element);\n if (!$element.hasClass(\"no-drag\")) {\n $element.draggable({\n handle: \".modal-header\",\n });\n }\n });\n }\n\n $(\".f-select\").click(function() {\n if (!$(this).hasClass(\"active\")) {\n $(\".f-select\").removeClass(\"active\");\n }\n $(this).toggleClass(\"active\");\n });\n\n window.setInterval(function() {\n if (UC.net && typeof UC.net.post === \"function\") {\n UC.net.post(\"/account/noop\", $.noop);\n }\n }, 600000);\n\n $(\".popdown\").popdown();\n\n $(\".h-nav-btn\").click(function(e) {\n e.stopPropagation();\n $(\".wrap\").toggleClass(\"offset\");\n\n UC.utils.recordKissEvent(\"Mobile - Click Nav button\");\n });\n\n $(\".h-side-nav, .mobile-filter, .jqmWindow.anchor\").click(function(e) {\n e.stopPropagation();\n });\n\n $(\"body\").click(function(e) {\n $(\".wrap\")\n .removeClass(\"offset\")\n .removeClass(\"filter-on\");\n $(\".job-nav\").removeClass(\"selected\");\n if ($(\".jqmWindow.anchor\").is(\":visible\")) {\n UC.utils.hideModal($(\".jqmWindow.anchor\"));\n }\n });\n\n $(\".verifyEmailNotificationLink\").click(function(e) {\n e.preventDefault();\n\n UC.net.post($(this).attr(\"href\"), function(result) {\n UC.utils.showNotification(result.message, UC.constants.results.success);\n });\n });\n\n UC.utils.recordKissClickEvent(\".filter-btn\", \"Mobile - Filter Button Click\");\n\n $(\"body\").on(\"click propogateTracking\", \".track-click-paj\", function(e) {\n UC.utils.handleGenericClick($(this), \"Post a Job Button Click\");\n });\n\n $(\"body\").on(\"click propogateTracking\", \".track-click\", function(e) {\n UC.utils.handleGenericClick($(this));\n });\n\n $(\".profile-image-edit\").on(\"click\", function() {\n location.href = $(this).data(\"url\");\n });\n\n $(document).delegate(\".area.disabled *\", \"click\", function(event) {\n event.preventDefault();\n event.stopPropagation();\n $(this).blur();\n return false;\n });\n\n UC.utils.listenForGoogleData();\n});\n\nwindow.UC = window.UC || {};\nUC.Components = {};\n\n$.fn.starate = function(options) {\n var opts = $.extend({}, $.fn.starate.defaults, options);\n\n this.each(function() {\n var $this = $(this),\n dataRate = $this.attr(\"data\"),\n rate = dataRate ? parseFloat(dataRate) * 20 + \"%\" : 0;\n\n $this\n .addClass(\"starate\")\n .html('
    ')\n .find(\".back\")\n .css(\"width\", rate);\n });\n};\n\n$.fn.starate.defaults = {\n className: \"starate\",\n rate: 0\n};\n\n$.fn.selectable = function(options) {\n var that = this;\n $(\"body\").click(removeActives);\n\n function removeActives() {\n that.find(\"tr\").removeClass(\"active\");\n }\n\n function onSelect(e) {\n that.find(\"tr.active\").removeClass(\"active\");\n $(e.currentTarget).addClass(\"active\");\n }\n\n return this.find(\"tr\").click(onSelect);\n};\n\n$.fn.charCounter = function(options) {\n var that = this,\n defaults = {\n countWordsInstead: false,\n label: \"Characters\",\n className: \"\",\n min: null,\n max: null,\n validityThreshold: 25,\n allowInvalid: false\n },\n opt = $.fn.extend({}, defaults, options),\n limitsText = \"\";\n\n if (opt.min || opt.max) {\n var minText = opt.min ? \"minimum {0}\".format(opt.min) : \"\",\n maxText = opt.max ? \"/{0}\".format(opt.max) : \"\";\n\n limitsText = \"{0}{1}\".format(\n maxText,\n minText != \"\" ? \" (\" + minText + \")\" : \"\"\n );\n }\n\n function wordCountOrTextLength(that) {\n var text = that.val().trim();\n return opt.countWordsInstead ? text.split(/\\s+/).length : text.length;\n }\n\n function onKeyUp() {\n var $this = $(this),\n $counter = $this.next(\".char-counter\"),\n textLength = wordCountOrTextLength($this),\n valid =\n textLength >= (opt.min || 0) && textLength <= (opt.max || Infinity),\n nearInvalid =\n textLength <= opt.min || textLength > opt.max - opt.validityThreshold;\n\n $counter[valid ? \"addClass\" : \"removeClass\"](\"valid\")\n .find(\".char-count-number\")\n .text(textLength);\n $this[nearInvalid ? \"addClass\" : \"removeClass\"](\"text-danger\");\n $counter[nearInvalid ? \"addClass\" : \"removeClass\"](\"text-danger\");\n }\n\n that.each(function() {\n var $this = $(this);\n if ($this.data(\"charCounter\")) {\n return wordCountOrTextLength($this);\n }\n\n $this.valid = function() {\n var textLength = wordCountOrTextLength($this);\n return (\n textLength >= (opt.min || 0) && textLength <= (opt.max || Infinity)\n );\n };\n\n if ($this.is(\"textarea\")) {\n var textLength = wordCountOrTextLength($this),\n valid =\n textLength >= (opt.min || 0) && textLength <= (opt.max || Infinity);\n\n $this.on(\"keyup focus countchars\", onKeyUp);\n\n if (opt.max && !opt.allowInvalid && !opt.countWordsInstead) {\n $this.attr(\"maxlength\", opt.max);\n }\n\n $(\n '
    {2}: {3}{4}
    '.format(\n opt.className,\n valid ? \"valid\" : \"\",\n opt.label,\n textLength,\n limitsText\n )\n ).insertAfter($this);\n $this.data(\"charCounter\", true);\n }\n });\n};\n\n$.fn.digits = function() {\n return this.each(function() {\n $(this).text(\n $(this)\n .text()\n .replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\")\n );\n });\n};\n\n$.fn.paginateList = function() {\n var that = this;\n\n that.each(function() {\n var $this = $(this),\n container = $this.closest(\".list-wrap\"),\n count = $this.find(\"li\").length,\n pagination = container.find(\".list-paginate\");\n\n $this.find(\"li:nth-child(-n+5)\").addClass(\"displayed\");\n UC.utils.showComponent(pagination);\n\n if (count <= 5) {\n UC.utils.hideComponent(pagination);\n } else {\n container.find(\".list-paginate-prev\").addClass(\"disabled\");\n }\n });\n\n function paginate() {\n var $this = $(this),\n container = $this.closest(\".list-wrap\"),\n displayed = container.find(\".displayed\"),\n nextItems = displayed.last().nextAll(),\n prevItems = displayed.first().prevAll(),\n items = $this.hasClass(\"list-paginate-prev\") ? prevItems : nextItems,\n hiddenItems = items.slice(0, 5),\n pagination = container.find(\".list-paginate-link\");\n\n if ($this.hasClass(\"disabled\")) {\n return;\n }\n\n pagination.removeClass(\"disabled\");\n displayed.removeClass(\"displayed\");\n hiddenItems.addClass(\"displayed\");\n\n if (items.length <= 5) {\n $this.addClass(\"disabled\");\n }\n }\n\n $(\".list-paginate-link\").click(paginate);\n};\n\nUC.utils.queryStringParams = function () {\n //http://stackoverflow.com/questions/4656843/jquery-get-querystring-from-url\n var params = {};\n var paramStrings = window.location.href\n .slice(window.location.href.indexOf(\"?\") + 1)\n .split(\"&\");\n\n for (var i = 0; i < paramStrings.length; i++) {\n var hash = paramStrings[i].split(\"=\");\n params[hash[0]] = hash[1];\n }\n\n return params;\n};\n\nUC.utils.updateQueryStringParam = function(uri, key, value) {\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\n if (uri.match(re)) {\n return uri.replace(re, \"$1\" + key + \"=\" + value + \"$2\");\n } else {\n return uri + separator + key + \"=\" + value;\n }\n};\n\nUC.utils.checklistSuccessCallback = function(itemId) {\n var $item = $(\"#\" + itemId).closest(\".js-checklist-item\"),\n $icon = $item.find(\".js-checklist-item-icon\");\n\n $icon.addClass(\"text-green\");\n $icon.removeClass(\"text-grey-15\");\n\n var completed = $(\".js-checklist-item-icon.text-green\").length;\n var total = $(\".js-checklist-item-icon\").length;\n var percent = Math.trunc(completed*100 / total);\n $(\".completed-items-counter\").text(completed);\n var $progressBar = $(\".completed-items-bar\");\n $progressBar.text(`${percent} %`);\n $progressBar.css('width', `${percent}%`);\n if (percent >= 70) {\n $progressBar.addClass('progress-bar-green')\n }\n};\n\nUC.utils.initNavBar = function() {\n new UC.partials.LawyersNavDesktop();\n new UC.partials.LawyersNavMobile();\n\n if($(\"#aQuoteCalculator\").length) {\n var quoteCalculatorModal = new UC.modals.QuoteCalculatorModal({\n el: '#modalQuoteCalculator'\n });\n\n $(\"#aQuoteCalculator\").on(\"click\", function (e) {\n quoteCalculatorModal.open();\n });\n }\n};\n\nUC.utils.sendCopyContextToKissMetrics = function(event) {\n var page_path = window.location.href;\n var selection = window.getSelection().toString().substring(0,50);\n\n if ( ( event === 'general_context_menu_triggered' && selection.length > 0 ) ||\n ( event === 'general_copy_triggered' && UC.user ) ) {\n\n var kissData = {\n length: selection.length,\n contents: selection,\n page_path: page_path\n };\n\n UC.utils.recordKissEvent(event, kissData);\n }\n};\n\nUC.utils.trackCopyAndContextMenu = function() {\n document.oncontextmenu = function () {\n UC.utils.sendCopyContextToKissMetrics('general_context_menu_triggered');\n };\n\n document.addEventListener('copy', function(e){\n UC.utils.sendCopyContextToKissMetrics('general_copy_triggered');\n });\n};\n\nUC.utils.listenForGoogleData = function(){\n var goKiss = false;\n\n if (window.gaData) {\n UC.utils.setGoogleOptimizeCookie();\n } else {\n Object.defineProperty(window, 'gaData', {\n configurable: true,\n enumerable: true,\n writeable: true,\n get: function() {\n return this._gaData;\n },\n set: function(val) {\n // When Google fills out this object, we'll check for it\n\n this._gaData = val;\n UC.utils.setGoogleOptimizeCookie();\n }\n });\n }\n};\n\nUC.utils.setGoogleOptimizeCookie = function(){\n\n if (typeof gaData === 'undefined' || Object.keys(gaData).length === 0) {\n // Google has set the object, but still waiting the internals\n return;\n }\n\n var gaProperties = Object.keys(gaData);\n var ucGoCookie = JSON.parse(Cookies.get('uc_go') || \"{}\");\n\n $.each(gaProperties, function( i, propertyId ) {\n\n if (typeof gaData[propertyId].experiments === 'undefined'){\n // experiments haven't loaded in yet\n return true;\n }\n\n var experiments = Object.keys(gaData[propertyId].experiments);\n\n $.each(experiments, function (i, experimentId) {\n var variationId = gaData[propertyId].experiments[experimentId];\n\n if (ucGoCookie[experimentId] != variationId) {\n //experiment variant either unset or changed, let's update\n\n ucGoCookie[experimentId] = variationId;\n var properties = {experimentId: experimentId, variant: variationId};\n UC.utils.recordKissEvent('optimize experiment stored', properties);\n }\n });\n });\n\n // Needs to be available to trk.upcounsel.com, WILL be also in play on Staging etc.\n Cookies.set('uc_go', JSON.stringify(ucGoCookie), { domain: '.upcounsel.com' });\n};\n","UC.CallHelpers = {\n rescheduleCall: function(scheduledCallId, jobId, bidId, attorneyId, instantAvailable, onSuccessfulSchedule){\n if (instantAvailable) {\n new UC.partials.ScheduledCallsInstant({\n attorneyId: attorneyId,\n jobId: jobId,\n bidId: bidId,\n onSuccessfulSchedule: onSuccessfulSchedule\n }).goHam();\n } else {\n new UC.modals.ScheduledCallsNew({\n attorney_id: attorneyId,\n jobId: jobId,\n onRequest: onSuccessfulSchedule\n }).render();\n }\n }\n};","UC.closeTheLoop = {};\n\nUC.closeTheLoop.handleFailure = function (xhr, addToExistingModal, showCallback, hideCallback) {\n if (!xhr || xhr.status !== 422 || !xhr.responseJSON) return;\n\n if (window.Bugsnag) {\n Bugsnag.leaveBreadcrumb('closeTheLoop failure', {responseJSON: xhr.responseJSON});\n }\n\n xhr.handled = true;\n\n if (typeof xhr.responseJSON.message === 'string') {\n UC.utils.showNotification(xhr.responseJSON.message, UC.constants.results.failure);\n return;\n }\n\n var options = {\n show_client: UC.user && UC.user.type === 'client',\n },\n eventProperties = $.extend({}, options);\n\n for (var type in xhr.responseJSON) {\n var failures = xhr.responseJSON[type].join(', ');\n options[type] = failures;\n eventProperties[type] = xhr.responseJSON[type];\n }\n\n if (addToExistingModal) {\n\n // new modals\n var $openModalBody = $('.modal.fade.in .modal-body'),\n template = UC.views.resolveHandlebarsTemplate('shared/panel_close_the_loop'),\n html = template(options);\n\n // no new modal found, grab old modal\n if ($openModalBody.length === 0) {\n $openModalBody = $('.jqmWrapper .jqmWindow .modalWrapper');\n }\n\n // only show close the loop once, add class to prevent re-showing\n if (!$openModalBody.hasClass('ctl-shown')) {\n $openModalBody.append(html);\n $openModalBody.addClass('ctl-shown');\n }\n\n } else {\n\n var $existingModal = $('#modalCloseTheLoop');\n if ($existingModal.length > 0) {\n $existingModal.modal('hide');\n $existingModal.remove();\n }\n\n var template = UC.views.resolveHandlebarsTemplate('shared/modal_close_the_loop'),\n mdl = template(options);\n\n $('body').append(mdl);\n if(typeof showCallback === 'function') {\n showCallback();\n }\n var $mdl = $('#modalCloseTheLoop');\n $mdl.modal({backdrop: 'static'});\n\n if(typeof hideCallback === 'function') {\n $mdl.on('hide.bs.modal', function() {\n hideCallback();\n });\n }\n\n //TODO not sure why the built-in BS modal dismissal and callback and are not being used\n $mdl.find('#btnCloseClosTheLoop').click(function() {\n $mdl.modal('hide');\n UC.utils.sendNesEvent('close_the_loop_modal_closed');\n })\n }\n\n eventProperties.append_to_modal = addToExistingModal;\n UC.utils.sendNesEvent('close_the_loop_message_shown', eventProperties);\n};\n","export function injectEzoicAdPlaceholders(contentSelector, maxPlaceholders, firstPlaceholderId) {\n const $content = $(contentSelector);\n const contentHeight = $content.height();\n const screenHeight = Math.max($(window).height(), 1200);\n const maxAds = Math.min(maxPlaceholders, Math.trunc(contentHeight / screenHeight));\n if (maxAds > 0) {\n const contentTop = $content.offset().top;\n const offset = contentHeight / (maxAds + 1);\n let currentOffset = offset;\n let adBlockId = firstPlaceholderId;\n let putBlocks = 0;\n\n $(`${contentSelector} p`).each(function () {\n if (putBlocks >= maxAds) {\n return;\n }\n const paragraph = $(this);\n if (paragraph.closest('table').length) {\n // skip the ad - do not inject into tables\n currentOffset = currentOffset + offset;\n putBlocks = putBlocks + 1;\n return\n }\n\n if (paragraph.offset().top - contentTop >= currentOffset) {\n paragraph.prepend(`
    `);\n currentOffset = paragraph.offset().top + offset;\n adBlockId = adBlockId + 1;\n putBlocks = putBlocks + 1;\n }\n });\n }\n}\n\nexport function findAndActivateEzoicAdPlaceholders() {\n const ezoicPlaceholderIds = _.map($('div[data-ezoic-ad-placeholder-id]'), function (div) {\n return $(div).data('ezoic-ad-placeholder-id')\n })\n if (ezoicPlaceholderIds.length) {\n window.ezstandalone = window.ezstandalone || {};\n ezstandalone.cmd = ezstandalone.cmd || [];\n ezstandalone.cmd.push(function () {\n ezstandalone.enableConsent();\n ezstandalone.define(ezoicPlaceholderIds);\n ezstandalone.enable();\n ezstandalone.display();\n })\n }\n}","export function loadFileStackScript(callback) {\n $.getScript('https://static.filestackapi.com/filestack-js/3.32.3/filestack.min.js', function () {\n if (callback) {\n callback();\n }\n });\n}\n\nexport function pickFileAndStore({fileStackApiKey, pickerOptions, storeOptions}) {\n if (!window.filestack) {\n console.log('filestack was not initialized yet, loading...')\n loadFileStackScript(function () {\n pickFileAndStore({fileStackApiKey, pickerOptions, storeOptions});\n })\n return;\n }\n\n const client = filestack.init(fileStackApiKey || UC.constants.fileStackApiKey);\n\n const options = pickerOptions || {};\n options.storeTo = storeOptions || {};\n if (!options.fromSources) {\n options.fromSources = [\n 'local_file_system',\n 'facebook',\n 'box',\n 'dropbox',\n 'googledrive',\n 'onedrive',\n 'gmail',\n 'instagram'\n ];\n }\n if (!options.maxFiles) {\n options.maxFiles = 1;\n }\n if (!options.maxSize) {\n options.maxSize = 20971520; // 20 Mb\n }\n\n client.picker(options).open();\n}\n","\n// handles floating point arithmetic accuracy for a specified precision\nUC.utils.handleFloatPrecision = function(result, precision) {\n var divisor = Math.pow(10, precision);\n return ( Math.round(result * divisor) / divisor ).toFixed(precision);\n};\n\n// handles float precision when mutliplying two numbers\nUC.utils.multiplyCurrency = function(a, b) {\n return UC.utils.handleFloatPrecision(a * b, 2);\n};\n\n// parses a string with thousanths separators into floats\nUC.utils.parseCurrency = function(value) {\n var decimal = UC.utils.currencyToFloat(value);\n return UC.utils.handleFloatPrecision(decimal, 2);\n};\n\n// formats a float back into a string for display\nUC.utils.formatCurrency = function (value, addCurrencySymbol, precision) {\n\n if (isNaN(precision)) {\n precision = 2;\n }\n\n var value = UC.utils.currencyToFloat(value);\n var currencyValue = parseFloat(value, 10).toFixed(precision);\n var negative = currencyValue < 0;\n\n if (negative) {\n currencyValue *= -1;\n currencyValue = currencyValue.toFixed(precision);\n }\n\n var pieces = currencyValue.split('.');\n var dollars = pieces[0];\n var cents = pieces.length > 1 ? '.' + pieces[1] : '';\n var rgx = /(\\d+)(\\d{3})/;\n\n // add thousands separators to dollar value\n while (rgx.test(dollars)) {\n dollars = dollars.replace(rgx, '$1' + ',' + '$2');\n }\n\n return '{0}{1}{2}{3}'.format(\n negative ? '-' : '',\n addCurrencySymbol ? '$' : '',\n dollars,\n cents\n );\n};\n\nUC.utils.stripCurrency = function (value) {\n return value.toString().replace(/[,$]/g, '');\n};\n\nUC.utils.currencyToFloat = function(value) {\n return parseFloat(UC.utils.stripCurrency(value)) || 0.0;\n};\n","!function() {\n UC.utils.initIntroJs = function(steps) {\n\n for (var i = 0, len = steps.length; i < len; i++) {\n var step = steps[i];\n\n if (step.element.length > 0) {\n step.element.attr({\n 'data-step': i + 1,\n 'data-intro': steps[i].text,\n 'data-position': steps[i].position\n });\n step.element.addClass('introjs');\n }\n }\n\n return introJs().start();\n };\n}();\n\n","!function() {\n \n // This check should be in global UC where we define. Now it is everywhere. Until we figure it out...\n var isTouchDevice = (\"ontouchstart\" in window) || window.DocumentTouch && document instanceof DocumentTouch;\n\n UC.utils.initRatingDimensions = function(el) {\n var $el = el ? $(el) : $('.rating-static-wrap');\n\n $el.popover({\n trigger: isTouchDevice ? 'click' : 'hover',\n container: 'body',\n html: true,\n sanitize: false,\n placement: function() { return $(window).width() < 975 ? 'top' : 'right auto'; },\n content: function() {\n return $(this).find('.review-dimensions-popover').html();\n }\n });\n };\n}();\n","!function() {\n\n function mergeDefaultAttributes(attrs) {\n var defaults = {\n tracking_code: UC.tracking_code,\n user_agent: navigator.userAgent,\n referrer: window.document.referrer,\n url: window.location.href,\n page_tags: UC.constants.pageTags,\n session_id: UC.sessionId\n };\n\n // only add if available\n if (UC.job) defaults.jobId = UC.job.id;\n if (UC.user) defaults.userId = UC.user.id;\n\n // merge, but allow 'attrs' to override the defaults\n return $.extend(defaults, attrs);\n }\n\n function removeObjectReference(attrs) {\n Object.keys(attrs).forEach(function(a) {\n if (Object.prototype.toString.call(attrs[a]) === \"[object Object]\" && attrs[a] !== null) {\n attrs[a] = ''\n }\n });\n\n return attrs\n }\n\n UC.utils.recordKissEvent = function (eventName, properties) {\n var nesAttrs = mergeDefaultAttributes(properties)\n\n /**\n * TODO: Resolve data discrepancy\n * https://upcounsel.atlassian.net/browse/UC-12107\n */\n var parsedAttrs = removeObjectReference(nesAttrs)\n parsedAttrs['event_name'] = eventName\n UC.utils.sendNesEvent('track_event', parsedAttrs)\n }\n\n /**\n * @param {String/Element} element The id (btnClick) or class (.btnClick) or element\n * @param {String} eventName The name of the event\n * @param {Object} properties Dictionary of additional properties\n */\n UC.utils.recordKissClickEvent = function (element, eventName, properties) {\n var nesAttrs = mergeDefaultAttributes(properties)\n\n /**\n * TODO: Resolve data discrepancy\n * https://upcounsel.atlassian.net/browse/UC-12107\n */\n var parsedAttrs = removeObjectReference(nesAttrs)\n parsedAttrs['event_name'] = eventName\n UC.utils.recordNesClickEvent(element, parsedAttrs)\n };\n}();\n","UC.net = {};\n\nUC.net.invoke = function (method, path, data, callback, options) {\n options = options || {};\n callback = callback || $.noop;\n\n var loaders = options.loaders ? options.loaders : null;\n var params = {\n url: path,\n type: method,\n data: data,\n headers: { accept: 'application/json' },\n success: function (response) {\n\n if (response && response.url) {\n location.href = response.url;\n } else if (response && response.result) {\n // old skool. deprecated. don't use.\n if (response.result == 'success') {\n callback(null, response.message);\n } else {\n callback(response.message, response.result);\n }\n } else {\n callback(response);\n }\n }\n };\n\n if (loaders) {\n UC.utils.showLoaders(loaders);\n params.complete = function() { UC.utils.hideLoaders(loaders); };\n delete options.loaders;\n }\n\n if (method.toLowerCase() !== 'get') {\n params.contentType = 'application/json';\n params.data = JSON.stringify(data);\n } else {\n params.cache = false // otherwise you woth get success callback when page is taken from browser cache (http 304)\n }\n\n params = $.extend(params, options);\n\n return $.ajax(params);\n};\n\n$.each(['get', 'post', 'put', 'destroy'], function(i, type) {\n var method = type;\n\n if (type === 'destroy') method = 'delete';\n\n UC.net[type] = function(path, data, callback, options) {\n\n // Shift arguments if data argument was omitted\n if ($.isFunction(data)) {\n options = callback;\n callback = data;\n data = undefined;\n }\n\n return UC.net.invoke(method, path, data, callback, options);\n }\n});\n\n// default response to display a notification if a message\nUC.net.onDefaultResponse = function (err, message) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n else {\n UC.utils.showNotification(message, UC.constants.results.success);\n }\n};\n\n// our magical global ajax error handler\n$(document).ajaxError(function (e, xhr, settings, error) {\n\n if (xhr.status >= 400 && !xhr.handled && error !== 'abort') {\n var data = xhr.responseJSON;\n var message = \"An error occurred. Please try again later.\";\n\n if (data && data.message) {\n message = data.message;\n }\n\n if (data && data.url) {\n location.href = data.url;\n return;\n }\n\n UC.utils.showNotification(message, UC.constants.results.failure);\n console.warn(message)\n }\n});\n","!function() {\n\n UC.utils.showNotificationSuccess = function(message, timeout) {\n UC.utils.showNotification(message, UC.constants.results.success, timeout);\n };\n\n UC.utils.showNotification = function(message, result, timeout){\n var color = null;\n var template = UC.views.resolveHandlebarsTemplate('shared/notification');\n var allow_close = (timeout == 0);\n var timeout = typeof timeout === 'undefined' ? 7000 : timeout;\n\n switch(result){\n case UC.constants.results.success:\n color = 'success';\n break;\n case UC.constants.results.failure:\n color = 'danger';\n break;\n case UC.constants.results.warning:\n color = 'warning';\n break;\n default:\n color = 'info';\n break;\n }\n\n var $notification = $(template({\n color: color,\n message: message,\n allow_close: allow_close\n }));\n\n var $oldNotifs = $('.notify-msg-container');\n if ($oldNotifs.length > 0) {\n $oldNotifs.fadeOut(100, function() {\n $(this).remove();\n $notification.hide().appendTo('body').fadeIn(100);\n });\n } else {\n $notification.hide().appendTo('body').fadeIn(100);\n }\n\n if(timeout > 0){\n setTimeout(function() {\n $notification.remove();\n }, timeout);\n }\n };\n\n UC.utils.hideNotifications = function(){\n var $notification = $('.notify-msg-container');\n $notification.remove();\n };\n\n $(function() {\n\n // init close button and set close timeout on\n // notifications that rendered as flash messages\n $('.notify-msg-container').each(function() {\n var $this = $(this);\n var $close = $this.find('.notify-close');\n var notifyTime = parseInt($(this).data('time'), 10);\n\n if ($close.length > 0) {\n $close.click(function() {\n $this.remove();\n });\n }\n\n if(!isNaN(notifyTime) && notifyTime > 0){\n setTimeout(function() { $this.remove(); }, notifyTime * 1000);\n }\n });\n });\n}();\n","UC.PajHelpers = {\n isUserRestricted: function() {\n if (!UC.user) {\n return false;\n }\n if (UC.user.collections === true) {\n this.showInCollections();\n return true;\n } else if (UC.user.payment_dispute) {\n this.showPaymentDisputeClientRedirect();\n return true;\n } else {\n return false;\n }\n },\n\n showInCollections: function() {\n function onConfirm(response) {\n $('.btn.btn-success').buttonLoader().showLoader();\n if (response) {\n location.href = url;\n }\n };\n\n var modalOptions = { dismissOnYes: false, yesText: 'OK', noText: '' },\n title = 'Please Pay Your Outstanding Invoices',\n url = '/dashboard#awaiting-payment-invoices',\n text = \"Sorry, you cannot publish a new job in the marketplace until you\" +\n \" have submitted payment for your outstanding invoice(s). You can\" +\n \" view and pay your outstanding invoices from the Dashboard.

    If you have any questions, please contact\" +\n \" our Marketplace Team at \" +\n \"marketplace@upcounsel.com.\";\n\n UC.utils.recordKissEvent('collections_client_notification_shown_paj_page', {userId: UC.user.id});\n UC.utils.showConfirmModal(title, text, onConfirm, modalOptions);\n },\n\n showPaymentDisputeClientRedirect: function() {\n new UC.components.PaymentDisputeClientRedirectModal().show();\n },\n};\n","UC.payments = {\n onTokenizeCardCallback: $.noop,\n onTokenizeBankAccountCallback: $.noop\n};\n\nUC.payments.createCreditCardData = function (data) {\n return {\n number: data.cardNumber,\n cvc: data.cvc,\n exp_month: data.expireMonth,\n exp_year: data.expireYear,\n name: data.nameOnCard,\n address_line1: data.address,\n address_city: data.city,\n address_state: data.country && data.country == 'USA' ? data.state : null,\n address_zip: data.zip,\n address_country: data.country\n }\n};\n\nUC.payments.onTokenizeCard = function (status, response) {\n if (response.error) {\n var errorMessage = response.error.message || \"Unknown payment error\";\n UC.utils.sendNesEvent('payments_error', {ERROR: errorMessage + \": \" + JSON.stringify(response.error)});\n UC.payments.onTokenizeCardCallback(errorMessage);\n }\n else {\n UC.payments.onTokenizeCardCallback(null, response.id, response.card);\n }\n};\n\nUC.payments.tokenizeCard = function (creditCardData, callback) {\n UC.payments.onTokenizeCardCallback = callback;\n Stripe.card.createToken(creditCardData, UC.payments.onTokenizeCard);\n};\n\nUC.payments.onTokenizeBankAccount = function (status, response) {\n if (response.error) {\n UC.utils.sendNesEvent('payments_error', {ERROR: response.error.message});\n UC.payments.onTokenizeBankAccountCallback(response.error.message);\n }\n else {\n UC.payments.onTokenizeBankAccountCallback(null, response.id);\n }\n};\n\nUC.payments.tokenizeBankAccount = function (accountData, callback) {\n UC.payments.onTokenizeBankAccountCallback = callback;\n accountData.currency = accountData.currency || 'USD';\n Stripe.bankAccount.createToken(accountData, UC.payments.onTokenizeBankAccount);\n};\n\nUC.payments.validateCardNumber = function (cardNumber) {\n return Stripe.card.validateCardNumber(cardNumber);\n};\n\nUC.payments.validateSecurityCode = function (code) {\n return Stripe.card.validateCVC(code);\n};\n\nUC.payments.validateRoutingNumber = function (routingNumber, country) {\n return Stripe.bankAccount.validateRoutingNumber(routingNumber, country);\n};\n\nUC.payments.validateBankAccountNumber = function (accountNumber, country) {\n return Stripe.bankAccount.validateAccountNumber(accountNumber, country);\n};\n\nUC.payments.formatRoutingNumber = function ( routingNumber, country) {\n routingNumber = routingNumber ? routingNumber.trim() : '';\n switch (country) {\n case 'US':\n return routingNumber.replace(/[^\\w\\s]/gi, '');\n case 'CA':\n routingNumber = routingNumber.replace(/[^\\w\\s]/gi, '');\n if (routingNumber.length >= 5) {\n return routingNumber.splice(5, '-');\n } else {\n return routingNumber;\n }\n default:\n return routingNumber;\n }\n};\n","/*\n * Javascript Diff Algorithm\n * By John Resig (http://ejohn.org/)\n * Modified by Chu Alan \"sprite\"\n *\n * Released under the MIT license.\n *\n * More Info:\n * http://ejohn.org/projects/javascript-diff-algorithm/\n */\n\n !function() {\n\n function escape(s) {\n var n = s;\n n = n.replace(/&/g, \"&\");\n n = n.replace(//g, \">\");\n n = n.replace(/\"/g, \""\");\n\n return n;\n }\n \n function randomColor() {\n return \"rgb(\" + (Math.random() * 100) + \"%, \" +\n (Math.random() * 100) + \"%, \" +\n (Math.random() * 100) + \"%)\";\n }\n\n function diff( o, n ) {\n var ns = new Object();\n var os = new Object();\n\n for ( var i = 0; i < n.length; i++ ) {\n if ( ns[ n[i] ] == null )\n ns[ n[i] ] = { rows: new Array(), o: null };\n ns[ n[i] ].rows.push( i );\n }\n\n for ( var i = 0; i < o.length; i++ ) {\n if ( os[ o[i] ] == null )\n os[ o[i] ] = { rows: new Array(), n: null };\n os[ o[i] ].rows.push( i );\n }\n\n for ( var i in ns ) {\n if ( ns[i].rows.length == 1 && typeof(os[i]) != \"undefined\" && os[i].rows.length == 1 ) {\n n[ ns[i].rows[0] ] = { text: n[ ns[i].rows[0] ], row: os[i].rows[0] };\n o[ os[i].rows[0] ] = { text: o[ os[i].rows[0] ], row: ns[i].rows[0] };\n }\n }\n\n for ( var i = 0; i < n.length - 1; i++ ) {\n if ( n[i].text != null && n[i+1].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&\n n[i+1] == o[ n[i].row + 1 ] ) {\n n[i+1] = { text: n[i+1], row: n[i].row + 1 };\n o[n[i].row+1] = { text: o[n[i].row+1], row: i + 1 };\n }\n }\n\n for ( var i = n.length - 1; i > 0; i-- ) {\n if ( n[i].text != null && n[i-1].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&\n n[i-1] == o[ n[i].row - 1 ] ) {\n n[i-1] = { text: n[i-1], row: n[i].row - 1 };\n o[n[i].row-1] = { text: o[n[i].row-1], row: i - 1 };\n }\n }\n\n return { o: o, n: n };\n }\n\n UC.utils.diffString = function( o, n ) {\n o = o.replace(/\\s+$/, '');\n n = n.replace(/\\s+$/, '');\n\n var out = diff(o == \"\" ? [] : o.split(/\\s+/), n == \"\" ? [] : n.split(/\\s+/) );\n var str = \"\";\n\n var oSpace = o.match(/\\s+/g);\n if (oSpace == null) {\n oSpace = [\"\\n\"];\n } else {\n oSpace.push(\"\\n\");\n }\n var nSpace = n.match(/\\s+/g);\n if (nSpace == null) {\n nSpace = [\"\\n\"];\n } else {\n nSpace.push(\"\\n\");\n }\n\n if (out.n.length == 0) {\n for (var i = 0; i < out.o.length; i++) {\n str += '' + escape(out.o[i]) + oSpace[i] + \"\";\n }\n } else {\n if (out.n[0].text == null) {\n for (n = 0; n < out.o.length && out.o[n].text == null; n++) {\n str += '' + escape(out.o[n]) + oSpace[n] + \"\";\n }\n }\n\n for ( var i = 0; i < out.n.length; i++ ) {\n if (out.n[i].text == null) {\n str += '' + escape(out.n[i]) + nSpace[i] + \"\";\n } else {\n var pre = \"\";\n\n for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {\n pre += '' + escape(out.o[n]) + oSpace[n] + \"\";\n }\n str += \" \" + out.n[i].text + nSpace[i] + pre;\n }\n }\n }\n\n return str;\n }\n\n}();\n","UC.utils.validateObjectId = function (id) {\n var re = /^[a-f0-9]{24}$/i;\n return re.test(id);\n};\n\nUC.utils.validateEmail = function (email) {\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test((email || '').trim());\n};\n\nUC.utils.validatePassword = function (password) {\n return password.length >= UC.constants.minPasswordLength;\n};\n\nUC.utils.validateName = function (name) {\n return /^[A-Za-z'\\s-]+$/.test(name);\n};\n\nUC.utils.validatePhone = function (phone) {\n\n if (!/^[0-9\\.)(+\\s-]{7,15}.*$/.test(phone)) {\n return false;\n } else {\n phone = phone.replace(/[\\.)(+\\s-]+/g, '');\n // avoid extension for client-side validation\n phone = phone.split(';')[0].split('#')[0].split(['ext'])[0].split('x')[0];\n\n if (!/^\\d{7,15}$/.test(phone)) {\n return false;\n }\n }\n\n return true;\n};\n\nUC.utils.validateUrl = function (url) {\n var re = /^(https?|ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i\n return re.test(url);\n};\n\nUC.utils.urlIncludedInText = function (text) {\n var re = /^.*([a-z])?(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?.*$/ig\n return re.test(text);\n};\n\nUC.utils.validatePositiveNumber = function (number) {\n return /^[1-9]([0-9]*)?$/.test(number);\n};\n\nUC.utils.validateZipCode = function (zip, countryCode) {\n switch (countryCode) {\n case 'CA':\n return /(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/.test(zip)\n break;\n default:\n // default regex is for US zip codes\n return /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(zip)\n break;\n }\n};\n\nUC.utils.validateDate = function (dateString) {\n var date = moment(dateString, UC.constants.momentDateFormats, true);\n return date.isValid();\n};\n\nUC.utils.validateAddressAjax = function (options) {\n\n if (options.address.ZipCode || options.address.ZipCode == '') {\n if (UC.utils.validateZipCode(options.address.ZipCode)) {\n var path = '/account/validate_address';\n UC.net.post(path, {address: options.address}, function (data) {\n UC.utils.onValidateAddressAjax(data.valid, options);\n });\n } else {\n UC.utils.onValidateAddressAjax(false, options);\n }\n } else {\n if (options.address.City == '' || options.address.CountryCode == '##' || options.address.CountryCode == '') {\n UC.utils.onValidateAddressAjax(false, options);\n } else {\n UC.utils.onValidateAddressAjax(true, options);\n }\n }\n};\n\nUC.utils.onValidateAddressAjax = function (valid, options) {\n\n if (typeof options.callback === 'function') {\n options.callback(response)\n }\n\n if (typeof options.errors === 'object') {\n if (!valid) {\n var errors = [];\n if (options.address.ZipCode || options.address.ZipCode == '') {\n if (options.errors.ZipCode) {\n errors.push(options.errors.ZipCode);\n }\n } else {\n if (options.address.City == '' && options.errors.City) {\n errors.push(options.errors.City);\n }\n\n if ((options.address.CountryCode == '##' || options.address.CountryCode == '') && options.errors.CountryCode) {\n errors.push(options.errors.CountryCode);\n }\n }\n if (errors.length > 0 && UC.constants.pageName === 'register') UC.utils.showValidationErrors(errors, {className: 'input-container'});\n if (errors.length > 0 && UC.constants.pageName !== 'register') UC.utils.showValidationErrors(errors);\n }\n }\n\n if (typeof options.dfd === 'object') {\n if (valid) {\n options.dfd.resolve();\n } else {\n options.dfd.reject();\n }\n }\n};\n\nUC.utils.clearValidationErrors = function (className, $scope) {\n $scope = $scope || $('body');\n $scope.find('.{0}'.format(className || 'row')).removeClass('error has-error');\n};\n\nUC.utils.resetValidationErrors = function($scope) {\n $scope = $scope || $(\"body\");\n $(\".has-error\", $scope).removeClass(\"has-error\");\n $(\".error-message\", $scope).remove();\n};\n\nUC.utils.hideValidationErrors = function (className) {\n UC.utils.clearValidationErrors(className);\n $('.{0}'.format(className || 'row')).find('.error-message').text('');\n};\n\n// function options:\n// [optional] scrollToFirst: scroll to first field with a validation error\n// [optional] className: the class of the element to show the validation error message in for all elements, defaults to '.row'\n//\n// individual error options:\n// element: jQuery object for the field in question\n// [optional] text: the error message to display for invalid input\n// [optional] className: the class of the element to show the validation error message in, defaults to '.row'\n// }\n\nUC.utils.showValidationErrors = function (errors, options) {\n if (!errors || errors.length === 0) {\n return;\n }\n\n var options = options || {};\n var scrollToFirst = options.scrollToFirst;\n var defaultClass = options.className ? options.className : 'row';\n var $firstContainer = null;\n\n for (var i = 0, len = errors.length; i < len; i++) {\n var error = errors[i];\n var className = error.className || defaultClass;\n var container = error.element.closest('.{0}'.format(className));\n\n if (!$firstContainer) {\n $firstContainer = container;\n }\n\n if (error.text) {\n\n var $errorMessage = container.find('.error-message');\n\n if ($errorMessage.length < 1) {\n $errorMessage = $(\"
    \");\n error.element.parent().append($errorMessage);\n }\n\n $errorMessage.text(error.text);\n }\n container.addClass('has-error');\n }\n\n if (scrollToFirst && $firstContainer.is(':visible')) {\n UC.utils.scrollToElement($firstContainer);\n }\n};\n\n// function options:\n// [optional] errorClassName: the class of the element to show the validation error message in, defaults to '.form-group'\n// This can be overridden at the field level\n// [optional] scope: scope to clear validation errors on\n// field options:\n// element: jQuery object or selector for the field\n// [optional] type: text, select, date, email, etc; can be inferred, defaults to 'text' otherwise\n// [optional] errorMessage: the error message to display for invalid input\n// [optional] errorClassName: the class of the element to show the validation error message in, defaults to '.form-group'\n// [optional] invalidValues: an array of values to raise a validation error for, in addition the the basic presence/validity checks\n// [optional] validator: a custom validation function, must return true for valid or false for invalid\n// [optional] required: defaults to true\n//\n// If only a jquery Object is provided, the field is assumed to be required, use\n// a default validator, be type text, have no invalid values (other than ''),\n// and display no error message text.\nUC.utils.validateFields = function (fields, options) {\n var defaults = {\n errorClassName: 'form-group'\n };\n\n var options = $.extend(defaults, options);\n var errors = [];\n\n if (!$.isArray(fields)) {\n fields = [fields];\n }\n\n $.each(fields, function (i, field) {\n\n // ensure we have a jQuery selector\n field.element = $(field.element);\n\n var errorMessage = field.errorMessage || field.element.data(\"errorMessage\");\n var errorClassName = field.errorClassName || 'form-group';\n\n if (!UC.utils.validateField(field)) {\n errors.push({\n element: field.element,\n text: errorMessage,\n className: errorClassName\n });\n }\n });\n\n UC.utils.clearValidationErrors(options.errorClassName, options.scope);\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {\n scrollToFirst: options.scrollToFirst,\n className: options.errorClassName\n });\n\n return false;\n } else {\n return true;\n }\n};\n\nUC.utils.validateField = function (field) {\n var type = field.type || UC.utils.determineFieldType(field);\n var value;\n // If required is not explicitly specified, assume it is true.\n var required = (field.required === true || field.required === undefined)\n\n if (field.element.length !== 1 && type !== 'radio') {\n throw new Error('Each non-radio field element must resolve to one DOM object, {0} resolved to {1}'.format(field.element.selector, field.element.length));\n }\n\n if (typeof field.validator === 'function') {\n return field.validator.call(null, field);\n } else {\n if (type === 'select') {\n value = UC.utils.findSelectedElement(field.element).val();\n } else if (type === 'radio') {\n // value = field.element.find(':checked').val();\n // horrible hack\n value = $('{0}:checked'.format(field.element.selector)).val();\n } else if (type === 'checkbox') {\n if (field.element[0].checked) {\n value = true;\n }\n } else {\n value = field.element.val().trim();\n }\n\n if (value === '' || value === undefined || (type === 'select' && value === UC.constants.emptySelectValue)) {\n return required === false;\n } else if (_.contains(field.invalidValues, value)) {\n return false;\n } else {\n switch (type) {\n case 'date':\n return UC.utils.validateDate(value);\n break;\n case 'email':\n return UC.utils.validateEmail(value);\n break;\n case 'phone':\n return UC.utils.validatePhone(value);\n break;\n case 'url':\n return UC.utils.validateUrl(value);\n break;\n case 'password':\n return UC.utils.validatePassword(value);\n break;\n case 'positive-number':\n return UC.utils.validatePositiveNumber(value);\n default:\n return true;\n break;\n }\n }\n }\n};\n\n// Type can be specified either directly in the call to validateFields, specified as\n// data-field-type on the html element, or inferred from the html element's type.\n// The default assumption is that the element is a plain text field.\nUC.utils.determineFieldType = function (field) {\n if (field.element.length < 1) {\n throw new Error('Element type cannot be determined for the empty selector {0}'.format(field.element.selector));\n }\n\n var rawElement = field.element[0];\n\n if (rawElement.dataset.fieldType) {\n return rawElement.dataset.fieldType;\n } else {\n switch (rawElement.type) {\n case 'select-one':\n return 'select';\n break;\n case 'select-multiple':\n return 'select';\n break;\n case 'radio':\n return 'radio';\n break;\n case 'checkbox':\n return 'checkbox';\n break;\n default:\n return 'text';\n break;\n }\n }\n};\n","UC.views.EnterpriseInvoicesShow = Backbone.View.extend({\n initialize: function() {\n this.$('.price-range').each(function() {\n $(this).tooltip({\n title: 'See details below',\n container: 'body',\n placement: 'right auto'\n });\n });\n }\n});\n","UC.views.EnterprisePaymentsNew = Backbone.View.extend({\n initialize: function() {\n new UC.components.PaymentInfo({el: $('body')});\n }\n});\n","UC.partials.AddressForm = Backbone.View.extend({\n\n events: {\n 'click #toggleInternationalPanel' : 'toggleInternationalPanel',\n 'click #toggleZipCodePanel' : 'toggleZipCodePanel'\n },\n\n routes: {\n validZipCode: '/account/valid_zip_code/'\n },\n\n initialize: function(options) {\n this.$zip = this.$el.find('#txtZipCode');\n this.$country = this.$el.find('#selectCountry');\n this.$city = this.$el.find('#txtCity');\n this.$panelInternationalAddress = this.$el.find('#panelInternationalAddress');\n this.$panelZipCodeAddress = this.$el.find('#panelZipCodeAddress');\n\n if (this.$zip.val() || !this.$city.val()) {\n this.toggleZipCodePanel();\n this.onTxtZipCodeBlur();\n } else {\n this.toggleInternationalPanel();\n }\n },\n\n toggleZipCodePanel: function (e) {\n if (e) e.preventDefault();\n UC.utils.hidePanel(this.$panelInternationalAddress);\n UC.utils.showPanel(this.$panelZipCodeAddress);\n },\n\n toggleInternationalPanel: function (e) {\n if (e) e.preventDefault();\n UC.utils.hidePanel(this.$panelZipCodeAddress);\n UC.utils.showPanel(this.$panelInternationalAddress);\n },\n\n onTxtZipCodeBlur: function (e, dfd) {\n if (this.$panelZipCodeAddress.is(':visible')) {\n var zipCode = this.$zip.val();\n var error = {\n className: 'form-group',\n element: this.$zip,\n text: 'Please enter a valid zip code'\n };\n\n this.validZipCode = false;\n\n if (UC.utils.validateZipCode(zipCode)) {\n this.checkZipCodeValid(zipCode, dfd).fail(function() {\n UC.utils.showValidationErrors([error], {scrollToFirst: false});\n if (dfd) dfd.resolve();\n });\n } else {\n UC.utils.showValidationErrors([error], {scrollToFirst: false});\n if (dfd) dfd.resolve();\n }\n } else {\n this.validZipCode = true;\n if (dfd) dfd.resolve();\n }\n },\n\n checkZipCodeValid: function (zipCode, dfd) {\n return UC.net.get(this.routes.validZipCode + zipCode, function (data) {\n this.onCheckZipCodeValid(data, dfd);\n }.bind(this));\n },\n\n onCheckZipCodeValid: function (data, dfd) {\n UC.utils.clearValidationErrors('row-zipcode');\n this.validZipCode = true;\n\n this.address = {\n ZipCode: data.zip.ZipCode,\n City: data.zip.CityName,\n State: data.zip.StateAbbr,\n CountryCode: 'USA'\n }\n\n if (dfd) dfd.resolve();\n },\n\n getAddress: function() {\n return this.address;\n },\n\n validate: function(dfd) {\n this.address = {};\n\n if (this.$panelZipCodeAddress.is(':visible')) {\n this.onTxtZipCodeBlur(null, dfd);\n } else {\n this.address.CountryCode = this.$country.val();\n this.address.City = this.$city.val().trim();\n var errors = [];\n\n if (!this.address.City) {\n errors.push({\n className: 'form-group', \n element: this.$city, \n text: 'Please enter a city'\n });\n }\n\n if (!this.address.CountryCode || this.address.CountryCode === '##') {\n errors.push({\n className: 'form-group', \n element: this.$country, \n text: 'Please enter a country'\n });\n }\n\n UC.utils.showValidationErrors(errors);\n if (errors.length > 0) {\n dfd.reject();\n } else {\n dfd.resolve();\n }\n }\n }\n\n});\n","UC.partials.BankAccountForm = Backbone.View.extend({\n\n events: {\n 'click #aSecurityInfo' : 'showSecurityInfo'\n },\n\n initialize: function(options) {\n this.payout = !!options.payout;\n this.btnLoader = this.$el.find('#btnSaveBankAccount').buttonLoader();\n this.$el.find('select').select2();\n this.$el.submit(this.submit.bind(this));\n\n this.$firstName = this.$el.find('#txtFirstName');\n this.$lastName = this.$el.find('#txtLastName');\n this.$accountNumber = this.$el.find('#txtAccountNumber');\n this.$country = this.$el.find('#selectAccountCountry');\n this.$routingNumber = this.$el.find('#txtRoutingNumber');\n this.$accountType = this.$el.find('#selectBankAccountType');\n this.$agreeToTermsWidgets = this.$el.find('.js-agreeToTermsWidget');\n this.$agreeToTermsCheckboxes = this.$el.find('.js-agreeToTermsCheckbox');\n this.$agreeToTermsDates = this.$el.find('.js-agreeToTermsDate');\n },\n\n isAgreeToTermsChecked: function() {\n var isApplicable = this.$agreeToTermsWidgets.length;\n var isChecked = this.$agreeToTermsCheckboxes.filter(\":checked\").length;\n var isAgreedToPreviously = this.$agreeToTermsDates.length;\n\n if(isApplicable) {\n return isChecked || isAgreedToPreviously;\n } else {\n return true;\n }\n },\n\n submit: function(e) {\n e.preventDefault();\n UC.utils.clearValidationErrors('form-group');\n\n var errors = [];\n var firstName = this.$firstName.val();\n var lastName = this.$lastName.val();\n var accountNumber = this.$accountNumber.val();\n var country = this.$country.val();\n var routingNumber = UC.payments.formatRoutingNumber(this.$routingNumber.val(), country);\n var accountType = this.$accountType.val();\n var isAgreeToTermsChecked = !!this.isAgreeToTermsChecked();\n\n if (firstName == '') {\n errors.push({\n className: 'form-group', \n element: this.$firstName, \n text: 'Please provide first name'\n });\n }\n\n if (lastName == '') {\n errors.push({\n className: 'form-group', \n element: this.$lastName, \n text: 'Please provide last name'\n });\n }\n\n if (!UC.payments.validateRoutingNumber(routingNumber, country)) {\n errors.push({\n className: 'form-group', \n element: this.$routingNumber, \n text: 'Invalid routing number'\n });\n }\n\n if (!UC.payments.validateBankAccountNumber(accountNumber, country)) {\n errors.push({\n className: 'form-group', \n element: this.$accountNumber, \n text: 'Invalid account number'\n });\n }\n\n if (!isAgreeToTermsChecked) {\n errors.push({ element: this.$agreeToTermsCheckboxes });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: \"form-group\"});\n return;\n }\n\n this.btnLoader.showLoader();\n\n UC.payments.tokenizeBankAccount({\n account_holder_name: '{0} {1}'.format(firstName, lastName),\n account_number: accountNumber,\n routing_number: routingNumber,\n country: country,\n account_holder_type: accountType\n }, this.saveBankAccount.bind(this));\n },\n\n saveBankAccount: function(err, token) {\n if (err) {\n this.btnLoader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n var data = {\n token: token,\n type: 'bank_account',\n payout: UC.utils.isAttorney() && this.payout,\n isAgreeToTermsChecked: !!this.isAgreeToTermsChecked(),\n nextUrl: UC.constants.nextUrl,\n redirectSuccess: true\n };\n\n UC.net.post('/account/save_payment_method', data).fail(function() {\n this.btnLoader.hideLoader();\n }.bind(this));\n }\n },\n\n showSecurityInfo: function (e) {\n e.preventDefault();\n $('#modal-account-security').modal('show');\n }\n \n});\n","UC.partials.CreditCardAuthorizationModal = Backbone.View.extend({\n\n el: '#payment-authorization-modal',\n\n events: {\n 'click #btnPaymentAuthorizationAgreed' : 'onAgreeClicked',\n 'input #signatureInput' : 'validateSignature',\n 'hidden.bs.modal': 'onDismissed'\n },\n\n initialize: function(options) {\n this.agreedCallback = options.agreedCallback;\n this.dismissedCallback = options.dismissedCallback;\n this.$button = $('#btnPaymentAuthorizationAgreed');\n this.$signature = $('#signatureInput');\n this.agreed = false;\n },\n\n show: function(cardDetails) {\n this.agreed = false;\n\n this.$el.find('.authorization-form-card-type').text(\n cardDetails.funding.charAt(0).toUpperCase() + cardDetails.funding.slice(1) + ' Card'\n )\n this.$el.find('.authorization-form-card-brand').text(cardDetails.brand);\n this.$el.find('.authorization-form-card-number').text(cardDetails.number);\n this.$el.find('.authorization-form-card-cvc').text(cardDetails.cvc);\n this.$el.find('.authorization-form-card-exp-month').text(cardDetails.exp_month);\n this.$el.find('.authorization-form-card-exp-year').text(cardDetails.exp_year);\n this.$el.find('.authorization-form-card-holder').text(cardDetails.name);\n\n this.$el.find('.authorization-form-card-address-street').text(cardDetails.address.street);\n this.$el.find('.authorization-form-card-address-city').text(cardDetails.address.city);\n this.$el.find('.authorization-form-card-address-state').text(cardDetails.address.state);\n this.$el.find('.authorization-form-card-address-zip').text(cardDetails.address.zip);\n this.$el.find('.authorization-form-signature-hint').hide()\n\n this.$button.removeClass('btn-primary').addClass('btn-white')\n this.$signature.val('')\n\n this.$el.modal('show');\n this.$el.find('.terms').scrollTop(0);\n },\n\n onAgreeClicked: function() {\n var signatureText = this.$signature.val();\n if (signatureText.length === 0) {\n this.focusSignature();\n this.onSignatureError();\n } else if (UC.user.name === signatureText) {\n this.agreed = true;\n if (this.agreedCallback) {\n this.agreedCallback();\n }\n this.$el.modal('hide')\n } else {\n this.focusSignature();\n this.onSignatureError();\n this.$el.find('.authorization-form-signature-hint').show()\n }\n },\n\n focusSignature: function() {\n var input = document.getElementById(\"signatureInput\");\n input.scrollIntoView();\n input.focus();\n },\n\n onSignatureError: function() {\n this.$signature.addClass('animated shake');\n setTimeout(function() {\n this.$signature.removeClass('animated shake')\n }.bind(this), 1000)\n },\n\n validateSignature: function() {\n if (UC.user.name === this.$signature.val()) {\n this.$button.removeClass('btn-white').addClass('btn-primary')\n } else {\n this.$button.removeClass('btn-primary').addClass('btn-white')\n }\n },\n\n onDismissed: function() {\n if (this.dismissedCallback && !this.agreed) {\n this.dismissedCallback();\n }\n }\n});\n","UC.partials.AccountIdentityVerification = Backbone.View.extend({\n el: '#account-verification',\n\n events: {\n 'change input:radio[name=rdEntityType]': 'onChangeEntityType',\n 'click #btnSaveIdentitySsn': 'onSubmitSsn',\n 'click #btnSaveIdentityAddress': 'onSubmitAddress',\n 'click #btnSaveTosAcceptance': 'onSubmitTosAcceptance',\n 'click #btnSaveIdentity': 'onSubmit'\n },\n\n initialize: function () {\n this.$panelBusiness = this.$el.find('#panelBusiness');\n this.$panelIndividual = this.$el.find('#panelIndividual');\n this.$txtBusinessName = this.$el.find('#txtBusinessName');\n this.$txtEin = this.$el.find('#txtEin');\n this.$txtRepFirstName = this.$el.find('#txtRepFirstName');\n this.$txtRepLastName = this.$el.find('#txtRepLastName');\n this.$txtRepDob = this.$el.find('#txtRepDob');\n this.$txtRepSsn = this.$el.find('#txtRepSsn');\n this.$txtFirstName = this.$el.find('#txtFirstName');\n this.$txtLastName = this.$el.find('#txtLastName');\n this.$txtDob = this.$el.find('#txtDob');\n this.$txtSsn = this.$el.find('#txtSsn');\n this.$txtBusinessAddress = this.$el.find('#txtBusinessAddress');\n this.$txtBusinessCity = this.$el.find('#txtBusinessCity');\n this.$selectBusinessState = this.$el.find('#selectBusinessState');\n this.$txtBusinessZip = this.$el.find('#txtBusinessZip');\n\n this.tosCheckBox = new UC.partials.StripeTosAcceptedCheckbox({\n el: this.$el\n });\n\n this.$btnSaveIdentityLoader = this.$el.find('#btnSaveIdentity').buttonLoader();\n this.$btnSaveIdentityAddressLoader = this.$el.find('#btnSaveIdentityAddress').buttonLoader();\n this.$btnSaveIdentitySsnLoader = this.$el.find('#btnSaveIdentitySsn').buttonLoader();\n this.$btnSaveTosAcceptanceLoader = this.$el.find('#btnSaveTosAcceptance').buttonLoader();\n\n this.$rdEntityType = this.$el.find('input:radio[name=rdEntityType]');\n\n this.$el.find('.datepicker').datepicker(this.datepickerOptions());\n this.$selectBusinessState.select2();\n\n this.$txtBusinessName.focus();\n },\n\n datepickerOptions: function () {\n return {\n dateFormat: 'mm/dd/yy',\n changeMonth: true,\n changeYear: true,\n yearRange: \"1900:+nn\",\n maxDate: \"0\"\n };\n },\n\n entityTypeValue: function () {\n return this.$rdEntityType.filter(':checked').val();\n },\n\n saveDetails: function (data, url) {\n var message = {verification: data};\n if (UC.constants.nextUrl) {\n message.nextUrl = UC.constants.nextUrl;\n }\n\n url = url || '/account/save_identity_verification';\n\n UC.net.post(url, message, null, {\n loaders: [\n this.$btnSaveIdentityLoader,\n this.$btnSaveIdentityAddressLoader,\n this.$btnSaveIdentitySsnLoader,\n this.$btnSaveTosAcceptanceLoader\n ]\n });\n },\n\n validateBusinessSsn: function () {\n var data = {ssn: this.$txtSsn.val()};\n var errors = [];\n\n // will now handle ssn formatted with hyphens, spaces, or neither\n if (!/^\\d{3}(-|\\s)?\\d{2}(-|\\s)?\\d{4}$/.test(data.ssn)) {\n errors.push({element: this.$txtSsn, text: 'Invalid social security number'});\n UC.utils.showValidationErrors(errors);\n return false;\n }\n\n return data;\n },\n\n validateBusinessAddress: function () {\n var data = {\n address: this.$txtBusinessAddress.val(),\n city: this.$txtBusinessCity.val(),\n state: UC.utils.findSelectedElement(this.$selectBusinessState).val(),\n zip: this.$txtBusinessZip.val()\n },\n errors = [];\n\n\n if (data.address == '') {\n errors.push({element: this.$txtBusinessAddress, text: 'Missing address'});\n }\n\n if (data.city == '') {\n errors.push({element: this.$txtBusinessCity, text: 'Missing city'});\n }\n\n if (data.state == '' || data.state == UC.constants.emptySelectValue) {\n errors.push({element: this.$selectBusinessState, text: 'Missing state'});\n }\n\n if (!UC.utils.validateZipCode(data.zip)) {\n errors.push({element: this.$txtBusinessZip, text: 'Invalid zip code'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n }\n\n return data;\n },\n\n validateBusiness: function () {\n var data = {\n businessName: this.$txtBusinessName.val(),\n address: this.$txtBusinessAddress.val(),\n city: this.$txtBusinessCity.val(),\n state: UC.utils.findSelectedElement(this.$selectBusinessState).val(),\n zip: this.$txtBusinessZip.val(),\n firstName: this.$txtRepFirstName.val(),\n lastName: this.$txtRepLastName.val(),\n dateOfBirth: this.$txtRepDob.val()\n },\n errors = [];\n\n if (UC.constants.countryCode == 'US') {\n data.ein = this.$txtEin.val();\n data.ssn = this.$txtRepSsn.val();\n }\n\n if (data.businessName == '') {\n errors.push({element: this.$txtBusinessName, text: 'Missing business name'});\n }\n\n if (UC.constants.countryCode == 'US' && !/^\\d\\d?-\\d{7}$/.test(data.ein)) {\n errors.push({element: this.$txtEin, text: 'Invalid EIN'});\n }\n\n if (data.address == '') {\n errors.push({element: this.$txtBusinessAddress, text: 'Missing address'});\n }\n\n if (data.city == '') {\n errors.push({element: this.$txtBusinessCity, text: 'Missing city'});\n }\n\n if (data.state == '' || data.state == UC.constants.emptySelectValue) {\n errors.push({element: this.$selectBusinessState, text: 'Missing state'});\n }\n\n if (!UC.utils.validateZipCode(data.zip, UC.constants.countryCode)) {\n errors.push({element: this.$txtBusinessZip, text: 'Invalid zip code'});\n }\n\n if (data.firstName == '') {\n errors.push({element: this.$txtRepFirstName, text: 'Missing first name'});\n }\n\n if (data.lastName == '') {\n errors.push({element: this.$txtRepLastName, text: 'Missing last name'});\n }\n\n if (data.dateOfBirth == '') {\n errors.push({element: this.$txtRepDob, text: 'Missing date of birth'});\n }\n else {\n var momentDob = moment(data.dateOfBirth, UC.constants.momentDateFormats, true);\n\n if (!momentDob.isValid()) {\n errors.push({element: this.$txtRepDob, text: 'Invalid date of birth'});\n }\n else {\n data.dateOfBirth = momentDob.format();\n }\n }\n\n if (UC.constants.countryCode == 'US' && !/^\\d{4}$/.test(data.ssn)) {\n errors.push({element: this.$txtRepSsn, text: 'Invalid 4 digits for SSN'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'js-input'});\n return false;\n }\n\n return data;\n },\n\n validateIndividual: function () {\n var data = {\n firstName: this.$txtFirstName.val(),\n lastName: this.$txtLastName.val(),\n dateOfBirth: this.$txtDob.val(),\n },\n errors = [];\n\n if (UC.constants.countryCode == 'US') {\n data.ssn = this.$txtSsn.val();\n }\n\n if (data.firstName == '') {\n errors.push({element: this.$txtFirstName, text: 'Missing first name'});\n }\n\n if (data.lastName == '') {\n errors.push({element: this.$txtLastName, text: 'Missing last name'});\n }\n\n if (data.dateOfBirth == '') {\n errors.push({element: this.$txtDob, text: 'Missing date of birth', className: 'js-input'});\n }\n else {\n var momentDob = moment(data.dateOfBirth, UC.constants.momentDateFormats, true);\n\n if (!momentDob.isValid()) {\n errors.push({element: this.$txtDob, text: 'Invalid date of birth', className: 'js-input'});\n }\n else {\n data.dateOfBirth = momentDob.format();\n }\n }\n\n if (UC.constants.countryCode == 'US' && !/^\\d{4}$/.test(data.ssn)) {\n errors.push({element: this.$txtSsn, text: 'Invalid 4 digits for SSN', className: 'js-input'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'js-input'});\n return false;\n }\n\n return data;\n },\n\n onChangeEntityType: function () {\n UC.utils.hideValidationErrors('js-input');\n if (this.entityTypeValue() == 'business') {\n UC.utils.hideComponent(this.$panelIndividual);\n UC.utils.showComponent(this.$panelBusiness);\n }\n else {\n UC.utils.hideComponent(this.$panelBusiness);\n UC.utils.showComponent(this.$panelIndividual);\n }\n },\n\n\n onSubmit: function () {\n UC.utils.hideValidationErrors('js-input');\n var data;\n var entityType = this.entityTypeValue();\n\n if (entityType == 'business') {\n data = this.validateBusiness();\n } else {\n data = this.validateIndividual();\n }\n\n if (data && this.tosCheckBox.isMissingOrChecked()) {\n data.entityType = entityType;\n this.saveDetails(data);\n }\n },\n\n onSubmitAddress: function () {\n UC.utils.hideValidationErrors();\n\n var data = this.validateBusinessAddress();\n\n if (data && this.tosCheckBox.isMissingOrChecked()) {\n data.entityType = 'business';\n this.saveDetails(data, '/account/save_identity_verification_address');\n }\n },\n\n onSubmitSsn: function () {\n UC.utils.hideValidationErrors();\n\n var data = this.validateBusinessSsn();\n\n if (data && this.tosCheckBox.isMissingOrChecked()) {\n data.entityType = 'business';\n this.saveDetails(data, '/account/save_identity_verification_ssn');\n }\n },\n\n onSubmitTosAcceptance: function () {\n UC.utils.hideValidationErrors();\n\n if (this.tosCheckBox.isMissingOrChecked()) {\n this.saveDetails({}, '/account/stripe_tos/accept');\n }\n }\n});\n","UC.partials.StripeTosAcceptedCheckbox = Backbone.View.extend({\n initialize: function (opts) {\n this.errorMessage = opts.errorMessage || 'Must check to agree';\n this.$chkAccountTos = this.$el.find('#chkAccountTos').fancyCheck({\n label: 'I have read and agree to the Stripe Connected Account Agreement.'\n });\n },\n\n isMissingOrChecked: function() {\n if (this.$chkAccountTos.length === 0 || this.$chkAccountTos.check()) {\n return true;\n }\n\n UC.utils.showValidationErrors([\n {element: this.$chkAccountTos, text: this.errorMessage}\n ]);\n return false;\n }\n});\n","UC.views.AccountActivate = Backbone.View.extend({\n\n events: {\n 'submit #formActivateAccount' : 'submit'\n },\n\n initialize: function() {\n this.btnLoader = this.$el.find('#btnActivatePassword').buttonLoader();\n this.$password = this.$el.find('#txtPassword');\n this.$verify = this.$el.find('#txtPasswordVerify');\n this.$password.focus();\n },\n\n submit: function(e) {\n e.preventDefault();\n if (this.validate()) {\n this.btnLoader.showLoader();\n var data = {\n password: this.data.password,\n passwordVerify: this.data.passwordVerify,\n token: UC.constants.token,\n userId: UC.constants.userId\n };\n\n if (UC.constants.nextPage) {\n data.url = UC.constants.nextPage;\n }\n\n UC.net.post('/account/activate_set_password', data).fail(function () {\n this.btnLoader.hideLoader();\n }.bind(this));\n }\n },\n\n validate: function() {\n var errors = [];\n UC.utils.clearValidationErrors('form-group');\n\n var data = {\n password: this.$password.val(),\n passwordVerify: this.$verify.val()\n };\n\n if (data.password.length < UC.constants.minPasswordLength) {\n errors.push({element: this.$password, text: 'Please provide a valid password with at least {0} characters'.format(UC.constants.minPasswordLength)});\n } else if (data.password != data.passwordVerify) {\n errors.push({element: this.$verify, text: 'Passwords do not match'});\n }\n\n this.data = data;\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n return errors.length === 0;\n }\n\n});\n","UC.views.AccountAvailability = Backbone.View.extend({\n\t\n events: {\n 'change input#js-toggle-availability' : 'toggleAvailability'\n },\n\t\n initialize: function() {\n this.user = UC.user;\n this.$toggle = this.$('#js-toggle-availability');\n this.$valueToggle = this.$('.js-toggle-value');\n },\n\t\n toggleAvailability: function() {\n if(this.user && this.user.type === 'attorney') {\n this.$toggle.prop('disabled', true);\n UC.net.invoke(\n 'patch',\n '/account/availability',\n { toggle: true },\n this.toggleInfoDisplays.bind(this)\n )\n .success(function() {\n this.$toggle.prop('disabled', false)\n }.bind(this))\n }\n },\n\t\n toggleInfoDisplays: function() {\n if (this.$toggle.prop('checked')) {\n this.$valueToggle.html('Yes');\n } else {\n this.$valueToggle.html('No');\n }\n }\n\t\n});\n","UC.views.AccountBilling = Backbone.View.extend({\n\n events: {\n 'click .remove-payment-method' : 'removePaymentMethod',\n 'click .default-payment-method' : 'defaultPaymentMethod',\n 'click .default-payout-method' : 'defaultPayoutMethod'\n },\n\n initialize: function() {\n var plaidVerification = new UC.plaidBankVerification({\n openPlaidLinkSelector: '#open-plaid',\n showDefaultButtonLoader: true\n });\n\n plaidVerification.init();\n },\n\n removePaymentMethod: function(e) {\n e.preventDefault();\n\n function onConfirm(response) {\n if (response) {\n UC.net.post('/account/remove_payment_method/{0}'.format(accountId), null, function(res) {\n UC.utils.showNotification(res.message, UC.constants.results.success);\n $item.remove();\n });\n }\n }\n\n var $that = $(e.currentTarget);\n var accountId = $that.attr('accountId');\n var accountText = $('span[accountId=\"{0}\"]'.format(accountId)).text();\n var $item = $that.parentsUntil('.pay-list', 'li');\n\n if ($item.hasClass('default-debit')) {\n UC.utils.showNotification('Unable to remove the default payment method', UC.constants.results.warning);\n return;\n } else {\n UC.utils.showConfirmModal('Confirm account deletion', 'Are you sure you want to remove {0}'.format(accountText), onConfirm);\n }\n },\n\n defaultPaymentMethod: function(e) {\n e.preventDefault();\n\n function onConfirm(response) {\n if (response) {\n UC.net.post('/account/set_default_payment_method/{0}'.format(accountId));\n }\n }\n\n var accountId = $(e.currentTarget).attr('accountId');\n var accountText = $('span[accountId=\"{0}\"]'.format(accountId)).text();\n UC.utils.showConfirmModal('Confirm change', 'Are you sure you want to set {0} as the default payment method'.format(accountText), onConfirm);\n },\n\n defaultPayoutMethod: function(e) {\n e.preventDefault();\n\n function onConfirm(response) {\n if (response) {\n UC.net.post('/account/set_default_payout_method/{0}'.format(accountId));\n }\n }\n\n var accountId = $(e.currentTarget).attr('accountId');\n var accountText = $('span[accountId=\"{0}\"]'.format(accountId)).text();\n UC.utils.showConfirmModal('Confirm change', 'Are you sure you want to set {0} as the default payout method'.format(accountText), onConfirm);\n }\n\n});\n","UC.views.AccountChangePassword = Backbone.View.extend({\n events: {\n 'click #turn-off-mfa-confirm': 'disableMfa',\n },\n\n initialize: function() {\n this.passwordForm = new UC.components.PasswordForm({\n el: '#frmChangePassword'\n });\n if (location.hash === '#mfa-recovery-codes') {\n $('#mfa-recovery-codes-modal').modal('show');\n } else if (location.hash === '#turn-off-mfa') {\n $('#turn-off-mfa-modal').modal('show');\n }\n },\n\n disableMfa: function(e) {\n const loader = $(e.target).buttonLoader();\n\n loader.showLoader();\n UC.net.destroy(\n '/account/mfa/disable',\n {},\n function (response) {\n loader.hideLoader();\n window.location = response.url || window.location.reload();\n }\n ).fail(function() {\n loader.hideLoader();\n $('#turn-off-mfa-modal').modal('hide');\n });\n }\n\n});\n","UC.views.AccountConfirmInvite = Backbone.View.extend({\n\n events: {\n 'click #aCancelClientForm' : 'cancel',\n 'click #btnSaveClient' : 'submit'\n },\n\n initialize: function() {\n this.btnLoader = this.$el.find('#btnSaveClient').buttonLoader();\n this.$el.find('select').select2();\n\n this.$form = this.$el.find('#panelClientForm');\n this.$firstName = this.$el.find('#txtFirstName');\n this.$password = this.$el.find('#txtPassword');\n this.$chkAgreeTerms = this.$el.find('#chkAgreeTerms');\n this.$website = this.$el.find('#txtCompanyWebsite');\n\n this.addressForm = new UC.partials.AddressForm({\n el: '#panelClientForm'\n });\n },\n\n cancel: function(e) {\n function onConfirm(response) {\n if (response) {\n location.href = '/';\n }\n }\n\n e.preventDefault();\n UC.utils.showConfirmModal('Confirm Operation', 'Are you sure you want to cancel?', onConfirm);\n },\n\n submit: function (e) {\n e.preventDefault();\n\n var addressDfd = new $.Deferred();\n var formDfd = new $.Deferred();\n\n $.when.apply(this, [formDfd, addressDfd]).done(function() {\n\n this.btnLoader.showLoader();\n var address = this.addressForm.getAddress();\n var account = $.extend({}, this.account);\n account.Address = address;\n account.token = UC.constants.token;\n\n UC.net.post('/account/confirm_invite_ajax', {account: account}).fail(function() {\n this.btnLoader.hideLoader();\n }.bind(this));\n\n }.bind(this));\n\n this.validate(formDfd);\n this.addressForm.validate(addressDfd);\n },\n\n validate: function(dfd) {\n $('.row').removeClass('has-error');\n var errors = [];\n var account = this.$form.serializeJSON();\n account.agreeTerms = this.$chkAgreeTerms.is(':checked');\n\n var fields = ['firstName', 'lastName', 'company', 'password', 'website'];\n for (var i = 0; i < fields.length; i++) {\n account[fields[i]] = account[fields[i]].trim();\n }\n\n if (!account.firstName || !account.lastName) {\n errors.push({element: this.$firstName, text: 'Missing first/last name'});\n }\n\n if (account.password.length < UC.constants.minPasswordLength) {\n errors.push({element: this.$password, text: 'Please provide a valid password with at least {0} characters'.format(UC.constants.minPasswordLength)});\n }\n\n if (!account.agreeTerms) {\n errors.push({element: this.$chkAgreeTerms, text: 'Please agree to the terms of use'});\n }\n\n if (account.website) {\n account.website = UC.utils.ensureUrlProtocol(account.website);\n if (!UC.utils.validateUrl(account.website)) {\n errors.push({element: this.$website, text: 'Please provide a valid website url or leave the field empty'});\n }\n }\n\n UC.utils.showValidationErrors(errors, {scrollToFirst: true});\n if (errors.length > 0) {\n dfd.reject();\n } else {\n this.account = account;\n dfd.resolve();\n }\n }\n\n});\n","UC.views.AccountEdit = Backbone.View.extend({\n\n events: {\n 'submit form' : 'submitBasicInfo',\n 'click .js-copy-link-text': 'copyReferralLink',\n 'click #aDisconnectLinkedin' : 'onDisconnectLinkedinClick',\n 'click #btnConnectLinkedin' : 'onConnectLinkedinClick',\n 'click #btnConnectGoogle' : 'onConnectGoogleClick',\n 'click #aDisconnectGoogle' : 'onDisconnectGoogleClick',\n 'click #btnShowUploadResume' : 'showResumeUpload'\n },\n\n initialize: function() {\n this.$el.find('select').select2({width: \"100%\"});\n this.$form = this.$el.find('#formBasicInfo');\n this.$btnShowUploadResume = this.$el.find('#btnShowUploadResume');\n this.formLoader = this.$el.find('#btnSave').buttonLoader();\n this.googleLoader = this.$el.find('#btnConnectGoogle').buttonLoader();\n this.linkedInLoader = this.$el.find('#btnConnectLinkedin').buttonLoader();\n this.$firstName = this.$el.find('#txtFirstName');\n this.$lastName = this.$el.find('#txtLastName');\n this.$phone= this.$el.find('#txtPhone');\n this.$vanityProfileUrl = this.$el.find('#txtVanityProfileUrl');\n this.$aDisconnectLinkedin = this.$el.find('#aDisconnectLinkedin');\n this.$btnConnectLinkedin = this.$el.find('#btnConnectLinkedin');\n this.$aDisconnectGoogle = this.$el.find('#aDisconnectGoogle');\n this.$btnConnectGoogle = this.$el.find('#btnConnectGoogle');\n\n this.addressForm = new UC.partials.AddressForm({\n el: '#formBasicInfo'\n });\n\n if (this.$btnShowUploadResume.length > 0) {\n this.resumeLoader = this.$btnShowUploadResume.buttonLoader();\n this.$btnShowUploadResume.tooltip();\n\n this.uploader = new UC.components.Upload({\n source_type: 'edit_account_resume',\n upload_path: '{0}/resumes/'.format(UC.user.id),\n createPath: '/account/upload_resume',\n maxFiles: 1,\n processFailureCallback: this.resumeUploadFailure.bind(this),\n onUploadComplete: this.resumeUploadSuccess.bind(this),\n skipPathPrefix: true\n });\n }\n },\n\n accountFormData: function () {\n var account = this.$form.serializeJSON();\n var address = { Address: this.addressForm.getAddress() };\n var organization = this.organizationInfo();\n var vanityProfileUrl = { VanityProfileUrl: this.$vanityProfileUrl.val() };\n\n return $.extend({}, account, address, organization, vanityProfileUrl);\n },\n\n copyReferralLink: function (e) {\n var targetSelector = e.target.dataset.targetSelector;\n var targetEl = $(targetSelector).first();\n targetEl.select();\n document.execCommand('copy');\n },\n\n submitBasicInfo: function (e) {\n e.preventDefault();\n\n var addressDfd = new $.Deferred();\n var formDfd = new $.Deferred();\n\n $.when.apply(this, [formDfd, addressDfd]).done(function() {\n this.formLoader.showLoader();\n this.saveAccountData();\n }.bind(this));\n\n this.validateAccount(formDfd);\n this.addressForm.validate(addressDfd);\n },\n\n validateAccount: function (dfd) {\n UC.utils.clearValidationErrors('form-group');\n var errors = [];\n var account = this.accountFormData();\n var vanityProfileUrl = this.$vanityProfileUrl.val();\n\n var fields = ['FirstName', 'LastName', 'Phone', 'CompanyName'];\n for (var i = 0; i < fields.length; i++) {\n if ('string' === typeof account[fields[i]]) {\n account[fields[i]] = account[fields[i]].trim();\n }\n }\n\n if (!account.FirstName) {\n errors.push({className:\n 'form-group',\n element: this.$firstName,\n text: 'Missing first name'\n });\n }\n\n if (!account.LastName) {\n errors.push({className:\n 'form-group',\n element: this.$lastName,\n text: 'Missing last name'\n });\n }\n\n if (account.Phone && !UC.utils.validatePhone(account.Phone)) {\n errors.push({className:\n 'form-group',\n element: this.$phone,\n text: 'Invalid phone number'\n });\n }\n\n if (UC.utils.isAttorney()) {\n if (vanityProfileUrl) {\n if (!/^[a-zA-z0-9\\.+-]{5,30}$/.test(account.VanityProfileUrl)) {\n errors.push({\n element: this.$vanityProfileUrl,\n text: 'Please provide a name between 5-30 characters, including only letters, numbers, and the symbols . + -'\n });\n }\n }\n }\n\n UC.utils.showValidationErrors(errors);\n if (errors.length > 0) {\n dfd.reject();\n } else {\n this.account = account;\n dfd.resolve();\n }\n },\n\n organizationInfo: function () {\n return {\n CompanyIndustry: $('#selectIndustry').val(),\n CompanyName: $('#txtCompanyName').val(),\n CompanySizeRange: $('#js-selectCompanySizeRange').val()\n };\n },\n\n onConnectLinkedinClick: function (e) {\n e.preventDefault();\n this.linkedInLoader.showLoader();\n\n new UC.components.Authentication().logonLinkedIn(\n {\n callback: function (response) {\n this.linkedInLoader.hideLoader();\n if (response.status === 'connected') {\n UC.utils.showNotification('Your LinkedIn account was successfully connected.', UC.constants.results.success);\n this.$aDisconnectLinkedin.removeClass('hide');\n this.$btnConnectLinkedin.addClass('hide');\n } else if (response.status === 'invalid_connection') {\n UC.utils.showNotification(response.message, UC.constants.results.failure);\n this.$btnConnectLinkedin.attr('disabled', 'disabled');\n }\n }.bind(this),\n }\n );\n },\n\n onDisconnectLinkedinClick: function (e) {\n e.preventDefault();\n\n function onConfirm(response) {\n if (response) {\n UC.net.post('/auth/linkedin/disconnect', null, function (data) {\n UC.utils.showNotification(data.message, UC.constants.results.success);\n this.$aDisconnectLinkedin.addClass('hide');\n this.$btnConnectLinkedin.removeClass('hide');\n setTimeout(function() { window.location.reload() }, 1000);\n }.bind(this));\n }\n }\n\n UC.utils.showConfirmModal('Confirm', 'Are you sure you wish you remove the connection to your LinkedIn profile?
    You will not be able to login using LinkedIn.', onConfirm.bind(this));\n },\n\n onConnectGoogleClick: function (e) {\n e.preventDefault();\n this.googleLoader.showLoader();\n\n new UC.components.Authentication().logonGoogle(\n {\n context: 'signin',\n backdrop: true,\n callback: function (response) {\n this.googleLoader.hideLoader();\n if (response.status === 'connected') {\n UC.utils.showNotification('Your Google account was successfully connected.', UC.constants.results.success);\n this.$aDisconnectGoogle.removeClass('hide');\n this.$btnConnectGoogle.addClass('hide');\n } else if (response.status === 'invalid_connection') {\n UC.utils.showNotification(response.message, UC.constants.results.failure);\n } else if (response.status !== 'signin_skipped') {\n UC.utils.showNotification(\n response.googleErrorMessage || 'There was an error connecting Your Google account, please try again later.',\n UC.constants.results.failure\n );\n }\n }.bind(this),\n }\n );\n },\n\n onDisconnectGoogleClick: function (e) {\n e.preventDefault();\n\n function onConfirm(response) {\n if (response) {\n UC.net.post('/auth/google_oauth2/disconnect', null, function (data) {\n UC.utils.showNotification(data.message, UC.constants.results.success);\n this.$aDisconnectGoogle.addClass('hide');\n this.$btnConnectGoogle.removeClass('hide');\n }.bind(this));\n }\n }\n\n UC.utils.showConfirmModal('Confirm', 'Are you sure you wish you remove the connection to your Google profile?
    You will not be able to login using Google.', onConfirm.bind(this));\n },\n\n saveAccountData: function () {\n var account = this.accountFormData();\n\n UC.net.post('/account/update', {account: account}, function (res) {\n UC.utils.showNotification(res.message, UC.constants.results.success);\n }).always(function() {\n this.formLoader.hideLoader();\n }.bind(this));\n },\n\n showResumeUpload: function(e) {\n e.preventDefault();\n this.uploader.openFilePicker({accept: ['application/msword', 'application/pdf', 'text/html', 'text/plain']});\n },\n\n resumeUploadFailure: function(err) {\n this.resumeLoader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure);\n },\n\n resumeUploadSuccess: function() {\n location.reload();\n }\n\n});\n","UC.views.AccountEditCreditCard = Backbone.View.extend({\n\n events: {\n 'click #btnSubmitCreditCard' : 'submit',\n 'change #selectCountry' : 'toggleCountry'\n },\n\n initialize: function() {\n this.$el.find('select').select2({width: '100%'});\n this.btnLoader = this.$el.find('#btnSubmitCreditCard').buttonLoader();\n\n this.$month = this.$el.find('#selectMonth');\n this.$year= this.$el.find('#selectYear');\n this.$street = this.$el.find('#txtAddress');\n this.$city = this.$el.find('#txtCity');\n this.$state = this.$el.find('#selectState');\n this.$zip = this.$el.find('#txtZipCode');\n this.$country = this.$el.find('#selectCountry');\n this.$default = this.$el.find('#chkDefaultMethod');\n this.$default.fancyCheck();\n },\n\n submit: function(e) {\n e.preventDefault();\n if (this.validate()) {\n this.btnLoader.showLoader();\n UC.net.post('/account/save_credit_card/{0}'.format(UC.constants.paymentMethodId), this.data).fail(function() {\n this.btnLoader.hideLoader();\n }.bind(this));\n }\n },\n\n validate: function () {\n UC.utils.clearValidationErrors('form-group');\n var errors = [];\n var now = new Date();\n var data = {};\n\n data.exp_month = this.$month.val();\n data.exp_year = this.$year.val();\n data.address_line1 = this.$street.val();\n data.address_city = this.$city.val();\n data.address_state = this.$state.val();\n data.address_zip = this.$zip.val();\n data.address_country = this.$country.val();\n data.IsDefaultCharge = this.$default.hasClass('checked');\n console.log(data)\n\n if (data.exp_year < now.getFullYear() || (data.exp_year == now.getFullYear() && data.exp_month < now.getMonth() + 1)) {\n errors.push({\n className: 'form-group', \n element: this.$month, \n text: 'Invalid expiration date.'\n });\n }\n\n if (!data.address_line1) {\n errors.push({\n className: 'form-group', \n element: this.$street, \n text: 'Please enter your billing address.'\n });\n }\n\n if (!data.address_city) {\n errors.push({\n className: 'form-group', \n element: this.$city, \n text: 'Please enter your billing city.'\n });\n }\n\n if (data.address_country === 'USA') {\n if (!data.address_state) {\n errors.push({\n className: 'form-group', \n element: this.$state, \n text: 'Please select your billing state.'\n });\n }\n } else {\n delete data.address_state;\n delete data.address_zip;\n }\n\n if (!data.address_country) {\n errors.push({element: this.$country, text: 'Please enter your billing country.'});\n }\n\n if (!data.address_zip && data.address_country === 'USA' && !UC.utils.validateZipCode(data.zip)) {\n errors.push({element: this.$zip, text: 'Please enter a valid billing zip code.'});\n }\n\n this.data = data;\n UC.utils.showValidationErrors(errors, {scrollToFirst: true});\n return errors.length === 0;\n },\n\n toggleCountry: function(e) {\n if(this.$country.val() === 'USA'){\n this.$state.prop('disabled', false).trigger('change');\n $('#state-zip-input-row').removeClass('hidden');\n } else{\n this.$state.prop('disabled', true).trigger('change');\n $('#state-zip-input-row').addClass('hidden');\n }\n }\n\n});\n","UC.views.AccountForgotPassword = Backbone.View.extend({\n\n events: {\n 'click #btnResetPassword' : 'submit'\n },\n\n initialize: function() {\n this.btnLoader = this.$el.find('#btnResetPassword').buttonLoader();\n this.$email = this.$el.find('#txtEmail');\n this.$password = this.$el.find('#txtPassword');\n this.$verify = this.$el.find('#txtPasswordVerify');\n this.$token = this.$el.find('#txtToken');\n this.$messagePanel = this.$el.find('#panelForgotPasswordMessage');\n this.$passwordPanel = this.$el.find('#panelForgotPassword');\n UC.utils.registerEnterKey(this.$passwordPanel, this.submit.bind(this))\n },\n\n submit: function(e) {\n if (this.validate()) {\n this.btnLoader.showLoader();\n UC.net.post('/account/reset_password', this.data, function() {\n UC.utils.hidePanel(this.$passwordPanel);\n UC.utils.showPanel(this.$messagePanel);\n }.bind(this)).always(function() {\n this.btnLoader.hideLoader();\n }.bind(this));\n }\n },\n\n validate: function() {\n var errors = [];\n UC.utils.clearValidationErrors('form-group');\n\n this.data = {\n email: this.$email.val(),\n };\n\n if (!UC.utils.validateEmail(this.data.email)) {\n errors.push({element: this.$email, text: 'Please provide a valid email address'});\n }\n\n if (UC.constants.pageName === 'setPassword') {\n this.data.password = this.$password.val();\n this.data.passwordVerify = this.$verify.val();\n this.data.token = this.$token.val();\n\n if (this.data.password.length < UC.constants.minPasswordLength) {\n errors.push({element: this.$password, text: 'Please provide a valid password with at least {0} characters'.format(UC.constants.minPasswordLength)});\n }\n else if (this.data.password != this.data.passwordVerify) {\n errors.push({element: this.$verify, text: 'Passwords do not match'});\n }\n }\n\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n return errors.length === 0;\n }\n\n});\n","!function(){\n UC.views.AccountIdentityVerificationSsn = UC.views.AccountIdentityVerification = UC.views.AccountIdentityVerificationAddress = UC.views.AccountStripeTos = Backbone.View.extend({\n initialize: function(){\n new UC.partials.AccountIdentityVerification;\n }\n });\n}();","UC.views.AccountIdentityVerificationDocument = Backbone.View.extend({\n\n events: {\n 'click #btnPickDocument' : 'openFilePicker'\n },\n\n initialize: function() {\n this.components = {};\n this.components.pickFileLoader = $('#btnPickDocument').buttonLoader();\n this.uploader = new UC.components.Upload({\n maxFiles: 1,\n source_type: \"identity_verification\",\n upload_path: \"verification_documents/\",\n createPath: \"save_identity_verification_document\",\n beforeProcess: this.showLoader.bind(this),\n processFailureCallback: this.processFailure.bind(this),\n onUploadComplete: this.onUploadComplete.bind(this)\n });\n this.tosCheckBox = new UC.partials.StripeTosAcceptedCheckbox({\n el: this.$el,\n errorMessage: 'Must check to proceed with upload'\n });\n },\n\n openFilePicker: function(e) {\n e.preventDefault();\n UC.utils.hideValidationErrors('js-input');\n if (this.tosCheckBox.isMissingOrChecked()) {\n this.uploader.openFilePicker({accept: ['image/png', 'image/jpeg']});\n }\n },\n\n onUploadComplete: function(err, documents) {\n if (err) {\n this.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n },\n\n processFailure: function(err) {\n this.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure);\n },\n\n hideLoader: function() {\n this.components.pickFileLoader.hideLoader();\n },\n\n showLoader: function() {\n this.components.pickFileLoader.showLoader();\n }\n\n});\n","UC.views.AccountLogon = Backbone.View.extend({\n\n initialize: function() {\n new UC.partials.SessionsForm();\n }\n\n});\n","UC.views.AccountNewBankAccount = Backbone.View.extend({\n\n initialize: function() {\n this.bankAccountForm = new UC.partials.BankAccountForm({\n el: '#formBankAccount'\n });\n }\n\n});\n","UC.views.AccountNewCreditCard = Backbone.View.extend({\n\n events: {\n 'click #btnSubmitCreditCard' : 'submit',\n 'change #selectCountry' : 'toggleCountry'\n },\n\n initialize: function(args) {\n this.$el.find('#cvc-info').tooltip();\n this.$el.find('select').select2({ width: '100%' });\n this.btnLoader = this.$el.find('#btnSubmitCreditCard').buttonLoader();\n\n this.$month = this.$el.find('#selectMonth');\n this.$year= this.$el.find('#selectYear');\n this.$street = this.$el.find('#txtAddress');\n this.$city = this.$el.find('#txtCity');\n this.$state = this.$el.find('#selectState');\n this.$zip = this.$el.find('#txtZipCode');\n this.$country = this.$el.find('#selectCountry');\n this.$agreeToTermsCheckboxes = this.$el.find('.js-agreeToTermsCheckbox');\n this.$agreeToTermsDates = this.$el.find('.js-agreeToTermsDate');\n this.$default = this.$el.find('#chkDefaultMethod');\n this.$default.fancyCheck();\n this.$isExistChkDefaultMethod = this.$default.length != 0\n\n this.$name = this.$el.find('#txtNameOnCard');\n this.$number = this.$el.find('#txtCardNumber');\n this.$cvc = this.$el.find('#txtCvc');\n this.saveCreditCardSuccessCallback = args.saveCreditCardSuccessCallback;\n\n this.data = {};\n this.token = null;\n this.isDefaultCreditCard = false;\n this.savePaymentURL = args.savePaymentURL;\n this.scrollToFirst = args.scrollToFirst !== undefined ? args.scrollToFirst : true;\n },\n\n isAgreeToTermsChecked: function() {\n var isChecked = this.$agreeToTermsCheckboxes.filter(\":checked\").length;\n var isAgreedToPreviously = this.$agreeToTermsDates.length;\n\n return isChecked || isAgreedToPreviously;\n },\n\n submit: function(e) {\n e.preventDefault();\n if (this.validate()) {\n this.btnLoader.showLoader();\n UC.payments.tokenizeCard(UC.payments.createCreditCardData(this.data), this.onCreateCreditCard.bind(this));\n }\n },\n\n onCreateCreditCard: function (err, token, card) {\n if (err) {\n this.btnLoader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure, 10000);\n }\n else {\n this.token = token;\n if (UC.user.type === 'attorney') {\n if (!this.$authorizationModal) {\n this.$authorizationModal = new UC.partials.CreditCardAuthorizationModal(\n {\n agreedCallback: function() {\n if (!this.$isExistChkDefaultMethod || (this.$isExistChkDefaultMethod && this.$default.hasClass('checked'))) {\n this.createCreditCard();\n return;\n }\n\n this.makeCreditCardDefault()\n }.bind(this),\n dismissedCallback: function() {\n this.btnLoader.hideLoader();\n }.bind(this)\n }\n )\n }\n this.$authorizationModal.show(\n {\n funding: card.funding,\n brand: card.brand,\n number: this.$number.val(),\n cvc: this.$cvc.val(),\n exp_month: this.$month.val(),\n exp_year: this.$year.val(),\n name: this.$name.val(),\n address: {\n street: this.$street.val(),\n city: this.$city.val(),\n state: this.$state.val(),\n zip: this.$zip.val(),\n }\n }\n )\n } else {\n if (!this.$isExistChkDefaultMethod || (this.$isExistChkDefaultMethod && this.$default.hasClass('checked'))) {\n this.createCreditCard();\n return;\n }\n\n this.makeCreditCardDefault()\n }\n }\n },\n\n createCreditCard: function() {\n var data = {\n token: this.token,\n type: 'credit_card',\n nextUrl: UC.constants.nextUrl,\n makeTokenDefault: this.$default.hasClass('checked') || this.isDefaultCreditCard,\n isAgreeToTermsChecked: !!this.isAgreeToTermsChecked(),\n redirectSuccess: (typeof this.saveCreditCardSuccessCallback !== 'function')\n };\n var self = this;\n\n UC.net.post(this.savePaymentURL ? this.savePaymentURL : '/account/save_payment_method', data)\n .fail(function () {\n self.btnLoader.hideLoader();\n }).success(function () {\n if (self.saveCreditCardSuccessCallback) {\n self.saveCreditCardSuccessCallback();\n }\n if (location.hash === '#checklist') {\n location.href = '/dashboard';\n }\n });\n },\n\n makeCreditCardDefault: function() {\n function onConfirm(confirm) {\n this.isDefaultCreditCard = confirm\n this.createCreditCard()\n }\n\n UC.utils.showConfirmModal('', 'Would you like to make this your default payment method?', onConfirm.bind(this));\n },\n\n validate: function () {\n $('.form-group').removeClass('has-error');\n var errors = [];\n var now = new Date();\n\n this.data.nameOnCard = this.$name.val();\n this.data.cardNumber = this.$number.val();\n this.data.expireMonth = this.$month.val();\n this.data.expireYear = this.$year.val();\n this.data.address = this.$street.val();\n this.data.city = this.$city.val();\n this.data.state = this.$state.val();\n this.data.zip = this.$zip.val();\n this.data.country = this.$country.val();\n this.data.cvc = this.$cvc.val();\n this.data.isAgreeToTermsChecked = !!this.isAgreeToTermsChecked();\n\n if (!this.data.nameOnCard) {\n errors.push({element: this.$name, text: 'Please enter the name on your card.'});\n }\n\n if (!UC.payments.validateCardNumber(this.data.cardNumber)) {\n errors.push({element: this.$number, text: 'Invalid credit card number.'});\n }\n\n if (this.data.expireYear < now.getFullYear() || (this.data.expireYear == now.getFullYear() && this.data.expireMonth < now.getMonth() + 1)) {\n errors.push({element: this.$month, text: 'Invalid expiration date.'});\n }\n\n if (!UC.payments.validateSecurityCode(this.data.cvc)) {\n errors.push({element: this.$cvc, text: 'Invalid CVC number.'});\n }\n\n if (!this.data.address) {\n errors.push({element: this.$street, text: 'Please enter your billing address.'});\n }\n\n if (!this.data.city) {\n errors.push({element: this.$city, text: 'Please enter your billing city.'});\n }\n\n if (!this.data.country) {\n errors.push({element: this.$country, text: 'Please enter your billing country.'});\n } else if (this.data.country === 'USA') {\n if (!this.data.zip || !UC.utils.validateZipCode(this.data.zip)) {\n errors.push({element: this.$zip, text: 'Please enter a valid billing zip code.'});\n }\n\n if (!this.data.state) {\n errors.push({element: this.$state, text: 'Please select your billing state.'});\n }\n } else {\n delete this.data.zip;\n delete this.data.state;\n }\n\n if (!this.data.isAgreeToTermsChecked) {\n errors.push({ element: this.$agreeToTermsCheckboxes });\n }\n\n UC.utils.showValidationErrors(errors, {scrollToFirst: this.scrollToFirst, className: 'form-group'});\n return errors.length === 0;\n },\n\n toggleCountry: function(e) {\n if(this.$country.val() === 'USA'){\n this.$state.prop('disabled', false).trigger('change');\n $('#state-zip-input-row').removeClass('hidden');\n } else{\n this.$state.prop('disabled', true).trigger('change');\n $('#state-zip-input-row').addClass('hidden');\n }\n },\n\n clearForm: function() {\n $('.form-group').removeClass('has-error');\n this.$name.val('');\n this.$number.val('');\n this.$month.val();\n this.$year.val();\n this.$street.val('');\n this.$city.val('');\n this.$state.val('');\n this.$zip.val('');\n this.$country.val('');\n this.$cvc.val('');\n }\n});\n","UC.views.AccountNewPayoutAccount = Backbone.View.extend({\n\n initialize: function() {\n this.bankAccountForm = new UC.partials.BankAccountForm({\n el: '#formBankAccount',\n payout: true\n });\n }\n\n});\n","UC.views.AccountNotificationSettings = Backbone.View.extend({\n id: \"sms-settings\",\n\n events: {\n \"click .resend-verification\": \"onResetVerificationClick\",\n \"submit .sms-settings-form\": \"onSubmit\",\n 'submit form.carbon_copy_addresses': 'saveCarbonCopies',\n 'change #carbon-copy-addresses': 'onCarbonCopiesChanged',\n },\n\n initialize: function() {\n var self = this;\n\n this.STATUS_INTEVAL_SECONDS = 4000; // 4 seconds\n this.STATUS_INTERVAL_STOPPER_MINUTES = 5 * 60 * 1000; // 5 minutes\n\n UC.utils.fetchTranslations(\n { resource: \"sms_phone_number\" },\n function() {\n this.startVerification();\n }.bind(this)\n );\n\n this.$form = this.$el.find(\".sms-settings-form\");\n this.$id = this.$form.data(\"id\");\n this.$phone = this.$el.find(\".phone-number\");\n this.$unverifiedMessage = this.$el.find(\".unverified\");\n this.$verifiedMessage = this.$el.find(\".verified\");\n this.$verificationStepMessage = this.$el.find(\n \".verification-step-message\"\n );\n this.$verificationAlertMessage = this.$el.find(\n \".verification-alert-message .message\"\n );\n this.$resendVerification = this.$el.find(\".resend-verification\");\n this.$areas = this.$el.find(\".area\");\n this.$phoneNumberLabel = this.$el.find(\".phone-number-label\");\n this.$notificationPreferences = this.$el.find(\".notification-preferences\");\n this.$smsPhoneNumberButtonText = this.$el.find(\n \".sms-phone-number-button-text\"\n );\n\n this.$resendVerificationIcon = this.$resendVerification.find(\n \".fontello\"\n );\n\n $(\"#sms-settings\").delegate(\".checkbox input[type='checkbox']\", \"change\", function(\n event\n ) {\n var attribute,\n matches,\n id = self.$id || self.$form.data(\"id\");\n\n // Match rails form attributes like sms_phone_number[NewProposals]\n if ((matches = event.target.name.match(/\\[(.*)\\]/))) {\n attribute = matches[1];\n }\n\n var data = {\n sms_phone_number: {}\n };\n\n data.sms_phone_number[attribute] = $(this).is(\":checked\");\n\n UC.net\n .put(\n \"/api/v1/sms_phone_numbers/\" + id,\n data,\n function(response) {\n self.$optedOut = response.opted_out;\n self.$verified = response.verified;\n UC.utils.showValidationErrors([]);\n UC.utils.showNotification(\n response.message,\n UC.constants.results.success\n );\n self.isOptedOut();\n }\n )\n .fail(\n function(xhr) {\n self.onAjaxError(xhr, 'update notification settings');\n }\n );\n });\n\n $('#carbon-copy-addresses').select2({\n width: '100%',\n placeholder: 'Add email addresses',\n tags: true,\n tokenSeparators: [',', ' '],\n createTag: function (params) {\n if (params.term.length === 0 || !UC.utils.validateEmail(params.term)) {\n return null;\n }\n\n return {id: params.term, text: params.term}\n }\n });\n },\n\n onResetVerificationClick: function(event) {\n this.$resendVerificationIcon.removeClass(\"hide\");\n UC.net\n .post(\n \"/api/v1/sms_phone_numbers/\" + this.$id + \"/resend_verification\",\n function(response) {\n this.$resendVerificationIcon.addClass(\"hide\");\n UC.utils.showNotification(\n response.message,\n UC.constants.results.success\n );\n }.bind(this)\n )\n .fail(function() {\n this.$resendVerificationIcon.addClass(\"hide\");\n }.bind(this));\n return false;\n },\n\n startVerification: function() {\n if (this.verifierTimer) {\n clearInterval(this.verifierTimer);\n clearTimeout(this.verifierTimerStopper);\n }\n if (this.$id) {\n this.verifierTimer = setInterval(\n function() {\n this.getSmsPhoneStatus();\n }.bind(this),\n this.STATUS_INTEVAL_SECONDS\n );\n this.verifierTimerStopper = setTimeout(\n function() {\n if (this.verifierTimer) {\n clearInterval(this.verifierTimer);\n }\n }.bind(this),\n this.STATUS_INTERVAL_STOPPER_MINUTES\n );\n this.getSmsPhoneStatus();\n }\n },\n\n getSmsPhoneStatus: function() {\n UC.net\n .get(\n \"/api/v1/sms_phone_numbers/\" + this.$id + \"/status\",\n function(sms_phone_number) {\n this.$optedOut = sms_phone_number.opted_out;\n this.$verified = sms_phone_number.verified;\n this.$unsubscribed = sms_phone_number.unsubscribed;\n this.setState();\n this.isOptedOut();\n }.bind(this)\n )\n .fail(function() {}.bind(this));\n },\n\n setState: function() {\n if (this.$verified) {\n this.setVerifiedState();\n } else if (this.$unsubscribed) {\n this.setUnsubscribedState();\n } else {\n this.setUnverifiedState();\n }\n },\n\n setVerifiedState: function() {\n this.$areas.removeClass(\"disabled\");\n this.$resendVerification.addClass(\"hide\");\n this.$unverifiedMessage.addClass(\"hide\");\n\n this.$phoneNumberLabel.html(\n UC.utils.translate(\"sms_phone_number.your_phone_number\")\n );\n this.$verificationStepMessage.html(\n UC.utils.translate(\"sms_phone_number.you_have_agreed_to_receive\")\n );\n this.$smsPhoneNumberButtonText.html(\n UC.utils.translate(\"sms_phone_number.update_phone_number\")\n );\n this.$phone.parent().addClass('verified-phone');\n },\n\n setUnverifiedState: function() {\n this.$areas.addClass(\"disabled\");\n this.$resendVerification.removeClass(\"hide\");\n this.$unverifiedMessage.removeClass(\"hide\");\n\n this.$phoneNumberLabel.html(\n UC.utils.translate(\"sms_phone_number.add_your_number\")\n );\n this.$verificationStepMessage.html(\n UC.utils.translate(\"sms_phone_number.verify_phone_number\")\n );\n this.$verificationAlertMessage.html(\n UC.utils.translate(\"sms_phone_number.verify_yes_to_text_message\")\n );\n this.$phone.parent().removeClass('verified-phone');\n },\n\n setUnsubscribedState: function() {\n this.setUnverifiedState();\n this.$resendVerification.addClass(\"hide\");\n this.$verificationAlertMessage.html(\n UC.utils.translate(\"sms_phone_number.verify_start_to_text_message\")\n );\n },\n\n isOptedOut: function() {\n if (!this.$optedOut && this.$verified) {\n this.$notificationPreferences.removeClass(\"disabled\");\n } else {\n this.$notificationPreferences.addClass(\"disabled\");\n }\n },\n\n onSubmit: function(event) {\n var self = this,\n attribute,\n matches,\n id = this.$id || this.$form.data(\"id\"),\n errors = [],\n data = { sms_phone_number: {} };\n\n // Match rails form attributes like sms_phone_number[NewProposals]\n if ((matches = this.$phone.attr(\"name\").match(/\\[(.*)\\]/))) {\n attribute = matches[1];\n data.sms_phone_number[attribute] = this.$phone.val();\n }\n\n if (!UC.utils.validatePhone(this.$phone.val())) {\n errors.push({\n className: \"form-group\",\n element: this.$phone,\n text: \"Invalid phone number\"\n });\n }\n\n if (errors.length) {\n UC.utils.showValidationErrors(errors);\n return false;\n } else {\n UC.utils.resetValidationErrors(this.$el);\n }\n\n if (id) {\n UC.net\n .put(\n \"/api/v1/sms_phone_numbers/\" + id,\n data,\n function(response) {\n this.setUnverifiedState();\n this.startVerification();\n UC.utils.showNotification(\n response.message,\n UC.constants.results.success\n );\n }.bind(this)\n )\n .fail(\n function(xhr) {\n xhr.handled = true;\n this.onAjaxError(xhr, 'update phone number');\n }.bind(this)\n );\n } else {\n UC.net\n .post(\n \"/api/v1/sms_phone_numbers\",\n data,\n function(response) {\n var sms_phone_number = response.sms_phone_number;\n this.$id = sms_phone_number._id;\n this.$verificationStepMessage.html(\n UC.utils.translate(\"sms_phone_number.verify_phone_number\")\n );\n UC.utils.showNotification(\n response.message,\n UC.constants.results.success\n );\n this.$phone.val(sms_phone_number.PhoneNumber);\n this.setUnverifiedState();\n this.startVerification();\n }.bind(this)\n )\n .fail(\n function(xhr) {\n xhr.handled = true;\n this.onAjaxError(xhr, 'update phone number');\n }.bind(this)\n );\n }\n\n return false;\n },\n\n onAjaxError: function(xhr, action) {\n if (!xhr.responseJSON) {\n UC.utils.showNotification('Failed to ' + action, UC.constants.results.failure);\n return;\n }\n\n if (xhr.responseJSON.message) {\n UC.utils.showNotification(xhr.responseJSON.message, UC.constants.results.failure);\n return;\n }\n\n var errors = [];\n for (var attribute in xhr.responseJSON.errors) {\n var inputTag = $(\"#\" + attribute);\n if (inputTag) {\n errors.push({\n className: \"form-group\",\n element: inputTag,\n text: xhr.responseJSON.errors[attribute][0]\n });\n }\n }\n UC.utils.showValidationErrors(errors);\n },\n\n saveCarbonCopies: function(e) {\n e.preventDefault();\n\n const formData = $(e.currentTarget).serializeJSON();\n let validEmails = true;\n if (formData.carbon_copy_addresses && formData.carbon_copy_addresses.length) {\n _.each(formData.carbon_copy_addresses, function(email) {\n if (email.toLowerCase() === UC.user.email.toLowerCase()) {\n validEmails = false;\n }\n });\n }\n\n if (!validEmails) {\n UC.utils.showNotification(\n `Carbon Copy Recipients should not include primary email address ('${UC.user.email}')`,\n UC.constants.results.failure\n );\n return\n }\n\n const $loader = $('#save-cc-addresses').buttonLoader();\n $loader.showLoader();\n\n UC.net.post('/account/emails/save_carbon_copies', formData, function() {\n $loader.hideLoader();\n UC.utils.showNotification('Additional email recipients successfully saved.', UC.constants.results.success);\n }).fail(function() {\n $loader.hideLoader();\n });\n },\n\n onCarbonCopiesChanged: function (e) {\n e.preventDefault();\n\n $('#save-cc-addresses').removeAttr('disabled');\n }\n});\n","UC.views.AccountPasswordExpired = Backbone.View.extend({\n\n initialize: function() {\n this.passwordForm = new UC.components.PasswordForm({\n el: '#frmChangePassword'\n })\n }\n\n});\n","import { loadFileStackScript } from '../../../utils/filestack'\n\nUC.views.AccountPhoto = Backbone.View.extend({\n\n initialize: function() {\n this.setPhotoUploadWidget();\n\n if (location.hash == '#checklist') {\n $('#btnSavePhoto').text('Save & Continue');\n }\n else if (location.hash == '#edit') {\n $('#btnFilepicker').trigger('click');\n }\n },\n\n setPhotoUploadWidget: function() {\n const photoWidgetOptions = {\n s3UploadPath: '{0}/images/'.format(UC.user.id),\n openFilePickerBtnSelector: '#btnFilepicker',\n ucStoreFileInfoPath: '/account/file_uploaded',\n ucStoreCroppedPhotoUrl: '/account/save_photo',\n uploadedImagePreviewSelector: '#imgNewPhoto',\n currentPhotoPanelSelector: '#panelCurrentPhoto',\n newPhotoPanelSelector: '#panelNewPhoto',\n savePhotoBtnSelector: '#btnSavePhoto',\n userId: UC.user.id,\n maxSize: UC.constants.maxPhotoSize,\n fileStackApiKey: UC.constants.fileStackApiKey,\n radminUpdate: false\n };\n\n const photoWidget = new UC.photoUploaderWidget(photoWidgetOptions);\n const $filePickerBtn = $(photoWidgetOptions.openFilePickerBtnSelector);\n\n $filePickerBtn.prop('disabled', true);\n\n loadFileStackScript(function () {\n photoWidget.init();\n\n $filePickerBtn.prop('disabled', false);\n });\n }\n})\n","UC.views.AccountPracticeLocation = Backbone.View.extend({\n\n events: {\n 'submit form#practice-location' : 'submit'\n },\n\n initialize: function () {\n this.$form = this.$el.find('form#practice-location');\n this.$submitBtn = this.$el.find('#savePracticeLocation');\n this.$address = this.$el.find('#txtAddress');\n this.$city = this.$el.find('#txtCity');\n this.$zip = this.$el.find('#txtZipCode');\n this.$state = this.$el.find('#selectState');\n this.$country = this.$el.find('#selectCountry');\n\n this.$state.select2();\n this.$country.select2();\n\n this.practiceMarkers = [];\n this.btnLoader = this.$submitBtn.buttonLoader();\n this.bindLocationAutocomplete();\n\n if (location.hash == '#checklist') {\n this.$submitBtn.text('Save & Continue');\n }\n },\n\n generateMapData: function () {\n var mapData = {};\n\n if (UC.constants.practiceLocation && UC.constants.practiceLocation.Loc) {\n mapData['location'] = new google.maps.LatLng(UC.constants.practiceLocation.Loc[1], UC.constants.practiceLocation.Loc[0])\n mapData['mapOptions'] = {\n zoom: 12,\n center: mapData['location']\n }\n } else {\n var defaultCenter = new google.maps.LatLng(39.50, -98.35);\n mapData['mapOptions'] = {\n zoom: 3,\n center: defaultCenter\n }\n }\n\n return mapData;\n },\n\n addMarkerToMap: function (loc) {\n this.clearPracticeMarkers();\n\n var marker = new google.maps.Marker({\n position: loc,\n map: this.$practiceMap\n });\n\n this.practiceMarkers.push(marker);\n },\n\n bindLocationAutocomplete: function () {\n this.$autocompleteInput = new google.maps.places.Autocomplete(this.$address[0]);\n\n google.maps.event.addListener(this.$autocompleteInput, 'place_changed', function () {\n this.autocompleteResult = this.$autocompleteInput.getPlace();\n if (this.autocompleteResult && this.autocompleteResult.address_components) {\n this.fillInAddress();\n }\n }.bind(this));\n },\n\n fillInAddress: function () {\n var address = this.createAddressObject();\n delete this.address;\n this.$city.val('');\n this.$zip.val('');\n this.$state.val('').trigger('change');\n\n if (this.validatePracticeLocationAutocomplete(address)) {\n this.$address.val(address['full_street']);\n\n // UK uses `postal_town` as `city`\n this.$city.val(address['locality'] || address['postal_town']);\n\n if (address.country === 'United States') {\n this.$state.val(address['administrative_area_level_1']['short_name']).trigger('change');\n this.$zip.val(address['postal_code']);\n }\n\n var countrySelector = \"#selectCountry option:contains('\" + address.country + \"')\";\n var val = this.$el.find(countrySelector).val();\n this.$country.val(val).trigger('change');\n if (address.country === 'United States') {\n this.submit();\n }\n }\n },\n\n validatePracticeLocationAutocomplete: function (address) {\n var errors = [];\n $('.row').removeClass('has-error');\n\n if (this.checkIfPOBox(this.autocompleteResult.name)) {\n errors.push({element: this.$address, text: 'Address cannot be a P.O. Box'});\n }\n\n if (!address['full_street']) {\n errors.push({element: this.$address, text: 'Please enter a valid address'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {scrollToFirst: true});\n return false\n }\n\n return true\n },\n\n validateZipCode: function (geolocation) {\n var zip = this.$zip.val();\n var onComplete = function (res) {\n this.btnLoader.hideLoader();\n\n if (res.status >= 400) {\n UC.utils.showValidationErrors([{\n className: 'form-group',\n element: this.$zip,\n text: 'Please enter a valid zip code.'\n }]);\n } else {\n UC.utils.clearValidationErrors('form-group');\n this.geocodeLocationReceived(geolocation);\n }\n }.bind(this);\n\n // This is not guaranteed and we could potentially be getting undefined due to invocations to delete this.address.\n if (!this.address) {\n return this.btnLoader.hideLoader();\n }\n\n if (this.address.CountryCode === 'USA') {\n UC.net.get('/account/valid_zip_code/' + zip).complete(onComplete);\n } else {\n // Need to call this to proceed with saving the location,\n // otherwise hanging loader\n this.geocodeLocationReceived(geolocation);\n }\n },\n\n checkIfPOBox: function (address) {\n address = address.toLowerCase().replace(/\\.| /g, '');\n return address.indexOf('pobox') > -1;\n },\n\n submit: function (e) {\n if (e) e.preventDefault();\n\n if (this.validatePracticeLocation()) {\n this.btnLoader.showLoader();\n\n this.geocodeLocation(function (geolocation) {\n this.validateZipCode(geolocation);\n }.bind(this));\n }\n },\n\n validatePracticeLocation: function () {\n UC.utils.clearValidationErrors('form-group');\n var errors = [];\n this.address = this.$form.serializeJSON();\n\n if (!this.address.Street) {\n errors.push({\n className: 'form-group',\n element: this.$address,\n text: 'Please enter your practice address.'\n });\n }\n\n if (!this.address.City) {\n errors.push({\n className: 'form-group',\n element: this.$city,\n text: 'Please enter your practice city.'\n });\n }\n\n if (!this.address.CountryCode) {\n errors.push({\n className: 'form-group',\n element: this.$country,\n text: 'Please enter your practice country.'\n });\n } else if (this.address.CountryCode === 'USA') {\n\n if (this.checkIfPOBox(this.address.Street)) {\n errors.push({\n className: 'form-group',\n element: this.$address,\n text: 'Address cannot be a P.O. Box'\n });\n }\n\n if (!this.address.State) {\n errors.push({\n className: 'form-group',\n element: this.$state,\n text: 'Please select your practice state.'\n });\n }\n\n if (!this.address.ZipCode) {\n errors.push({\n className: 'form-group',\n element: this.$zip,\n text: 'Please enter your practice zip code.'\n });\n }\n\n } else {\n delete this.address.ZipCode;\n delete this.address.State;\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n delete this.address;\n return false;\n } else {\n UC.utils.clearValidationErrors('form-group');\n return true;\n }\n },\n\n geocodeLocation: function (callback) {\n var geocoder = new google.maps.Geocoder();\n var address = this.getFullAddress();\n geocoder.geocode({ 'address': address}, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n callback.call(this, results[0].geometry.location);\n } else {\n this.btnLoader.hideLoader();\n }\n }.bind(this));\n },\n\n getFullAddress: function () {\n var address = this.address.Street;\n address += \", \" + this.address.City;\n\n if (this.address.CountryCode === 'USA') {\n address += \", \" + this.address.State;\n address += \", \" + this.address.ZipCode;\n }\n\n var countryName = this.$country.find('option:selected').text();\n address += \", \" + countryName;\n\n return address\n },\n\n geocodeLocationReceived: function (geolocation) {\n this.address = this.address || {};\n var lng = geolocation.lng();\n var lat = geolocation.lat();\n\n if (lng && lat) {\n this.address.Loc = [geolocation.lng(), geolocation.lat()];\n }\n\n this.savePracticeLocation();\n },\n\n savePracticeLocation: function () {\n UC.net.post('/account/save_practice_location', this.address, this.onSavePracticeLocation.bind(this)).always(function () {\n this.btnLoader.hideLoader();\n }.bind(this));\n },\n\n onSavePracticeLocation: function (res) {\n var practiceLocation = new google.maps.LatLng(res.newPracticeLocation.Loc[1], res.newPracticeLocation.Loc[0]);\n this.addMarkerToMap(practiceLocation);\n UC.utils.showNotification(res.message, UC.constants.results.success);\n\n if (location.hash === '#checklist') {\n location.href = '/dashboard';\n }\n },\n\n clearPracticeMarkers: function () {\n for (var i = 0; i < this.practiceMarkers.length; i++) {\n this.practiceMarkers[i].setMap(null);\n }\n this.practiceMarkers = []\n },\n\n createAddressObject: function () {\n var addressArr = this.autocompleteResult.address_components;\n var addressObj = {};\n\n for (var i = 0; i < addressArr.length; i++) {\n if (addressArr[i].types[0] === 'administrative_area_level_1') {\n addressObj[addressArr[i].types[0]] = addressArr[i]\n }\n else {\n addressObj[addressArr[i].types[0]] = addressArr[i].long_name\n }\n }\n\n if (addressObj['street_number']) {\n addressObj['full_street'] = addressObj['street_number'] + ' ' + addressObj['route'];\n }\n else {\n addressObj['full_street'] = addressObj['route'];\n }\n\n return addressObj;\n }\n\n});\n","UC.views.AccountResendActivation = Backbone.View.extend({\n\n el: 'form#resend-activation',\n\n events: {\n 'ajax:before': 'resendActivationBefore',\n 'ajax:success': 'resendActivationSuccess',\n 'ajax:complete': 'hideLoader'\n },\n\n initialize: function() {\n this.components = {};\n this.$email = this.$el.find('#email');\n this.components.resendLoader = this.$el.find('#btnResendActivation').buttonLoader();\n },\n\n resendActivationBefore: function(e) {\n var email = this.$email.val();\n\n UC.utils.clearValidationErrors();\n\n if (!UC.utils.validateEmail(email)) {\n UC.utils.showValidationErrors([{\n element: this.$email,\n text: 'Please enter a valid email address'\n }]);\n return false;\n }\n\n this.components.resendLoader.showLoader();\n },\n\n resendActivationSuccess: function(e, data) {\n var message = \"An activation message has been sent to your email address. To activate your account, follow the instructions in the email message.\";\n this.$el.find('.floating-panel-body').html(\"

    {0}

    \".format(message));\n },\n\n hideLoader: function() {\n this.components.resendLoader.hideLoader();\n }\n\n});\n","UC.views.AccountVerifyBankAccount = Backbone.View.extend({\n\n events: {\n 'click #btnVerifyAccount' : 'submit'\n },\n\n initialize: function() {\n this.btnLoader = this.$el.find('#btnVerifyAccount').buttonLoader();\n this.$amount1 = this.$el.find('#txtAmount1');\n this.$amount2 = this.$el.find('#txtAmount2');\n },\n\n submit: function(e) {\n if (this.validate()) {\n this.btnLoader.showLoader();\n var data = {\n account: {\n id: UC.constants.accountId,\n amount1: this.amount1,\n amount2: this.amount2\n }\n };\n\n UC.net.post('/account/confirm_bank_account', data).fail(function(){\n this.btnLoader.hideLoader();\n }.bind(this));\n }\n },\n\n validate: function() {\n var errors = [];\n UC.utils.clearValidationErrors();\n this.amount1 = parseInt(this.$amount1.val());\n this.amount2 = parseInt(this.$amount2.val());\n\n if (isNaN(this.amount1) || this.amount1 <= 0 || this.amount1 >= 100 || isNaN(this.amount2) || this.amount2 <= 0 || this.amount2 >= 100) {\n errors.push({element: this.$amount1, text: 'Please enter amount between 1 and 99'});\n }\n\n UC.utils.showValidationErrors(errors);\n return errors.length === 0;\n }\n\n});\n","!function() {\n\n UC.views.AttorneyClients = Backbone.View.extend({\n\n initialize: function() {\n $('.dashboard').on('click', '.initiate-call', function(e) {\n e.preventDefault();\n new UC.views.CallsModalInitiate({\n to: $(e.currentTarget).data('phone')\n }).render();\n });\n\n $('.dashboard').on('click', '.reveal-contact-info', this.revealContactInfo);\n },\n\n revealContactInfo: function(e) {\n e.preventDefault();\n var $link = $(e.currentTarget),\n $info = $link.parent().find('.hidden-contact-info');\n\n $link.addClass('hidden');\n $info.removeClass('hidden');\n }\n\n });\n}();\n","!function() {\n\n UC.views.AttorneyClientsEdit = Backbone.View.extend({\n\n initialize: function() {\n new UC.views.AttorneyClientsForm();\n }\n\n })\n\n}();\n","UC.views.AttorneyClientsForm = Backbone.View.extend({\n \n el: '#attorney-client-form',\n \n events: {\n \"click #not-located-in-usa\" : \"showInternationalAddressPanel\",\n \"click #located-in-usa\" : \"showDomesticAddressPanel\",\n \"ajax:success\" : \"formSaved\",\n \"click #submit-form\" : \"submitForm\"\n },\n\n initialize: function() {\n this.$zipPanel = this.$el.find('#atty-client-zip');\n this.$internationalPanel = this.$el.find('#atty-client-intl-address');\n\n this.$firstName = this.$el.find('#first-name');\n this.$lastName = this.$el.find('#last-name');\n this.$email = this.$el.find('#email');\n this.$zipCode = this.$el.find('#zip-code');\n this.$city = this.$el.find('#city');\n this.$country = this.$el.find('#country');\n this.$websiteUrl = this.$el.find('#website-url');\n\n this.$el.find('select').select2();\n\n this.$('#attorney_client_HourlyRate').currencyInput();\n },\n\n showInternationalAddressPanel: function() {\n this.$zipPanel.addClass('hidden');\n this.$zipCode.val('');\n this.$internationalPanel.removeClass('hidden');\n },\n\n showDomesticAddressPanel: function() {\n this.$zipPanel.removeClass('hidden');\n this.$internationalPanel.addClass('hidden');\n },\n\n formSaved: function(e, data) {\n window.location.replace(data.url);\n },\n\n validateForm: function() {\n var errors = [];\n\n var firstName = this.$firstName.val();\n var lastName = this.$lastName.val();\n var email = this.$email.val();\n var zipCode = this.$zipCode.val();\n var city = this.$city.val();\n var country = this.$country.val();\n var websiteUrl = this.$websiteUrl.val();\n\n UC.utils.clearValidationErrors('form-group');\n\n if (this.$email.length > 0 && !UC.utils.validateEmail(email)) {\n errors.push({element: this.$email, text: \"Please provide a valid email address\"});\n }\n\n if (firstName.isBlank()) {\n errors.push({element: this.$firstName, text: \"Please provide a valid first name\"});\n }\n\n if (lastName.isBlank()) {\n errors.push({element: this.$lastName, text: \"Please provide a valid last name\"});\n }\n\n if (this.$zipCode.is(':visible') && zipCode.isBlank()) {\n errors.push({element: this.$zipCode, text: \"Please provide a valid zip code\"});\n }\n\n if (!this.$zipCode.is(':visible') && city.isBlank()) {\n errors.push({element: this.$city, text: \"Please provide a valid city\"});\n }\n\n if (!this.$zipCode.is(':visible') && !country) {\n errors.push({element: this.$country, text: \"Please select a country\"});\n }\n\n if (websiteUrl !== '' && !UC.utils.validateUrl(websiteUrl)) {\n errors.push({element: this.$websiteUrl, text: 'Invalid website url'});\n }\n\n if (errors.length === 0) {\n return true;\n } else {\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n }\n },\n\n submitForm: function(e) {\n e.preventDefault();\n \n if (this.validateForm()) {\n this.$el.submit();\n UC.utils.recordKissEvent('submit_attorney_client_form', { loc: window.location.href });\n }\n }\n})\n","!function() {\n\n UC.views.AttorneyClientsIndex = Backbone.View.extend({\n\n events: {\n 'change #selectAttorneyClient' : 'selectAttorneyClient'\n },\n\n initialize: function() {\n $('#attorney-client-list').stickyCssTableHeader();\n\n this.$el.find('#selectAttorneyClient').superSmartSearch({\n url: UC.constants.smartSearchPath,\n width: '100%',\n placeholder: 'Search for a client'\n });\n },\n\n selectAttorneyClient: function(e) {\n var clientId = $(e.currentTarget).val();\n if (clientId) {\n location.href = \"{0}/{1}?current_ts_entries=true\".format(UC.constants.attorneyClientsPath, clientId);\n }\n }\n\n });\n}();\n","!function() {\n\n UC.views.AttorneyClientsNew = Backbone.View.extend({\n\n initialize: function() {\n new UC.views.AttorneyClientsForm();\n }\n\n })\n\n}();\n","!function() {\n\n UC.views.AttorneyClientsShow = Backbone.View.extend({\n events: {\n 'click .schedule-call-btn' : 'openScheduledCallModal',\n 'click #send-message-btn' : 'openSendMessageModal',\n 'show.bs.tab #timesheets-tab' : 'renderCurrentTimesheetTabSetHistory',\n 'show.bs.tab #profile-tab' : 'setProfileHistory',\n 'click #current-timesheets-tab' : 'renderCurrentTimesheetTabSetHistory',\n 'click #invoiced-timesheets-tab' : 'renderInvoicedTimesheetTabSetHistory',\n 'click .cancel-sched-call' : 'openCancelSchedCallModal'\n },\n\n initialize: function() {\n this.messageModal = new UC.modals.JobContactMessageModal({\n el: '#send-message-modal',\n recipientId: UC.constants.clientId\n });\n\n this.$timesheetsDiv = $('#timesheets');\n\n this.renderTimesheetContentForParams();\n\n $('[data-toggle=\"tooltip\"]').tooltip();\n },\n\n openScheduledCallModal: function(e) {\n e.preventDefault();\n var $el = $(e.currentTarget);\n var jobId = $el.data('jobId');\n var scheduledCallId = $el.data('scheduledCallId');\n\n new UC.modals.ScheduledCallsShow({\n job_id: jobId,\n scheduled_call_id: scheduledCallId,\n callback: this.handleCallScheduled.bind(this)\n }).render();\n\n UC.utils.recordKissEvent('call_reply_click_client_profile', {\n type: UC.user.type,\n scheduled_call_id: scheduledCallId,\n loc: window.location.href\n });\n },\n\n openSendMessageModal: function(e) {\n e.preventDefault();\n\n this.messageModal.open();\n },\n\n handleCallScheduled: function() {\n window.location.reload();\n },\n\n setProfileHistory: function() {\n history.pushState({}, 'profile', '?profile=true');\n },\n\n renderCurrentTimesheetTabSetHistory: function() {\n history.pushState({}, 'current_ts_entries', '?current_ts_entries=true');\n this.showCurrentTimesheetsView();\n },\n\n renderInvoicedTimesheetTabSetHistory: function() {\n history.pushState({}, 'invoiced_ts_entries', '?invoiced_ts_entries=true');\n this.showInvoicedTimesheetsView();\n },\n\n showCurrentTimesheetsView: function() {\n new UC.timesheetComponent.CurrentTimesheetLineItemsForClientView({\n parentElement: this.$timesheetsDiv,\n clientId: UC.constants.clientId,\n allowNewTimesheetLines: true\n });\n },\n\n showInvoicedTimesheetsView: function() {\n new UC.timesheetComponent.ClientInvoicedLineItemsView({\n parentElement: this.$timesheetsDiv,\n clientId: UC.constants.clientId\n });\n },\n\n renderTimesheetContentForParams: function() {\n if (UC.utils.getParameterByName('current_ts_entries') === 'true') {\n this.showCurrentTimesheetsView();\n return;\n }\n\n if (UC.utils.getParameterByName('invoiced_ts_entries') === 'true') {\n this.showInvoicedTimesheetsView();\n return;\n }\n },\n\n openCancelSchedCallModal: function(e) {\n e.preventDefault();\n var scheduledCallId = $(e.currentTarget).data('scheduled-call-id');\n new UC.partials.ScheduledCallsCancel({scheduledCallId: scheduledCallId});\n }\n\n })\n\n}();\n","!function() {\n UC.views.AttorneyIncomeCalculatorShow = Backbone.View.extend({\n\n events: {\n 'click .fancy-tile-display': 'toggleLegalTileSelection',\n 'click .btn-period-switch': 'toggleDisplayedPeriod',\n 'click #btnCalculate': 'validateAndUpdateReport',\n 'click #btnReset': 'resetReport',\n 'click #btnGetReport': 'onGetReportClick',\n 'keyup #txtHoursAvailable': 'onAvailableHoursKeyUp',\n 'keydown #txtHoursAvailable': 'onNumberKeyDown',\n 'keyup #txtHourlyRate': 'onHourlyRateKeyUp',\n 'keydown #txtHourlyRate': 'onNumberKeyDown',\n 'keyup #txtDesiredIncome': 'onDesiredIncomeKeyUp',\n 'keydown #txtDesiredIncome': 'onNumberKeyDown',\n },\n\n initialize: function() {\n this.hoursAvailablePerWeek = NaN;\n this.hourlyRate = NaN;\n this.desiredIncomePerWeek = NaN;\n this.reportPeriod = 'annual';\n\n this.resetReport();\n\n window.incomeCalculatorRecaptchaCallback = function() {\n $('#btnGetReport').attr('disabled', null);\n }\n window.incomeCalculatorRecaptchaErrorCallback = function() {\n $('#btnGetReport').attr('disabled', 'disabled');\n }\n },\n\n onNumberKeyDown: function(event) {\n if(isNaN(event.key) && event.key !== 'Backspace') {\n event.preventDefault();\n }\n },\n\n onAvailableHoursKeyUp: function (e) {\n this.hoursAvailablePerWeek = parseInt($(e.currentTarget).val())\n\n this.updateDesiredIncomePerWeekInput();\n },\n\n onHourlyRateKeyUp: function (e) {\n this.hourlyRate = parseInt($(e.currentTarget).val())\n\n this.updateDesiredIncomePerWeekInput();\n },\n\n onDesiredIncomeKeyUp: function (e) {\n this.desiredIncomePerWeek = parseInt($(e.currentTarget).val())\n\n this.updateHoursAvailablePerWeekInput();\n },\n\n updateDesiredIncomePerWeekInput: function() {\n if (isNaN(this.hoursAvailablePerWeek) || isNaN(this.hourlyRate)) {\n return\n }\n\n this.desiredIncomePerWeek = this.hoursAvailablePerWeek * this.hourlyRate;\n $('#txtDesiredIncome').val(this.desiredIncomePerWeek);\n },\n\n updateHoursAvailablePerWeekInput: function() {\n if (isNaN(this.desiredIncomePerWeek) || isNaN(this.hourlyRate)) {\n return\n }\n\n const calculatedHours = Math.trunc(this.desiredIncomePerWeek / this.hourlyRate);\n if (calculatedHours > 40) {\n this.hoursAvailablePerWeek = 40;\n this.hourlyRate = Math.trunc(this.desiredIncomePerWeek / this.hoursAvailablePerWeek);\n $('#txtHourlyRate').val(this.hourlyRate);\n } else {\n this.hoursAvailablePerWeek = calculatedHours;\n }\n $('#txtHoursAvailable').val(this.hoursAvailablePerWeek);\n },\n\n toggleLegalTileSelection: function(e) {\n e.preventDefault();\n\n const $checkbox = $(e.currentTarget).closest('.fancy-tile-container').find('input');\n $checkbox.prop('checked', !$checkbox.prop('checked'));\n },\n\n toggleDisplayedPeriod: function(e) {\n e.preventDefault();\n\n const $button = $(e.currentTarget);\n $button.closest('.row').find('button.active').toggleClass('active');\n $button.toggleClass('active');\n\n this.reportPeriod = $button.data('period');\n this.updateReport();\n },\n\n validateInputValues: function() {\n UC.utils.clearValidationErrors('form-inputs .form-group');\n\n let errors = [];\n\n if (isNaN(this.hoursAvailablePerWeek) || this.hoursAvailablePerWeek === 0) {\n errors.push({\n className: 'form-group',\n element: $('#txtHoursAvailable'),\n text: 'required'\n });\n }\n\n if (isNaN(this.hourlyRate) || this.hourlyRate === 0) {\n errors.push({\n className: 'form-group',\n element: $('#txtHourlyRate'),\n text: 'required'\n });\n }\n\n if (isNaN(this.desiredIncomePerWeek) || this.desiredIncomePerWeek === 0) {\n errors.push({\n className: 'form-group',\n element: $('#txtDesiredIncome'),\n text: 'required'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'form-inputs .form-group'});\n return false;\n }\n\n return true;\n },\n\n validateAndUpdateReport: function (e) {\n if (e) {\n e.preventDefault();\n }\n\n if (this.validateInputValues()) {\n this.updateReport();\n }\n },\n\n updateReport: function () {\n if (isNaN(this.hoursAvailablePerWeek) || isNaN(this.hourlyRate) || isNaN(this.desiredIncomePerWeek)) {\n return\n }\n\n const weeklyWorkDays = 5;\n const dailyHoursWorked = this.hoursAvailablePerWeek / weeklyWorkDays;\n const numberOfProposalsNeeded = Math.round(dailyHoursWorked * 4 * ((this.reportPeriod === 'annual' ? 260 : (this.reportPeriod === 'month' ? 22 : weeklyWorkDays))));\n const minutesNeededToSubmitProposal = 4;\n const totalTimeSpent = Math.round(numberOfProposalsNeeded * minutesNeededToSubmitProposal / 60);\n const dailyIncome = dailyHoursWorked * this.hourlyRate;\n const totalIncome = dailyIncome * (this.reportPeriod === 'annual' ? 260 : (this.reportPeriod === 'month' ? 22 : weeklyWorkDays));\n\n const USDollar = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n });\n\n $('#spanNumberOfProposalsNeeded').text(numberOfProposalsNeeded);\n $('#spanMinutesToSubmitProposal').text(minutesNeededToSubmitProposal);\n $('#spanTotalTimeSpent').text(`${totalTimeSpent} hrs`);\n $('#spanDailyHoursWorked').text(dailyHoursWorked);\n $('#spanHourlyRate').text(USDollar.format(this.hourlyRate));\n $('#spanDailyIncome').text(USDollar.format(dailyIncome));\n $('#spanTotalIncome').text(USDollar.format(totalIncome));\n $('#spanTotalIncomePeriod').text(this.reportPeriod);\n\n this.updateChart(totalIncome);\n },\n\n updateChart: function(totalIncome) {\n let chartData = [];\n let yAxisTickPositions = null;\n let xAxisCategories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n if (isNaN(totalIncome)) {\n // build 'empty state'\n chartData = _.map(xAxisCategories, function(month) {\n return [month, NaN];\n });\n yAxisTickPositions = [100000, 125000, 150000, 175000, 200000, 225000, 250000, 275000, 300000];\n } else {\n // build chart series\n if (this.reportPeriod === 'annual') {\n const monthIncome = totalIncome / 12;\n chartData = _.map(xAxisCategories, function(month, index) {\n return [month, monthIncome * (index + 1)];\n });\n } else if (this.reportPeriod === 'month') {\n xAxisCategories = ['Week 1', 'Week 2', 'Week 3', 'Week 4'];\n const weekIncome = totalIncome / 4;\n chartData = _.map(xAxisCategories, function(week, index) {\n return [week, weekIncome * (index + 1)];\n });\n } else {\n xAxisCategories = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'];\n const dayIncome = totalIncome / 5;\n chartData = _.map(xAxisCategories, function(day, index) {\n return [day, dayIncome * (index + 1)];\n });\n }\n }\n\n $('#incomeGraph').highcharts({\n chart: {\n type: 'area'\n },\n exporting: { enabled: false },\n title: {\n text: ''\n },\n yAxis: {\n tickPositions: yAxisTickPositions,\n showEmpty: true,\n title : {\n text : ' '\n },\n labels: {\n style: {\n color: '#545E6B',\n fontSize: '13px',\n }\n }\n },\n xAxis: {\n categories: xAxisCategories,\n gridLineWidth: 1,\n labels: {\n style: {\n color: '#545E6B',\n fontSize: '13px',\n }\n },\n },\n credits: {\n enabled: false\n },\n series: [{\n showInLegend: false,\n name: '',\n data: chartData,\n marker: {\n enabled:false\n },\n color: '#009DDC',\n lineColor: '#009DDC',\n fillOpacity: 0.2,\n enableMouseTracking: false\n }],\n accessibility: {\n enabled: false\n }\n });\n },\n\n resetReport: function(e) {\n if (e) {\n e.preventDefault();\n }\n\n UC.utils.clearValidationErrors('form-inputs .form-group');\n\n $('#spanNumberOfProposalsNeeded').text('');\n $('#spanMinutesToSubmitProposal').text('');\n $('#spanTotalTimeSpent').text('');\n $('#spanDailyHoursWorked').text('');\n $('#spanHourlyRate').text('');\n $('#spanDailyIncome').text('');\n $('#spanTotalIncome').text('');\n $('#spanTotalIncomePeriod').text('');\n\n $('#txtHoursAvailable').val('');\n $('#txtHourlyRate').val('');\n $('#txtDesiredIncome').val('');\n\n this.hoursAvailablePerWeek = NaN;\n this.hourlyRate = NaN;\n this.desiredIncomePerWeek = NaN;\n\n $('#btnDefaultPeriod').click();\n\n this.updateChart();\n\n UC.utils.clearValidationErrors('form-report .form-group');\n $('#txtEmail').val('');\n $('.form-report .fancy-tile-container input').prop('checked', false);\n },\n\n onGetReportClick: function(e) {\n e.preventDefault();\n\n UC.utils.clearValidationErrors('form-report .form-group');\n\n if (!this.validateInputValues()) {\n UC.utils.scrollToElement($('#calculator-inputs'));\n return\n }\n\n let errors = [];\n const $emailInput = $('#txtEmail');\n const email = $emailInput.val();\n const checkedLegalTiles = $('.form-report .fancy-tile-container input:checked');\n\n if (!email || email.length === 0) {\n errors.push({\n className: 'form-group',\n element: $emailInput,\n text: 'required'\n });\n } else if (!UC.utils.validateEmail(email)) {\n errors.push({\n className: 'form-group',\n element: $emailInput,\n text: 'Please provide a valid email address'\n });\n }\n\n if (checkedLegalTiles.length === 0) {\n errors.push({\n className: 'form-group',\n element: $('.tiles-row'),\n text: 'At least one practice area must be selected'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'form-inputs .form-group'});\n } else {\n const buttonLoader = $('#btnGetReport').buttonLoader();\n let data = {\n email: email,\n hourly_rate: this.hourlyRate,\n hours_per_week: this.hoursAvailablePerWeek,\n service_type: _.map(checkedLegalTiles, function(one) {\n return $(one).val();\n }).join(',')\n }\n const recaptchaData = this.$('textarea.g-recaptcha-response').val();\n if (recaptchaData) {\n data['g-recaptcha-response'] = recaptchaData\n }\n buttonLoader.showLoader();\n UC.net.post(\n '/income_calculator/get-report',\n data,\n function (response) {\n buttonLoader.hideLoader();\n UC.utils.showNotification(response.message, UC.constants.results.success);\n this.resetReport();\n this.updateRecaptchaFromApiResponse(response);\n }.bind(this)\n ).fail(function(response) {\n buttonLoader.hideLoader();\n this.updateRecaptchaFromApiResponse(response);\n }.bind(this));\n }\n },\n\n updateRecaptchaFromApiResponse: function(response) {\n if (!response) {\n return\n }\n if (response.responseJSON) {\n response = response.responseJSON;\n }\n if (response.recaptcha) {\n $('#recaptchaTags').html(response.recaptcha);\n }\n },\n })\n}();\n","UC = UC || {};\n\nUC.attorneyCreatedReviewsModal = {\n\n init: function(openModalSelector) {\n this.$openModalBtn = $(openModalSelector);\n this.$modalAddReviews = $('#modalAddReviews');\n this.$btnSaveReview = this.$modalAddReviews.find('#btnSaveReview');\n this.$txtTitle = this.$modalAddReviews.find('#txtTitle');\n this.$txtReview = this.$modalAddReviews.find('#txtReview');\n this.$creationSource = this.$modalAddReviews.find('#creation_source');\n\n this.$btnSaveReview.click(this.saveReview.bind(this));\n\n this.$modalAddReviews.find('.js-pf-additional-label').on('click', this.triggerExampleBox.bind(this));\n this.btnSaveLoader = $('#btnSaveReview').buttonLoader();\n\n this.$openModalBtn.on('click', this.openReviewModal.bind(this));\n },\n\n openReviewModal: function (e) {\n e.preventDefault();\n\n this.$modalAddReviews.find('.row').removeClass('has-error');\n\n this.$modalAddReviews.modal({\n backdrop: 'static'\n });\n },\n\n triggerExampleBox: function(e) {\n e.preventDefault();\n $(e.target).closest('.modal').find('.pf-additional').toggleClass('hide');\n },\n\n saveReview: function() {\n var errors = [];\n UC.utils.hideValidationErrors('has-error');\n $('.form-group').removeClass('has-error');\n\n var data = {\n JobTitle: this.$txtTitle.val().trim(),\n DescriptionPublic: this.$txtReview.val().trim(),\n CreationSource: this.$creationSource.val().trim()\n };\n\n if (data.JobTitle == '') {\n errors.push({element: this.$txtTitle, text: 'Please enter a project description'});\n }\n\n if (data.DescriptionPublic == '') {\n errors.push({element: this.$txtReview, text: 'Please enter a client review'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n return\n } else {\n this.btnSaveLoader.showLoader();\n this.submitReview(data);\n };\n },\n\n submitReview: function(data) {\n UC.net.post('/attorney/add_review', { review: data }, function(response) {\n UC.utils.showNotification('Review was successfully added.', UC.constants.results.success);\n this.$txtTitle.val('');\n this.$txtReview.val('');\n\n if (response.numReviews < 2) {\n this.$btnSaveReview.text('Save');\n } else {\n this.$modalAddReviews.modal('hide');\n }\n\n if (response.numReviews > 1) {\n UC.utils.checklistSuccessCallback('btnAddReview');\n }\n\n if (UC.controller === 'attorney_profile' && response.numReviews > 1) {\n this.$openModalBtn.remove();\n }\n }.bind(this)).fail(function(response) {\n var showCallback = function() {\n $('#modalAddReviews').addClass('modal-stacked');\n };\n\n var hideCallback = function() {\n $('#modalAddReviews').removeClass('modal-stacked');\n };\n\n UC.closeTheLoop.handleFailure(response, false, showCallback, hideCallback);\n\n }.bind(this)).always(function() {\n this.btnSaveLoader.hideLoader();\n }.bind(this));\n }\n\n};\n","UC.views.AttorneyProfileCalendarAvailability = Backbone.View.extend({\n\n routes: {\n instant: '/users/{0}/scheduled_calls/instant',\n instant_availability: '/users/{0}/scheduled_calls/instant_availability',\n create_schedule_from_instant_reply: '/users/{0}/scheduled_calls/schedule_from_instant_reply',\n create_message: '/messages'\n },\n\n events: {\n 'click #js-open-time-zone-change': 'openTimezoneChange',\n 'click #js-close-time-zone-change': 'closeTimezoneChange',\n 'focus #js-time-zones': 'focusTimeZone',\n 'click .js-day': 'daySelected',\n 'click .js-time': 'timeSelected',\n 'click .js-switch-pages': 'switchPages',\n 'click #js-submit': 'submitForm',\n 'click #js-previous-available-days-link': 'previousAvailableDays',\n 'click #js-next-available-days-link': 'nextAvailableDays',\n 'click .js-previous-available-times-link': 'previousAvailableTimes',\n 'click .js-next-available-times-link': 'nextAvailableTimes',\n 'change #js-job': 'removeErrors',\n 'submit form.js-send-message': 'submitMessageForm'\n },\n\n initialize: function () {\n this.route = UC.constants.attorneyViewing ?\n this.routes.instant_availability :\n this.routes.instant;\n this.goHam();\n },\n\n removeErrors: function() {\n this.$('.form-group').removeClass('has-error');\n },\n\n submitMessageForm: function(e) {\n e.preventDefault();\n var data = {};\n\n $($(e.currentTarget).serializeArray()).each(function(index, obj){\n data[obj.name] = obj.value;\n });\n \n UC.net.post(this.routes.create_message, data)\n .done(function(result) {\n if (result.result === 'success') {\n UC.utils.showNotification('Successfully Sent Message.', UC.constants.results.success);\n window.location = '/messages';\n } else\n UC.utils.showNotification(result.message, UC.constants.results.failure);\n })\n },\n\n switchPages: function (e) {\n if ($(e.currentTarget).hasClass('disabled')) return;\n var $job = this.$('#js-job');\n\n if ($job.val().isBlank()) {\n UC.utils.showValidationErrors([{\n element: $job,\n text: 'Please select a job.',\n className: 'form-group'\n }]);\n return false\n }\n // UC.utils.recordKissEvent('schedule instant call - clicked ' + $(e.currentTarget).text() + ' btn', this.standardKissData());\n\n this.$('#js-select-time-page').toggleClass('hidden');\n this.$('#js-confirm-time-page').toggleClass('hidden');\n },\n\n setSelectTimeHeader: function (day) {\n var text = (day) ? 'Select a time on ' + day : 'Select a time';\n this.$('#js-select-a-time-header').text('2. ' + text);\n this.$('#js-select-a-day-text').toggleClass('hidden', !!day);\n },\n\n goHam: function () {\n UC.net.get(this.route.format(UC.constants.attorneyId), {\n job_id: UC.constants.jobId,\n is_modal: false,\n jobs: UC.constants.jobs })\n .done(function (res) {\n this.$('.js-call-container').removeClass('hidden');\n if (res.availability) {\n this.render(res.html);\n } else {\n this.$('.js-no-availability').removeClass('hidden');\n }\n }.bind(this))\n .always(function () {\n if (this.hamCallback) this.hamCallback();\n }.bind(this));\n },\n\n nextAvailableDays: function (e) {\n e.preventDefault();\n \n // UC.utils.recordKissEvent('schedule instant call - clicked next available days', this.standardKissData());\n \n var lastVisibleIndex = this.$('.js-day:not(.btn-hidden):last').data('index');\n var nextVisible = this.$('.js-day').slice(lastVisibleIndex + 1, lastVisibleIndex + 4);\n $('.js-day').addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n \n this.toggleDayPaginationLinks();\n },\n\n previousAvailableDays: function (e) {\n e.preventDefault();\n \n // UC.utils.recordKissEvent('schedule instant call - clicked previous available days', this.standardKissData());\n \n var firstVisibleIndex = this.$('.js-day:not(.btn-hidden):first').data('index');\n var nextVisible = this.$('.js-day').slice(firstVisibleIndex - 3, firstVisibleIndex);\n $('.js-day').addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n \n this.toggleDayPaginationLinks();\n },\n\n toggleDayPaginationLinks: function () {\n var showingFirstDays = this.$('.js-day:not(.btn-hidden):first').data('index') == 0;\n $('#js-previous-available-days-text').toggleClass('hidden', !showingFirstDays);\n $('#js-previous-available-days-link').toggleClass('hidden', showingFirstDays);\n \n var showingLastDays = this.$('.js-day:not(.btn-hidden):last').data('index') + 1 >= $('.js-day').length;\n \n $('#js-next-available-days-text').toggleClass('hidden', !showingLastDays);\n $('#js-next-available-days-link').toggleClass('hidden', showingLastDays);\n },\n\n previousAvailableTimes: function (e) {\n e.preventDefault();\n \n // UC.utils.recordKissEvent('schedule instant call - clicked previous available times', this.standardKissData());\n \n var $currentTimesContainer = this.$('.js-times:not(.hidden)');\n var $timeElements = $currentTimesContainer.find('.js-time');\n var firstVisibleIndex = $timeElements.filter(':not(.btn-hidden):first').data('index');\n var nextVisible = $timeElements.slice(firstVisibleIndex - 6, firstVisibleIndex);\n \n $timeElements.addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n \n this.toggleTimePaginationLinks($currentTimesContainer);\n },\n\n nextAvailableTimes: function (e) {\n e.preventDefault();\n \n // UC.utils.recordKissEvent('schedule instant call - clicked next available times', this.standardKissData());\n \n var $currentTimesContainer = this.$('.js-times:not(.hidden)');\n \n var $timeElements = $currentTimesContainer.find('.js-time');\n var lastVisibleIndex = $timeElements.filter(':not(.btn-hidden):last').data('index');\n var nextVisible = $timeElements.slice(lastVisibleIndex + 1, lastVisibleIndex + 7);\n $timeElements.addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n \n this.toggleTimePaginationLinks($currentTimesContainer);\n },\n\n toggleTimePaginationLinks: function ($container) {\n var $timeElements = $container.find('.js-time');\n \n var showingFirstTimes = $timeElements.filter(':not(.btn-hidden):first').data('index') == 0;\n \n $container.find('.js-previous-available-times-text').toggleClass('hidden', !showingFirstTimes);\n $container.find('.js-previous-available-times-link').toggleClass('hidden', showingFirstTimes);\n \n var showingLastTimes = $timeElements.filter(':not(.btn-hidden):last').data('index') + 1 >= $timeElements.length;\n \n this.$('.js-times').find('.js-next-available-times-text').toggleClass('hidden', !showingLastTimes);\n this.$('.js-times').find('.js-next-available-times-link').toggleClass('hidden', showingLastTimes);\n },\n\n resetTimes: function (index) {\n var $container = this.$('.js-times[data-index=\"' + index + '\"]');\n $container.find('.js-time').addClass('btn-hidden');\n $container.find('.js-time').slice(0, 6).removeClass('btn-hidden');\n \n this.toggleTimePaginationLinks($container);\n \n this.$('.js-next').addClass('hidden');\n \n this.$('.js-time').removeClass('btn-primary').removeClass('js-time-selected').addClass('btn-default-outline');\n },\n\n\n daySelected: function (e) {\n var $button = $(e.currentTarget);\n var index = $button.data('index');\n \n this.resetTimes(index);\n \n this.$('.js-times').addClass('hidden');\n \n if ($button.hasClass('js-day-selected')) {\n $button.removeClass('js-day-selected');\n \n this.setSelectTimeHeader();\n \n } else {\n this.$('.js-day').removeClass('js-day-selected');\n $button.addClass('js-day-selected');\n \n this.setSelectTimeHeader($button.data('dateShort'));\n \n this.$('.js-times').addClass('hidden');\n this.$('.js-times[data-index=\"' + index + '\"]').removeClass('hidden');\n }\n \n this.$('.js-day').removeClass('btn-primary').addClass('btn-default-outline');\n this.$('.js-day-selected').addClass('btn-primary').removeClass('btn-default-outline');\n },\n\n timeSelected: function (e) {\n $button = $(e.currentTarget);\n \n if ($button.hasClass('js-time-selected')) {\n $button.removeClass('js-time-selected');\n this.$('.js-next').addClass('hidden');\n } else {\n this.$('.js-time').removeClass('js-time-selected');\n $button.addClass('js-time-selected');\n \n this.$('.js-next').removeClass('hidden');\n \n this.$('#js-scheduled-date-time-epoch').val($button.data('datetimeEpoch'));\n this.$('#js-scheduled-date-time').val($button.data('datetimeRaw'));\n \n this.$('.js-selected-day-time').text($button.data('datetimeLong'));\n }\n \n this.$('.js-time').removeClass('btn-primary').addClass('btn-default-outline');\n this.$('.js-time-selected').addClass('btn-primary').removeClass('btn-default-outline');\n },\n\n serializeForm: function () {\n var data = {\n time_zone: this.$('#js-time-zone').val(),\n message: this.$('#js-message').val(),\n phone: this.$('#js-phone-number').val(),\n ScheduledDateTime: this.$('#js-scheduled-date-time').val(),\n job_id: this.$('#js-job').val()\n };\n \n return data;\n },\n\n validate: function () {\n var errors = [];\n \n var $phone = this.$('#js-phone-number');\n \n if ($phone.val().isBlank()) {\n errors.push({\n element: $phone,\n text: 'Please enter your preferred phone number',\n className: 'form-group'\n });\n }\n \n var $message = this.$('#js-message');\n if ($message.val().isBlank()) {\n errors.push({\n element: $message,\n text: 'Please include a message',\n className: 'form-group'\n });\n }\n \n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n } else {\n return true;\n }\n },\n\n openTimezoneChange: function (e) {\n e.preventDefault();\n \n this.$('#js-change-time-zone, #js-open-time-zone-change').toggleClass('hidden');\n },\n\n closeTimezoneChange: function (e) {\n e.preventDefault();\n \n this.$('#js-change-time-zone, #js-open-time-zone-change').toggleClass('hidden');\n },\n\n focusTimeZone: function(e) {\n var $selectDropdown = $(e.currentTarget);\n var previousValue = $selectDropdown.val();\n\n $selectDropdown.on('change', function(e) {\n this.changeTimeZone(e, previousValue)\n }.bind(this))\n \n },\n \n changeTimeZone: function (e, previousValue) {\n e.preventDefault();\n var $job = this.$('#js-job');\n var error = [];\n\n if ($job.val() === '') {\n error.push({\n element: $job,\n text: 'Please select a job before changing time zone.',\n className: 'form-group'\n });\n UC.utils.showValidationErrors(error);\n $(e.currentTarget).val(previousValue);\n return false\n }\n\n var data = {\n time_zone: this.$('#js-time-zones').val(),\n job_id: this.$('#js-job').val(),\n jobs: UC.constants.jobs,\n is_modal: false,\n time_zone_change: true\n };\n\n UC.net.get(this.route.format(UC.constants.attorneyId), data, function (res) {\n this.$('#js-instant-scheduler-container').replaceWith(res.html)\n }.bind(this));\n\n },\n\n submitForm: function (e) {\n e.preventDefault();\n if (!this.validate()) return;\n \n this.loader.showLoader();\n this.$switchPageBtns.addClass('disabled');\n \n var data = this.serializeForm();\n \n var time_till_call = this.$('#js-scheduled-date-time-epoch').val() - this.$('.modal-dialog').data('modalOpenedAt');\n // UC.utils.recordKissEvent('schedule instant call - scheduled ',\n // $.extend(this.standardKissData(), {scheduled_time: data.ScheduledDateTime, time_till_call: time_till_call})\n // );\n \n UC.net.post(this.routes.create_schedule_from_instant_reply.format(UC.constants.attorneyId), data)\n .done(function (result) {\n UC.utils.showNotification(result.message, UC.constants.results.success);\n this.$('#js-confirm-time-page').toggleClass('hidden');\n this.$('#js-confirmation-page').toggleClass('hidden');\n }.bind(this))\n .always(function () {\n this.loader.hideLoader();\n this.$switchPageBtns.removeClass('disabled');\n }.bind(this));\n },\n\n standardKissData: function () {\n return {\n bid_id: this.bidId,\n job_id: UC.job.id\n };\n },\n\n render: function (html) {\n \n this.setSelectTimeHeader();\n \n this.loader = this.$('#js-submit').buttonLoader();\n this.$switchPageBtns = this.$('.js-switch-pages');\n\n $('.js-instant-call').html(html);\n }\n});\n","!function() {\n\n UC.modals.ContactAttorneyModal= Backbone.View.extend({\n\n events: {\n 'click #sendMsg': 'onSendMessageClick'\n },\n\n initialize: function () {\n this.$el.modal({show: false});\n this.$template = this.$el.clone();\n this.$sendMsgLoader = this.$el.find('#sendMsg').buttonLoader();\n },\n\n open: function () {\n this.$el.modal('show');\n this.$el.on('hidden.bs.modal', this.resetModal.bind(this));\n },\n\n resetModal: function () {\n this.$el = this.$template.clone();\n this.$el.modal({show: false});\n this.delegateEvents();\n },\n\n onSendMessageClick: function (e) {\n this.$JobId = this.$el.find('#JobId');\n this.$Message = this.$el.find('#Message');\n\n e.preventDefault();\n\n var jobId = this.$JobId.val();\n\n if (this.validate()) {\n\n var d = {\n message: {\n JobId: jobId,\n Message: this.$Message.val()\n }\n };\n\n this.$sendMsgLoader.showLoader();\n\n UC.net.post(UC.constants.contactUrl, d).done(function(result) {\n UC.utils.showNotification(\"Your message for this attorney was sent successfully.\", UC.constants.results.success);\n\n if (UC.constants.jobId === jobId) {\n UC.utils.recordKissEvent('Attorney Profile Proposal Contact - Message Sent', {\n jobId: UC.constants.jobId,\n attorneyId: UC.constants.attorneyId,\n userId: UC.user.id\n })\n }\n\n this.$Message.val('');\n this.$el.modal('hide');\n }.bind(this)).always(function() {\n this.$sendMsgLoader.hideLoader();\n }.bind(this));\n\n }\n },\n\n validate: function () {\n var errors = [];\n var job_id = this.$JobId.val();\n var message = this.$Message.val();\n\n UC.utils.clearValidationErrors('form-group');\n\n if (!job_id || job_id === '') {\n errors.push({element: this.$JobId, text: 'Please select a job'});\n }\n\n if (!message || message === '') {\n errors.push({element: this.$Message, text: 'Please provide a message to the attorney'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n return false;\n }\n\n return true;\n }\n });\n\n}();\n","import '../proposals/accept_proposal'\nimport './attorney_created_reviews_modal'\nimport Clipboard from 'clipboard' // webpack-only-import\n\n!function() {\n UC.views.AttorneyProfileShow = Backbone.View.extend({\n\n events: {\n 'click #prevRelevantReviewsLink': 'showPreviousRelevantReviews',\n 'click #nextRelevantReviewsLink': 'showNextRelevantReviews',\n 'click #prev-pub-page' : 'showPreviousPublicationPage',\n 'click #next-pub-page' : 'showNextPublicationPage',\n 'click .pf-contact-btn': 'openContactAttyModal',\n 'click #prevReviewsLink': 'previousReviewPage',\n 'click #nextReviewsLink': 'nextReviewPage',\n 'click #show-all-reviews-link': 'showAllReviews',\n 'click #show-relevant-reviews-link': 'showRelevantReviews',\n 'click #btnWorkHistoryPrev': 'prevWorkHistoryPage',\n 'click #btnWorkHistoryNext': 'nextWorkHistoryPage',\n 'click #bioMoreLink': 'bioMoreLink',\n 'click #btnAddNewWorkHistory': 'openEditWorkHistoryModal',\n 'click #btnEditBiography': 'openEditBioModal',\n 'click #btnAddPastClients': 'openAddPastClientsModal',\n 'click #btnEditPastClients': 'openEditPastClientsModal',\n 'click #btnEditPracticeAreas': 'openEditPracticeAreasModal',\n 'click #btnEditIndustries': 'openEditIndustriesModal',\n 'click #btnOpenLanguagesModal': 'openEditLanguagesModal',\n 'click #copyReviewPortalLink': 'copyReviewPortalLink',\n 'click .contact-non-subscribed': 'trackNonSubscribedAttorneyWebsiteClick',\n 'click .btn-edit-main': 'openEditMainModal',\n },\n\n initialize: function() {\n var acceptJobProposalOptions = {\n acceptProposalButtonSelector: '.atty-profile-accept-proposal-btn',\n jobId: UC.constants.jobId,\n bidId: UC.constants.bidId,\n hideHireHelpModal: UC.constants.hideHireHelpModal\n };\n UC.acceptJobProposal.init(acceptJobProposalOptions);\n\n this.$publicationPages = this.$('.publication-page-group');\n\n if(this.$publicationPages.length > 0) {\n this.lastPublicationPageNum = this.$publicationPages.eq(this.$publicationPages.length -1).data('page');\n } else {\n this.lastPublicationPageNum = 0;\n }\n\n this.contactAttorneyModal = new UC.modals.ContactAttorneyModal({\n el: '#contactAttorneyModal'\n });\n\n this.setListeners();\n\n if (this.$('#profile-bid-details').length) {\n UC.utils.recordKissEvent('Attorney Profile Proposal Shown', {jobId: UC.constants.jobId, attorneyId: UC.constants.attorneyId, userId: UC.user.id})\n }\n\n this.$el.find('.help').tooltip();\n\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n\n UC.utils.initRatingDimensions('.review-dimensions');\n\n this.initPracticeAreaPopovers();\n\n this.initCoolFixedHeaderSlidingThingy();\n\n this.$('#average-rating-dimensions').click(function() {\n UC.utils.scrollToElement('#reviews', { offset: 0 });\n });\n\n if (UC.constants.isOwner) {\n\n this.$editWorkHistoryModal = new UC.modals.EditWorkHistory({\n updateWorkHistoryPagination: this.updateWorkHistoryPagination\n });\n\n this.$editBioModal = new UC.modals.EditBio({\n biographyContent: this.$('#biographyContent')\n });\n\n this.$editMainModal = new UC.modals.EditMainAttorneyProfileDetails();\n\n this.$addPastClientsModal = new UC.modals.AttorneyProfileAddPastClients();\n\n this.$editPastClientsModal = new UC.modals.AttorneyProfileEditPastClients();\n\n this.$openPracticeAreasModal = new UC.modals.EditPracticeAreas({\n initPracticeAreaPopovers: this.initPracticeAreaPopovers.bind(this)\n });\n\n this.$openEditIndustriesModal = new UC.modals.EditIndustries({\n saveIndustriesCallback: this.saveIndustriesCallback.bind(this)\n });\n\n this.$openEditLanguagesModal = new UC.modals.EditLanguages({\n saveCallback: this.saveLanguagesCallback.bind(this)\n });\n\n UC.attorneyCreatedReviewsModal.init('#btnAddReview');\n\n this.editModals();\n }\n\n new UC.components.InputWithCopyButton({inputId: 'referral-url'});\n\n new Clipboard('#copyReviewPortalLink', {\n text: function () {\n return $('#reviewPortalLink').attr('href');\n },\n }).on('success', function(e) {\n const link = $('#copyReviewPortalLink');\n link.fadeOut(100, function() {\n link.text('copied!').fadeIn(100);\n });\n });\n },\n\n bioMoreLink: function(e) {\n if (e) e.preventDefault();\n e.preventDefault();\n this.$('#biography').addClass('active');\n },\n\n openEditBioModal: function(e) {\n this.$editBioModal.openBioModal(e);\n },\n\n openEditMainModal: function(e) {\n this.$editMainModal.openModal(e);\n },\n\n openEditWorkHistoryModal: function(e) {\n this.$editWorkHistoryModal.openModal(e);\n },\n\n openAddPastClientsModal: function(e) {\n if (e) e.preventDefault();\n this.$addPastClientsModal.render();\n },\n\n openEditPastClientsModal: function(e) {\n if (e) e.preventDefault();\n this.$editPastClientsModal.render();\n },\n\n openEditPracticeAreasModal: function(e) {\n if (e) e.preventDefault();\n this.$openPracticeAreasModal.openModal();\n },\n\n openEditIndustriesModal: function(e) {\n if (e) e.preventDefault();\n this.$openEditIndustriesModal.openModal();\n },\n\n openEditLanguagesModal: function(e) {\n if (e) e.preventDefault();\n this.$openEditLanguagesModal.openModal();\n },\n\n setListeners: function() {\n var $bidDetailContactAttyBtn = $('.bid-detail-contact-atty-btn');\n var $acceptProposalBtn = $('.atty-profile-accept-proposal-btn');\n\n if ($bidDetailContactAttyBtn.length > 0 && UC.user) {\n $bidDetailContactAttyBtn.on('click', this.openContactAttyModal.bind(this));\n }\n\n if ($acceptProposalBtn.length > 0 && UC.user) {\n UC.utils.recordKissClickEvent(\n '.atty-profile-accept-proposal-btn',\n 'Attorney Profile Proposal - Hire Button Clicked',\n {\n jobId: UC.constants.jobId,\n attorneyId: UC.constants.attorneyId,\n userId: UC.user.id\n }\n );\n }\n },\n\n renderRelevantReviewPage: function(page) {\n UC.utils.scrollToElement('#reviews', { offset: 41 });\n\n var uri = '{0}?page={1}&relevant_page={2}&job_id={3}&viewing_relevant=1'.format(UC.constants.reviewsPath, UC.constants.reviewsPagination.current_page, page, UC.job.id)\n\n var that = this;\n $.get(uri, function(html) {\n UC.constants.relevantReviewsPagination.current_page = page;\n that.$('#reviewsWrapper').replaceWith(html);\n UC.utils.initRatingDimensions('.review-dimensions');\n })\n },\n\n showPreviousRelevantReviews: function(e) {\n e.preventDefault();\n var page = UC.constants.relevantReviewsPagination.current_page;\n this.renderRelevantReviewPage(page - 1);\n },\n\n showNextRelevantReviews: function(e) {\n e.preventDefault();\n var page = UC.constants.relevantReviewsPagination.current_page;\n this.renderRelevantReviewPage(page + 1);\n },\n\n previousReviewPage: function(e) {\n e.preventDefault();\n var page = UC.constants.reviewsPagination.current_page;\n this.renderReviewPage(page - 1);\n },\n\n nextReviewPage: function(e) {\n e.preventDefault();\n var page = UC.constants.reviewsPagination.current_page;\n this.renderReviewPage(page + 1);\n },\n\n renderReviewPage: function(page) {\n UC.utils.scrollToElement('#reviews', { offset: 41 });\n\n var uri = '{0}?page={1}'.format(UC.constants.reviewsPath, page);\n\n if (UC.constants.relevantReviewsPagination) {\n var currentPage = UC.constants.relevantReviewsPagination.current_page;\n uri += '&relevant_page={0}&job_id={1}'.format(currentPage, UC.job.id);\n }\n\n var that = this;\n $.get(uri, function(html) {\n UC.constants.reviewsPagination.current_page = page;\n that.$('#reviewsWrapper').replaceWith(html);\n UC.utils.initRatingDimensions('.review-dimensions');\n });\n },\n\n showAllReviews: function () {\n this.$('#show-relevant-reviews-link').removeClass('active');\n this.$('#show-all-reviews-link').addClass('active');\n\n this.$('#allReviewsWrapper').removeClass('hidden');\n this.$('#relevantReviewsWrapper').addClass('hidden');\n },\n\n showRelevantReviews: function () {\n this.$('#show-relevant-reviews-link').addClass('active');\n this.$('#show-all-reviews-link').removeClass('active');\n\n this.$('#allReviewsWrapper').addClass('hidden');\n this.$('#relevantReviewsWrapper').removeClass('hidden');\n },\n\n prevWorkHistoryPage: function(e) {\n e.preventDefault();\n\n UC.utils.scrollToElement('#work-history', { offset: 41 });\n\n var $current = this.$('#workHistoryContent .tab-pane.active');\n $current.removeClass('active').prev().addClass('active');\n\n this.updateWorkHistoryPagination();\n },\n\n nextWorkHistoryPage: function(e) {\n e.preventDefault();\n\n UC.utils.scrollToElement('#work-history', { offset: 0 });\n\n var $current = this.$('#workHistoryContent .tab-pane.active');\n $current.removeClass('active').next().addClass('active');\n\n this.updateWorkHistoryPagination();\n },\n\n updateWorkHistoryPagination: function() {\n var $tabs = this.$('#workHistoryContent .tab-pane');\n var $current = $tabs.filter('.active');\n var $prev = this.$('#btnWorkHistoryPrev');\n var $next = this.$('#btnWorkHistoryNext');\n\n if ($current.index() > 0) {\n $prev.removeClass('hide');\n } else {\n $prev.addClass('hide');\n }\n\n if ($current.index() < $tabs.length - 1) {\n $next.removeClass('hide');\n } else {\n $next.addClass('hide');\n }\n },\n\n saveIndustriesCallback: function(response) {\n this.$('#industriesContent').html(response.html);\n },\n\n saveLanguagesCallback: function(response) {\n this.$('#languagesContent').html(response.html);\n },\n\n initPracticeAreaPopovers: function() {\n this.$('.legal-group').each(function() {\n var $popover_handle = $(this).find('.popover-handle');\n $popover_handle.popover({\n trigger: 'hover',\n container: $(this),\n html: true,\n placement: function() { return $(window).width() < 975 ? 'top' : 'right auto'; },\n content: $(this).find('.legal-group-popover').html()\n });\n\n $(this).hover(function() {\n $popover_handle.popover('show');\n }, function() {\n $popover_handle.popover('hide');\n });\n });\n },\n\n initCoolFixedHeaderSlidingThingy: function() {\n var $overview = this.$('#overview');\n if ($overview.length === 0) {\n return; // for inactive profiles\n }\n var $nav = this.$('#sub-nav');\n var $fixed_nav = $nav.clone().addClass('navbar-fixed-top slide-down').appendTo('#content');\n var $doc = $(document);\n\n $('body').scrollspy({\n target: '.sub-nav',\n offset: 41\n });\n\n var fixed_start = $overview.offset().top;\n\n $(window).scroll(function() {\n var scroll_top = $doc.scrollTop();\n\n if (scroll_top >= fixed_start) {\n $fixed_nav.addClass('active');\n } else {\n\n if (this.auto_scrolling == true) {\n return;\n }\n\n $fixed_nav.removeClass('active');\n }\n });\n\n // smooth scrolling\n this.$('.sub-nav a').click(this.onNavClick);\n },\n\n onNavClick: function (e) {\n e.preventDefault();\n\n var $this = $(this);\n var tab = $this.attr('href');\n var target = $($this.attr('href'));\n\n this.auto_scrolling = true;\n\n UC.utils.scrollToElement(target, {\n offset: 41,\n callback: function() {\n setTimeout(function() {\n this.auto_scrolling = false;\n }, 100);\n }\n });\n UC.utils.recordKissEvent('Profile - Nav Tab Click', {'page' : tab });\n },\n\n editModals: function() {\n var locationHash = location.hash.replace('#', '');\n\n if (locationHash.indexOf('edit') == 0) {\n switch(locationHash){\n case 'edit-bio':\n this.openEditBioModal();\n break;\n case 'edit-main':\n this.openEditMainModal()\n break;\n case 'edit-areas':\n this.openEditPracticeAreasModal();\n break;\n case 'edit-industries':\n this.openEditIndustriesModal();\n break;\n }\n } else if (UC.utils.getParameterByName('act') === 'contact') {\n UC.page.profile.onContactAttorneyClick();\n }\n },\n\n openContactAttyModal: function(e) {\n e.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n new UC.modals.ModalPendingUser().render('Please confirm your email address before sending a message');\n } else {\n this.contactAttorneyModal.open();\n }\n },\n\n showPreviousPublicationPage: function(e) {\n if (e) e.preventDefault();\n var currentPage = this.$publicationPages.filter('.active').data('page');\n var prevPage = currentPage - 1;\n this.$publicationPages.removeClass('active');\n this.$publicationPages.filter('[data-page=\"' + prevPage + '\"]').addClass('active');\n this.updatePubPageBtns(prevPage);\n },\n\n showNextPublicationPage: function(e) {\n if (e) e.preventDefault();\n var currentPage = this.$publicationPages.filter('.active').data('page');\n var nextPage = currentPage + 1;\n this.$publicationPages.removeClass('active');\n this.$publicationPages.filter('[data-page=\"' + nextPage + '\"]').addClass('active');\n this.updatePubPageBtns(nextPage);\n },\n\n updatePubPageBtns: function(pageShown) {\n if(pageShown === 1) this.$('#prev-pub-page').addClass('hidden');\n if(pageShown > 1) this.$('#prev-pub-page').removeClass('hidden');\n if(pageShown < this.lastPublicationPageNum) $('#next-pub-page').removeClass('hidden');\n if(pageShown === this.lastPublicationPageNum) $('#next-pub-page').addClass('hidden');\n },\n\n trackNonSubscribedAttorneyWebsiteClick: function(e) {\n UC.utils.sendNesEvent('redirect_to_personal_website', {attorney_id: UC.constants.attorneyId})\n },\n\n copyReviewPortalLink: function(e) {\n if (e) e.preventDefault();\n }\n })\n}();\n","UC.partials.SelectCalendar = Backbone.View.extend({\n\n initialize: function(opts) {\n this.$btn = $(opts.btnSelector);\n this.$btnLoader = this.$btn.buttonLoader();\n this.callsPage = opts.callsPage;\n\n this.$btn.on('click', this.openCalSelectModal.bind(this));\n\n if (opts.openImmediately) this.openCalSelectModal();\n },\n\n routes: {\n select_calendar: '/calendars/select',\n calendars: '/calendars',\n calls: '/calls'\n },\n\n openCalSelectModal: function(e) {\n if (e) e.preventDefault();\n\n this.$btnLoader.showLoader();\n\n UC.net.get(this.routes.select_calendar)\n .done(function(res) {\n new UC.partials.modalV9({\n modalTitle: 'Select Your Calendar',\n modalContent: res.html,\n renderCallback: this.initForm.bind(this)\n });\n }.bind(this))\n .always(function(){\n this.$btnLoader.hideLoader();\n }.bind(this));\n },\n\n initForm: function() {\n this.$submitBtnLoader = $('#submit-cal').buttonLoader();\n\n this.$selectCalForm = $('#select-cal-form');\n\n this.$selectCalForm.find('select').select2({width: '100%'});\n\n this.$selectCalForm.on('submit', this.onFormSubmit.bind(this));\n },\n\n onFormSubmit: function(e) {\n e.preventDefault();\n this.$submitBtnLoader.showLoader();\n\n var formData = this.$selectCalForm.serializeJSON();\n var selectedOpt = this.$selectCalForm.find('#cronofy-cal-select option:selected');\n\n // Enrich the response with additional values returned from the API which will be used\n // for display purposes\n formData.cronofy_calendar.Name = selectedOpt.data('name');\n formData.cronofy_calendar.ProfileName = selectedOpt.data('profile-name');\n\n var formPath = this.$selectCalForm.attr('action');\n\n UC.net.post(formPath, formData)\n .done(function() {\n if(this.callsPage) {\n location.href = this.routes.calls;\n } else {\n location.href = this.routes.calendars;\n }\n }.bind(this))\n .fail(function() {\n this.$submitBtnLoader.hideLoader();\n }.bind(this));\n\n }\n\n});\n","UC.views.CalendarsIndex = Backbone.View.extend({\n events: {\n \"click #disconnect-cal\" : \"disconnectCal\",\n 'click .js-connect-cal': 'handleConnectCallClick'\n },\n\n routes: {\n disconnect_calendar: '/calendars/disconnect',\n calendars: '/calendars'\n },\n\n initialize: function() {\n // This div will only be present if the user's calendar has been connected\n if ($('#availability-time-range-container').length) {\n new UC.components.AvailabilityTimeRangesView({\n el: '#availability-time-range-container'\n });\n new UC.partials.SelectCalendar({\n btnSelector: '#select-cal',\n openImmediately: UC.constants.showSelectCalModal\n });\n }\n\n if (UC.utils.getParameterByName('post_auth') === 'true') {\n window.history.pushState({}, null, '/calendars')\n }\n },\n \n handleConnectCallClick: function() {\n UC.utils.sendNesEvent('connect_your_calendar_clicked', { attorney_id: UC.user.id });\n },\n\n disconnectCal: function(e) {\n e.preventDefault();\n var confirmationMsg = 'Are you sure you wish to disconnect your calendars?';\n\n UC.utils.showConfirmModal('Confirm', confirmationMsg, function (confirmed) {\n if (confirmed) {\n UC.net.destroy(this.routes.disconnect_calendar, null, function (data) {\n location.href = this.routes.calendars;\n }.bind(this));\n }\n }.bind(this));\n }\n\n});\n","!function() {\n UC.views.CallsIndex = Backbone.View.extend({\n\n events: {\n 'change #filterCallHistory': 'filterCallHistory',\n 'click .initiate-call': 'call',\n 'click .js-copy-share-btn': 'handleCopyShare',\n 'click .cancel-sched-call' : 'openCancelSchedCallModal',\n 'click .js-connect-cal': 'handleConnectCallClick'\n },\n\n initialize: function() {\n this.$el.find('#filterCallHistory').select2();\n if ($('#scheduled-calls').length > 0) {\n var dashboard_scheduled_calls = new UC.views.DashboardScheduledCalls({\n el: '#scheduled-calls'\n });\n }\n\n if (UC.utils.getParameterByName('post_auth') === 'true') {\n if ($('.integrated-calendar').length > 0) {\n new UC.partials.SelectCalendar({\n btnSelector: '#select-cal',\n openImmediately: UC.constants.showSelectCalModal,\n callsPage: true\n });\n }\n\n window.history.pushState({}, null, '/calls')\n }\n },\n \n openCancelSchedCallModal: function(e) {\n e.preventDefault();\n var scheduledCallId = $(e.currentTarget).data('scheduled-call-id');\n new UC.partials.ScheduledCallsCancel({scheduledCallId: scheduledCallId});\n },\n \n handleConnectCallClick: function() {\n UC.utils.sendNesEvent('connect_your_calendar_clicked', { attorney_id: UC.user.id });\n },\n\n handleCopyShare: function() {\n document.querySelector('.copy-share-calendar-url').select();\n document.execCommand('copy');\n \n UC.utils.sendNesEvent('attorney_calendar_copy_url_clicked', { attorney_id: UC.user.id });\n\n this.$('.js-copy-share-btn').fadeOut(function() {\n $(this).text('Copied').addClass('text-green').fadeIn('slow');\n });\n },\n\n call: function(e) {\n e.preventDefault();\n new UC.views.CallsModalInitiate({\n to: $(e.currentTarget).data('phone'),\n job_id: UC.constants.jobId\n }).render();\n },\n\n filterCallHistory: function(e) {\n var client_id = $(e.target).val();\n window.location = window.location.pathname + '?client_id={0}'.format(client_id);\n }\n });\n}();\n","!function() {\n\n UC.views.CallsModalInitiate = Backbone.View.extend({\n\n className: 'modal fade',\n\n template: UC.views.resolveHandlebarsTemplate('public/calls/modal_initiate'),\n\n events: {\n 'click #call': 'call',\n 'hidden.bs.modal': 'removeModalDiv',\n 'click #call-modal-cancel' : 'closeModal'\n },\n\n initialize: function(options) {\n this.options = options || {};\n return this;\n },\n\n render: function() {\n this.$el.html(this.template());\n $('body').append(this.$el);\n this.loader = this.$el.find('#call').buttonLoader();\n this.$el.modal();\n },\n\n call: function(e) {\n\n var data = {\n to: this.options.to,\n job_id: this.options.job_id\n };\n\n this.loader.showLoader();\n\n UC.net.post('/calls', data, function(err, data) {\n this.$el.modal('hide');\n if(err){\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n UC.utils.showNotification(\"Call is being initiated. Please wait while we connect you.\", UC.constants.results.success);\n }\n //this.loader.hideLoader();\n //this.pollForStatus(data.id);\n }.bind(this));\n },\n\n // TODO: make this work\n pollForStatus: function(call_id) {\n this.poll = setInterval(function() {\n var path = '/calls/{0}'.format(call_id);\n\n UC.net.get(path, function(err, data) {\n var status = data.Status;\n\n if (status == 'queued' || status == 'ringing' || status == 'in-progress') {\n this.$el.find('#call').html(data.Status + '...');\n } else {\n clearInterval(this.poll);\n UC.utils.hideModal(this.$el);\n }\n }.bind(this));\n }.bind(this), 2000);\n },\n\n closeModal: function() {\n this.$el.modal('hide');\n },\n\n removeModalDiv: function() {\n this.$el.remove();\n }\n\n });\n}();\n","!function() {\n\n UC.views.ClientComplaintsShow = UC.views.ClientComplaintsUpdate = Backbone.View.extend({\n\n events: {\n 'click #upload-documents': 'openFilePicker'\n },\n\n initialize: function() {\n this.$description = this.$('#client_complaint_ClientComplaintQuestionnaire_attributes_Description');\n this.$description.attachmentTextarea({\n skipPathPrefix: true,\n source_type: UC.constants.source_type,\n upload_path: UC.constants.upload_path,\n attachments: UC.constants.attachments_questionnaire,\n inputName: 'client_complaint[ClientComplaintQuestionnaire_attributes][UserDocumentIds][]'\n });\n },\n\n openFilePicker: function(e) {\n e.preventDefault();\n this.$description.attachmentTextarea('openFilePicker');\n }\n });\n}();\n","UC.views.DocumentDownloadOffer = Backbone.View.extend({\n className: 'modal',\n\n offerTemplate: UC.views.resolveHandlebarsTemplate(\"public/document_download_offer\"),\n\n events: {\n 'click .js-acceptOffer': 'onAcceptOffer'\n },\n\n initialize: function(opt) {\n this.onAccept = opt.onAccept\n\n this.$el.html(this.offerTemplate()).modal();\n },\n\n onAcceptOffer: function(e) {\n this.onAccept()\n }\n});\n","UC.partials.PayAndDownloadDocument = Backbone.View.extend({\n\n events: {\n 'click .js-downloadDocument': 'onDownloadClick',\n },\n\n initialize: function(opt) {\n this.clickTrackingProps = opt.clickTrackingProps\n },\n\n onDownloadClick: function(e) {\n var eventProps = this.clickTrackingProps('document_download_page');\n UC.utils.recordKissEvent('click_download-for-free', eventProps);\n this.showDownloadModal();\n },\n\n showDownloadModal: function() {\n new UC.views.DocumentDownloadOffer({\n onAccept: this.handleAcceptDocumentOffer.bind(this)\n });\n },\n\n handleAcceptDocumentOffer: function() {\n if (UC.constants.loggedIn) {\n console.log('Need to implement payment modal');\n } else {\n new UC.views.RegisterUserForDocumentDownload({\n onRegisterSuccess: this.handleRegisterSuccess\n })\n }\n },\n\n handleRegisterSuccess: function () {\n console.log('Need to implement payment modal');\n },\n\n downloadDocument: function() {\n var iframeString =\n '';\n $('body').append(iframeString.format($('#DocumentId').val()));\n },\n});\n","UC.views.RegisterUserForDocumentDownload = Backbone.View.extend({\n el: '#registerUserForDocumentDownload',\n\n events: {\n 'click .js-onRegister': 'onRegisterClick',\n },\n\n initialize: function(opt) {\n $('#registerUserForDocumentDownload').modal();\n\n this.signupForm = new UC.partials.UsersForm({\n beforeRegister: this.setDocumentDownloadData.bind(this),\n onRegister: opt.onRegisterSuccess\n });\n },\n\n // TODO: Implement tracking\n // clickTrackingProps: function (location) {\n // return {\n // 'author_attorney_id': this.$('#AuthorId').val(),\n // 'document_id': this.$('#DocumentId').val(),\n // 'loc': location || 'document_download_modal',\n // 'logged-in': (UC.user ? true : false)\n // };\n // },\n\n onRegisterClick: function () {\n // TODO: Implement tracking\n // UC.utils.recordKissEvent('click-on-register-user', this.clickTrackingProps());\n this.signupForm.validate();\n },\n\n setDocumentDownloadData: function (data) {\n data.document_id = this.$('#js-RegisterUserForDocumentDownload').data().documentId;\n }\n});\n","import {findAndActivateEzoicAdPlaceholders, injectEzoicAdPlaceholders} from '../../../utils/ezoic_ads'\nimport '../../../components/table_of_contents'\n\nUC.partials.ContentPagesShowArticle = Backbone.View.extend({\n\n stickyStart: 0,\n showStickySection: false,\n\n initialize: function () {\n UC.utils.recordKissEvent('viewed an article', {\n 'article_id' : this.$el.find('#ArticleId').val(),\n 'author_attorney_id': this.$el.find('#AuthorId').val(),\n });\n\n $('.article-body a').on('click propogateTracking', function(e) {\n UC.utils.handleGenericClick($(this), 'article-internal-link-clicked');\n });\n\n // TODO: Remove when Samsung fixes this issue - https://github.com/SamsungInternet/support/issues/56\n Function.prototype.ToString = function () { return this.toString(); }\n\n var that = this;\n var header = $('.document');\n\n this.initTocComponents();\n\n if($('.js-sticky-cta-test').length > 0) {\n this.showStickyFooter = true;\n this.optOutStickyFooter = false;\n if(UC.utils.isMobileViewPort()) {\n $('.js-cancel-sticky-footer').click(function() {\n this.hideStickyCtaFooter();\n this.optOutStickyFooter = true;\n }.bind(this));\n }\n UC.components.contentPage.setCtaBannerSize(header);\n $(document).scroll(function () {\n if(!that.optOutStickyFooter) {\n UC.components.contentPage.setCtaBannerSize(header);\n }\n });\n }\n\n var $stickySection = $('.js-sticky-section');\n\n if (this.showStickyFooter) {\n $stickySection.on('show.bs.dropdown', function () {\n that.hideStickyCtaFooter();\n }).on('hide.bs.dropdown', function () {\n if(!that.optOutStickyFooter) {\n UC.components.contentPage.setCtaBannerSize(header);\n }\n })\n\n $('#mobile-nav').on('mobile-nav-closed', function() {\n if(!that.optOutStickyFooter) {\n UC.components.contentPage.setCtaBannerSize(header);\n }\n })\n }\n const isMobile = UC && UC.browser && typeof UC.browser.isMobile === 'function' && UC.browser.isMobile();\n const $stickyHeader = $('.sticky-cta-header');\n const stickyHeaderHeight = Math.max($stickyHeader.length && !isMobile ? $stickyHeader.height() : 0, 0);\n\n if (stickyHeaderHeight) {\n $('.sticky-section').css('top', stickyHeaderHeight);\n }\n\n if (UC.constants.ezoicEnabled) {\n injectEzoicAdPlaceholders('.article-body', 5, 105);\n\n findAndActivateEzoicAdPlaceholders();\n }\n },\n\n hideStickyCtaFooter: function() {\n this.showStickyFooter = false;\n UC.components.contentPage.removeCtaStickyFooter();\n },\n\n initTocComponents: function() {\n if (!UC.constants.displayToc) {\n return;\n }\n\n new UC.components.TableOfContents({\n scope: '.article-body',\n affixTop: 65 /* $header-height-desktop */,\n affixBottom: function() {\n return document.getElementById(\"content\").getBoundingClientRect().height - $('#articlePreview').height() - 270;\n },\n tocEnabledColumnClass: 'col-md-7',\n tocDisabledColumnClass: 'col-md-9'\n })\n }\n});\n","UC.partials.ContentPagesShowContentHub = Backbone.View.extend({\n initialize: function () {\n this.$tiles = this.$el.find('.ch-tile');\n this.$attorneyCarouselContainer = this.$el.find(\"#attorney-carousel-container\");\n\n this.resizeTiles();\n\n if (this.$attorneyCarouselContainer.length > 0) {\n this.initAttorneyCarousel();\n this.standardizeAttorneyCardHeight();\n }\n },\n\n resizeTiles: function () {\n var maxHeight = 0;\n this.$tiles.each(function(){\n if ($(this).height() > maxHeight) maxHeight = $(this).height();\n });\n this.$tiles.height(maxHeight);\n },\n\n initAttorneyCarousel: function () {\n if (typeof $.fn.slick !== 'function') {\n console.log('slick is not initialized yet.');\n return;\n }\n this.$attorneyCarouselContainer.slick({\n slidesToShow: 3,\n slidesToScroll: 3,\n // autoplay: true,\n nextArrow: \"\",\n prevArrow: \"\",\n responsive: [\n {\n breakpoint: 992,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n },\n {\n breakpoint: UC.constants.minSmallScreen,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n ]\n });\n },\n\n standardizeAttorneyCardHeight: function () {\n var cards = this.$el.find(\".attorney-carousel-card\");\n var heights = cards.map(function () {\n return $(this).height()\n });\n var maxHeight = Math.max.apply(null, heights);\n\n cards.each(function () { $(this).height(maxHeight) });\n }\n});\n","!function() {\n\n UC.partials.ContentPagesShowContentSubHub = Backbone.View.extend({\n\n events: {\n 'click .csh-see-more-btn' : 'showHiddenXSContent',\n 'click .csh-see-less-btn' : 'hideXSContent'\n },\n\n initialize: function() {\n this.$tiles = this.$el.find('.ch-tile');\n this.resizeTiles();\n },\n\n resizeTiles: function() {\n var maxHeight = 0;\n this.$tiles.each(function(){\n if ($(this).height() > maxHeight) maxHeight = $(this).height();\n });\n this.$tiles.height(maxHeight);\n },\n\n showHiddenXSContent: function(e) {\n var $btn = $(e.currentTarget);\n var $section = $btn.closest('.csh-section-container');\n $section.find('.toggle-show').removeClass('hidden-xs');\n $btn.addClass('hidden-xs');\n },\n\n hideXSContent: function(e) {\n var $btn = $(e.currentTarget);\n var $section = $btn.closest('.csh-section-container');\n $section.find('.toggle-show').addClass('hidden-xs');\n $section.find('.csh-see-more-btn').removeClass('hidden-xs');\n }\n\n });\n\n}();\n","import { renderTwoFactorRequestModal } from '../multi_factor_auth/functions'\n\nUC.partials.ContentPagesShowDocument = Backbone.View.extend({\n\n accountTypeLabels: {\n 0: 'attorney',\n 1: 'client'\n },\n\n components: {\n sendMsgLoader: $('#sendMsg').buttonLoader()\n },\n\n data: {\n account: {},\n loggedIn: UC.constants.loggedIn || false\n },\n\n events: {\n 'click #btnRegister': 'onRegisterClick',\n 'click #close-share-doc-modal': 'closeShareDocModal',\n 'click .doc-download__back-btn': 'onBackBtnClick',\n 'click .doc-download__next-btn': 'onNextBtnClick',\n 'click .downloadDoc': 'onDownloadClick',\n 'click #sendMsg': 'onShareClick',\n 'click .shareDoc': 'showShareModal'\n },\n\n initialize: function () {\n if (!UC.constants.internalDoc) {\n this.$('#docPreview').click(this.downloadBtnAnimate.bind(this));\n }\n\n this.downloadDocIfHashPresent();\n this.registerScrollEvent();\n this.renderSelectFields();\n this.startKissTracking();\n this.signupForm = new UC.partials.UsersForm({\n beforeRegister: this.setDocumentDownloadData.bind(this),\n oauthLoginCallback: this.respondToUpdatedUser.bind(this),\n onRegister: this.respondToCreateUser.bind(this),\n onRegistrationFailure: this.onBackBtnClick.bind(this)\n });\n\n if ($('.js-downloadDocument').length) {\n new UC.partials.PayAndDownloadDocument({\n el: this.$el,\n clickTrackingProps: this.clickTrackingProps\n })\n }\n },\n\n accountTypeLabel: function () {\n return this.accountTypeLabels[this.data.account.Type];\n },\n\n attorneyValid: function () {\n this.$(this.registrationModalId() + ' div').removeClass('has-error');\n var barStatesInvalid = !this.$('#selectBarStates').val(),\n legalGroupsInvalid = !this.$('#selectLegalGroups').val(),\n errors = [];\n\n if (barStatesInvalid) {\n errors.push({\n element: this.$('#selectBarStates'),\n text: 'Please specify a state in which you are certified'\n });\n }\n if (legalGroupsInvalid) {\n errors.push({\n element: this.$('#selectLegalGroups'),\n text: 'Please specify a legal practice area'\n });\n }\n\n UC.utils.showValidationErrors(errors, { className: 'input-container' });\n return !barStatesInvalid && !legalGroupsInvalid;\n },\n\n clickTrackingProps: function (location) {\n return {\n 'author_attorney_id': this.$('#AuthorId').val(),\n 'document_id': this.$('#DocumentId').val(),\n 'loc': location || 'document_download_modal',\n 'logged-in': (UC.user ? true : false)\n };\n },\n\n clientValid: function () {\n this.$(this.registrationModalId() + ' div').removeClass('has-error');\n var companyNameInvalid = !this.$('#txtCompanyName').val(),\n companySizeRangeInvalid = !this.$('#selectCompanySizeRange').val(),\n industryInvalid = !this.$('#selectIndustry').val(),\n errors = [];\n\n if (companyNameInvalid) {\n errors.push({\n element: this.$('#txtCompanyName'), text: 'Please specify a company name'\n });\n }\n if (companySizeRangeInvalid) {\n errors.push({\n element: this.$('#selectCompanySizeRange'), text: 'Please specify an employee count'\n });\n }\n if (industryInvalid) {\n errors.push({\n element: this.$('#selectIndustry'), text: 'Please specify a company industry'\n });\n }\n\n UC.utils.showValidationErrors(errors, { className: 'input-container' });\n return !companyNameInvalid && !companySizeRangeInvalid && !industryInvalid;\n },\n\n closeShareDocModal: function (e) {\n e.preventDefault();\n this.$('#shareModal').modal('hide');\n },\n\n downloadBtnAnimate: function (e) {\n e.preventDefault();\n this.$('.downloadDoc').addClass('wiggle');\n\n setTimeout(function (){\n this.$('.downloadDoc').removeClass('wiggle');\n }.bind(this), 600);\n },\n\n downloadDocIfHashPresent: function () {\n if (window.location.hash) {\n // Puts hash in variable, and removes the # character\n var hash = window.location.hash.substring(1);\n if (hash === 'download') this.onDownloadClick();\n }\n },\n\n downloadDocument: function() {\n var iframeString =\n '';\n $('body').append(iframeString.format($('#DocumentId').val()));\n },\n\n hideAllDownloadPanels: function () {\n this.$('.doc-modal').addClass('hidden');\n },\n\n hideError: function () {\n this.$('#downloadErrorMessage').text('');\n UC.utils.hidePanel(this.$('#downloadError'));\n },\n\n hideShareValidationErrors: function () {\n this.$('#SenderName').closest('.row').removeClass('has-error');\n this.$('#SenderEmail').closest('.row').removeClass('has-error');\n this.$('#Emails').closest('.row').removeClass('has-error');\n this.$('#EmailMessage').closest('.row').removeClass('has-error');\n },\n\n onBackBtnClick: function () {\n $(this.registrationModalId()).addClass('hidden');\n this.$('#registrationStepOne').removeClass('hidden');\n UC.utils.recordKissEvent('click_back-btn', this.clickTrackingProps());\n },\n\n onDownloadClick: function (e) {\n var eventProps = this.clickTrackingProps('document_download_page');\n UC.utils.recordKissEvent('click_download-for-free', eventProps);\n this.showDownloadModal();\n },\n\n onNextBtnClick: function () {\n UC.utils.clearValidationErrors('input-container');\n var onValidationSuccess = this.showSecondRegistrationStep.bind(this);\n this.signupForm.validate(null, true, onValidationSuccess, true);\n UC.utils.recordKissEvent('click_next-btn', this.clickTrackingProps());\n },\n\n onRegisterClick: function () {\n UC.utils.recordKissEvent('click_email-me-btn', this.clickTrackingProps());\n var validator = '{0}Valid'.format(this.accountTypeLabel());\n if (typeof this[validator] === 'function') {\n var isValid = this[validator]();\n if (isValid) this.signupForm.validate();\n }\n },\n\n onShareClick: function (e) {\n e.preventDefault();\n\n if (this.validateShareForm()) {\n var message = {\n SenderEmail: this.$('#SenderEmail').val(),\n SenderName: this.$('#SenderName').val(),\n Emails: this.$('#Emails').val(),\n EmailMessage: this.$('#EmailMessage').val(),\n CopyMyself: this.$('#CopyMyself').prop('checked')\n };\n this.shareDocument(message);\n }\n },\n\n recordKissRegister: function () {\n var properties = {\n source: 'form',\n document_id: this.$('#DocumentId').val(),\n author_attorney_id: this.$('#AuthorId').val(),\n };\n\n if (this.signupForm.omniauth) {\n properties.source = 'google';\n }\n\n UC.utils.recordKissEvent('doc-modal - register', properties);\n },\n\n registerScrollEvent: function () {\n var cta_btn =\n $('#docButtons').length > 0 ? $('#docButtons').offset().top : 0;\n\n $(window).scroll(function () {\n var scrollTop = $(document).scrollTop();\n\n if (scrollTop >= cta_btn) {\n $('#docButtons').addClass('active');\n } else {\n $('#docButtons').removeClass('active');\n }\n });\n },\n\n registrationModalId: function () {\n if (!this.data.account.Type) return;\n return '#{0}RegistrationStepTwo'.format(this.accountTypeLabel());\n },\n\n handleEventsForSelectUserType: function(selectUserType) {\n $(selectUserType).on('select2:select', function(e) {\n var properties = { clicked: e.params.data.element.dataset.eventName }\n\n UC.utils.recordKissEvent('document-user-registration', properties);\n })\n },\n\n renderSelectFields: function () {\n if (!$.fn.select2) {\n return;\n }\n var selectOptions = { placeholder: 'Select...', width: '100%' };\n this.$('#selectBarStates').select2(selectOptions);\n this.$('#selectCompanySizeRange').select2(selectOptions);\n this.$('#selectIndustry').select2(selectOptions);\n this.$('#selectLegalGroups').select2(selectOptions);\n\n var selectUserType = this.$('#selectUserType').select2(selectOptions);\n this.handleEventsForSelectUserType(selectUserType)\n },\n\n respondToCreateUser: function (result) {\n if (result.errors) {\n this.showError(result.errors.join(\"
    \"));\n } else {\n this.hideError();\n this.hideAllDownloadPanels();\n this.$('#download-doc-modal').removeClass('small');\n\n if (result.message === 'download') {\n this.data.loggedIn = true;\n this.showDownloadPanel();\n } else {\n UC.utils.showPanel(this.$('#modalPanelPostReg'));\n if (this.data.account.Type === 0) {\n UC.utils.showPanel(this.$('#panelAttorneyPostReg'));\n } else {\n UC.utils.showPanel(this.$('#panelClientPostReg'));\n }\n }\n\n this.recordKissRegister();\n }\n },\n\n respondToShare: function (status_result, result) {\n this.components.sendMsgLoader.hideLoader();\n\n if (status_result) {\n UC.utils.showNotification(status_result, UC.constants.results.failure);\n } else {\n this.$('#shareModal').modal('hide');\n this.$('#SenderEmail').val('');\n this.$('#SenderName').val('');\n this.$('#Emails').val('');\n this.$('#EmailMessage').val('');\n this.$('#CopyMyself').prop('checked', false);\n UC.utils.showNotification(result, UC.constants.results.success);\n }\n },\n\n respondToUpdatedUser: function(data) {\n if (data && data.two_factor_request_modal) {\n renderTwoFactorRequestModal(data.two_factor_request_modal, this.respondToUpdatedUser.bind(this))\n return;\n }\n this.data.loggedIn = true;\n this.hideAllDownloadPanels();\n this.showDownloadPanel();\n this.recordKissRegister();\n },\n\n setDocumentDownloadData: function (data) {\n data.user.CompanyIndustry = this.$('#selectIndustry').val();\n data.user.CompanyName = this.$('#txtCompanyName').val();\n data.user.CompanySizeRange = this.$('#selectCompanySizeRange').val();\n data.document_id = this.$('#DocumentId').val();\n data.user.StatedBarCertifiedStates = this.$('#selectBarStates').val();\n data.user.TopLegalGroupIds = this.$('#selectLegalGroups').val();\n var $selectUserType = this.$('#selectUserType');\n data.user.Type = $selectUserType.val();\n data.user.InHouseCounsel = $selectUserType.find('option:selected').data('event-name') === 'in-house-counsel';\n data.user.WantsUpCounselClients =\n this.$('.attorney-source__radio.yes').is(':checked') && data.user.Type == 0;\n },\n\n shareDocument: function (message) {\n message.DocumentId = this.$('#DocumentId').val();\n this.components.sendMsgLoader.showLoader();\n UC.net.post(\n '/free-legal-documents/document/share',\n { data: message },\n this.respondToShare.bind(this)\n );\n },\n\n showDownloadModal: function () {\n var downloadSection = this.$('#modalPanelDownload');\n if (!downloadSection.hasClass('hidden')) {\n this.$('#downloadModal').removeClass('small');\n this.downloadDocument();\n }\n\n this.$('#download-doc-modal').modal();\n },\n\n showDownloadPanel: function () {\n var docId = this.$('#DocumentId').val();\n UC.utils.showPanel($('#modalPanelDownload'));\n if ((UC.user && UC.user.type === 'attorney') ||\n (this.data.account.Type && this.data.account.Type === 0)) {\n UC.utils.showPanel($('#panelAttorneyDownload'));\n } else {\n UC.utils.showPanel($('#panelClientDownload'));\n }\n this.downloadDocument();\n },\n\n showSecondRegistrationStep: function () {\n this.signupForm.loader.hideLoader();\n var accountType = this.data.account.Type = this.$('#selectUserType').val();\n var errors = [];\n if (!accountType) {\n errors.push({\n element: this.$('#selectUserType'),\n text: 'Please specify whether or not you are a lawyer.'\n });\n UC.utils.showValidationErrors(errors, { className: 'input-container' });\n } else {\n UC.utils.clearValidationErrors('input-container');\n this.$('#registrationStepOne').addClass('hidden');\n $(this.registrationModalId()).removeClass('hidden');\n }\n },\n\n showError: function (message) {\n $('#downloadErrorMessage').html(message);\n UC.utils.showPanel($('#downloadError'));\n },\n\n showShareModal: function (e) {\n e.preventDefault();\n var position = $(e.target).hasClass('top') ? 'top' : 'bottom';\n var properties = {\n 'logged-in': (UC.user ? true : false),\n 'position': position,\n 'document_id' : $('#DocumentId').val(),\n 'author_attorney_id': $('#AuthorId').val(),\n };\n UC.utils.recordKissEvent('doc - share click', properties);\n this.$('#shareModal').modal();\n },\n\n showValidationError: function (element) {\n var id = element.attr('id');\n element.closest('.row').addClass('has-error');\n },\n\n startKissTracking: function () {\n var properties = {\n document_id : $('#DocumentId').val(),\n author_attorney_id: $('#AuthorId').val(),\n };\n UC.utils.recordKissEvent('viewed a document', properties);\n UC.utils.recordKissClickEvent(\n '.reg-cta-paj',\n 'clicked paj cta button in document registration modal'\n );\n UC.utils.recordKissClickEvent(\n '.reg-cta-learn-more',\n 'clicked learn more cta button in document registration modal'\n );\n UC.utils.recordKissClickEvent(\n '.download-cta-paj',\n 'clicked paj cta button in document download modal'\n );\n UC.utils.recordKissClickEvent(\n '.download-cta-learn-more',\n 'clicked learn more cta button in document download modal'\n );\n },\n\n validateEmails: function (emails) {\n var all_valid = true;\n var string_array = emails.split(',').map(function (email) {\n return email.trim();\n });\n\n if (string_array.length > 10) {\n all_valid = false;\n } else {\n string_array.forEach( function (email) {\n if (!UC.utils.validateEmail(email)) {\n all_valid = false;\n }\n });\n }\n return all_valid;\n },\n\n validateShareForm: function () {\n this.hideShareValidationErrors();\n var emailsInvalid = this.$('#Emails').val() == '' ||\n !this.validateEmails(this.$('#Emails').val()),\n messageInvalid = this.$('#EmailMessage').val() == '',\n nameInvalid = this.$('#SenderName').val() == '',\n senderInvalid = this.$('#SenderEmail').val() == '' ||\n !UC.utils.validateEmail(this.$('#SenderEmail').val());\n\n if (nameInvalid) this.showValidationError(this.$('#SenderName'));\n if (senderInvalid) this.showValidationError(this.$('#SenderEmail'));\n if (emailsInvalid) this.showValidationError(this.$('#Emails'));\n if (messageInvalid) this.showValidationError(this.$('#EmailMessage'));\n\n return !emailsInvalid && !messageInvalid && !nameInvalid && !senderInvalid;\n }\n\n});\n","UC.views.ContentPagesSeoMotherPage = Backbone.View.extend({\n events: {\n 'click #btnSelectState': 'onBtnSelectState',\n 'click .state': 'clickStateMap'\n },\n \n initialize: function() {\n $('path.state').each(function(index, el){\n var abbr = $(el).attr('id');\n var state = UC.constants.statesHash[abbr];\n $(el).prop('title', state);\n });\n \n $('.state').tooltip({ container:'body' });\n \n this.onBtnSelectState = this.onBtnSelectState.bind(this);\n this.clickStateMap = this.clickStateMap.bind(this);\n\n UC.utils.initRatingDimensions('.review-dimensions');\n },\n \n onBtnSelectState: function () {\n var slug = this.$('#selectState').val();\n this.setSlug(slug);\n },\n \n clickStateMap: function (e) {\n var state = e.target.title;\n var slug = this.$('#selectState option').filter(function (i, option) {\n return $(option).html() === state;\n }).val();\n \n this.setSlug(slug);\n },\n \n setSlug: function(slug) {\n if (slug && slug !== '' && slug !== '##') return location.href = slug;\n }\n});\n","UC.views.ContentPagesSeoPages = Backbone.View.extend({\n events: {\n 'click #prevAttorneysLink, #nextAttorneysLink': 'paginate',\n 'nav-tab-clicked #law-report': 'addHashToBody',\n 'nav-tab-clicked #top-rated-attorneys': 'removeHashFromBody'\n },\n \n initialize: function() {\n if (this.seoTagsExist() && window.location.hash === '#law-report') {\n $(\"a[href='#law-report']\").trigger('click');\n }\n\n if($('.js-sticky-cta-test').length > 0) {\n this.showStickyFooter = true;\n var header = $('.js-how-it-works-hero');\n if(UC.utils.isMobileViewPort()) {\n header = $('.topic-cta-btn');\n $('.js-cancel-sticky-footer').click(this.hideStickyCtaFooter.bind(this));\n }\n UC.components.contentPage.setCtaBannerSize(header);\n var that = this;\n $(document).scroll(function () {\n if(that.showStickyFooter) {\n UC.components.contentPage.setCtaBannerSize(header);\n }\n });\n }\n\n UC.utils.initRatingDimensions('.review-dimensions');\n },\n\n hideStickyCtaFooter: function() {\n this.showStickyFooter = false;\n UC.components.contentPage.removeCtaStickyFooter();\n },\n \n addHashToBody: function () {\n if (this.seoTagsExist()) {\n $('body').addClass('law-report');\n var scrollmem = $('html,body').scrollTop();\n window.location.hash = 'law-report';\n $('html,body').scrollTop(scrollmem);\n }\n },\n \n removeHashFromBody: function () {\n if (this.seoTagsExist()) {\n $('body').removeClass('law-report');\n window.location.hash = '';\n }\n },\n \n paginate: function(e) {\n e.preventDefault();\n $.get($(e.target).attr('href'), function(html) {\n $('#divAttorneyList').html(html);\n UC.utils.scrollToElement('#divAttorneyList', {\n offset: 200\n });\n });\n },\n \n seoTagsExist: function() {\n return UC.constants.pageTags.indexOf('seo law report') !== -1\n }\n});\n","import { GeoLocationPajWidjet } from '../../../components/geo_location_paj_widget'\n\n!function() {\n\n UC.views.ContentPagesShow = Backbone.View.extend({\n\n partials: {\n article: UC.partials.ContentPagesShowArticle,\n content_hub: UC.partials.ContentPagesShowContentHub,\n content_sub_hub: UC.partials.ContentPagesShowContentSubHub,\n document: UC.partials.ContentPagesShowDocument\n },\n\n views: {\n seoMotherPage: UC.views.ContentPagesSeoMotherPage,\n seoPage: UC.views.ContentPagesSeoPages\n },\n\n initialize: function() {\n switch(UC.constants.contentPageType) {\n case 'seo_enterprise_page':\n UC.utils.initTransparentNav('#nav');\n break;\n case 'seo_page':\n new this.views['seoPage']({\n el: '.content_pages.show'\n });\n break;\n case 'seo_mother_page':\n new this.views['seoMotherPage']({\n el: '.content_pages.show'\n });\n break;\n case 'article':\n case 'content_hub':\n case 'content_sub_hub':\n case 'document':\n new this.partials[UC.constants.contentPageType]({\n el: '.content_pages.show'\n });\n break;\n }\n\n $(\"[data-toggle='truncate']\").truncateToggle();\n\n if(this.$('.js-geo-location').length) {\n new GeoLocationPajWidjet({el: this.$('.js-geo-location')});\n }\n }\n });\n\n}();\n","!function() {\n\n UC.partials.DashboardIndexForAtlas = Backbone.View.extend({\n\n events: {\n 'slide.bs.carousel #atlas-intro': 'toggleNextVisibility',\n 'submit #new_message': 'sendMessage'\n },\n\n initialize: function() {\n this.$form = this.$('#new_message');\n this.loader = this.$('#btnSendMessage').buttonLoader();\n this.attachments = this.$('#message_Message').attachmentTextarea({\n jobId: this.$('#message_JobId').val()\n });\n },\n\n toggleNextVisibility: function(e) {\n var $next = $(e.relatedTarget);\n var hide = $next.is(':last-child');\n\n this.$('#atlas-intro-next').toggleClass('hide', hide);\n\n UC.utils.recordKissEvent('Atlas Dashboard - Intro Step Shown', {\n step: $next.index() + 1\n });\n },\n\n validateMessage: function() {\n var message = this.$form.serializeJSON().message;\n var errors = [];\n\n UC.utils.clearValidationErrors('form-group');\n\n if (!message.Message) {\n errors.push({\n element: this.$('#message_Message'),\n text: 'Please include a message to your attorney.'\n });\n }\n\n UC.utils.showValidationErrors(errors, { className: 'form-group' });\n\n return errors.length <= 0;\n },\n\n sendMessage: function(e) {\n e.preventDefault();\n\n if (this.validateMessage()) {\n\n this.loader.showLoader();\n\n if (this.attachments.uploader.uploading) {\n $.when(this.attachments.uploader.uploading).\n done(this.doTheActualSendPleaseKThx.bind(this));\n } else {\n this.doTheActualSendPleaseKThx();\n }\n }\n },\n\n handleSuccessfulMessageSending: function() {\n var $sentMsgPanel = this.$('#atlas-thanks');\n\n this.$form.remove();\n $sentMsgPanel.removeClass('hide');\n },\n\n doTheActualSendPleaseKThx: function() {\n var path = this.$form.attr('action');\n var data = this.$form.serializeJSON();\n\n data.AttachmentIds = this.attachments.getDocumentIds();\n\n UC.net.post(path, data, function() {\n this.handleSuccessfulMessageSending();\n }.bind(this)).fail(this.loader.hideLoader.bind(this));\n\n UC.utils.recordKissEvent('Atlas Dashboard - Message Sent');\n }\n });\n}();\n","UC.partials.NewFindWork = Backbone.View.extend({\n events: {\n 'click #js-legal-group-selection': 'openEditPracticeAreasModal',\n 'click a.js-find-work-all-option': 'changeShowAllOption',\n 'change input.js-find-work-job-type[name=type]': 'changeJobTypeOption',\n 'change input.js-find-work-list-view[name=ListView]': 'changeListViewOption'\n },\n\n initialize: function(opts) {\n this.trackFilterClick = opts.trackFilterClick;\n this.disabledFilterArray = [\"recommended\", \"invited\"];\n this.$findWorkList = this.$el.find('#find-work-list-new');\n this.currentType = this.$findWorkList.data('type');\n this.$filter = this.$el.find('#jobFilters');\n this.$disabledFilter = this.$el.find('.disabled-filter');\n this.$legalGroupSelectionBtn = this.$el.find('#js-legal-group-selection');\n this.$stateSelection = this.$el.find('#js-select-filter-location-dropdown');\n this.$stateLabel = this.$el.find('.js-state-label');\n this.$legalAreaLabel = this.$el.find('.js-legal-area-label');\n this.legalSubjectIds = UC.constants.legalSubjectIds;\n this.$openPracticeAreasModal = new UC.modals.EditPracticeAreas({\n savePracticeAreas: this.submitPracticeAreas.bind(this),\n cancelPracticeAreas: this.cancelPracticeAreas.bind(this)\n });\n\n this.initSetup();\n this.jobsList = new UC.views.JobsList({\n el: '#find-work-list-new',\n eventNamePrefix: 'Find Work',\n updateUrl: '/work',\n filterParams: this.filterParams.bind(this),\n updateMethod: 'post',\n renderCallback: this.renderCallback.bind(this),\n beforePaginate: this.pushState.bind(this),\n currentType: this.currentType\n });\n\n if (window.history) {\n window.onpopstate = this.popState.bind(this);\n };\n\n this.jobsList.setPage(UC.utils.queryStringParams().page || 1);\n this.setState();\n },\n\n initSetup: function(){\n this.stateSelectionSetup();\n if (UC.utils.isMobileViewPort()) {\n this.mobileSetup();\n }\n this.disabledFilterSetup();\n },\n\n disabledFilterSetup: function(){\n if (!_.contains(this.disabledFilterArray, this.currentType)) {\n if (this.$legalGroupSelectionBtn.is(':disabled')) {\n this.$legalGroupSelectionBtn.prop('disabled', false).removeClass('disabled');\n }\n } else {\n this.$disabledFilter.removeClass('hidden');\n this.$stateSelection.multiselect('disable');\n }\n },\n\n mobileSetup: function(){\n this.$findWorkFilters = this.$el.find(\".js-find-work-filters\");\n this.$el.find('#js-find-work-toggle').on('click', function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if($(\".js-find-work-filters:visible\").length > 0) {\n this.$findWorkFilters.addClass('hidden-xs');\n } else {\n this.$findWorkFilters.removeClass('hidden-xs');\n }\n }.bind(this));\n },\n\n stateSelectionSetup: function(){\n var self = this;\n var span = document.createElement(\"span\");\n\n this.$stateSelection.multiselect({\n enableHTML: true,\n enableClickableOptGroups: true,\n selectedClass: 'multiselect-selected',\n buttonClass: 'btn find-work-filter-btn find-work-state-btn btn-block',\n buttonContainer: '
    ',\n maxHeight: 500,\n onChange: function(_option, _checked) {\n self.changeFilter();\n },\n onInitialized: function(_select, container) {\n self.$el.find(\"#grpFilterStates\").removeClass('hidden');\n self.$el.find(\".multiselect-container input\").after(span);\n container.find(\"button.dropdown-toggle\").append(\"\");\n },\n optionClass: function(_element) {\n return 'super-fancy-check';\n },\n buttonText: function(options, _select) {\n if (options.length === 0) {\n return 'No states selected';\n } else if (options.length === 53) {\n return 'All Selected';\n } else if (options.length > 3) {\n return '{0} Selected'.format(options.length);\n } else {\n return self.parseStatesFilterOptions(options);\n }\n },\n });\n },\n\n parseStatesFilterOptions: function(options){\n var labels = [];\n options.each(function() {\n var value = $(this).val();\n if(value == \"int\"){ // handle international to be more consistent with the other state names\n value = \"INTL\";\n }\n labels.push(value);\n });\n\n return labels.join(', ');\n },\n\n changeFilter: function(e) {\n if (e) e.preventDefault();\n this.jobsList.setPage(1);\n this.jobsList.render();\n },\n\n popState: function (e) {\n if (e.state) {\n this.jobsList.setPage(e.state.page);\n }\n\n this.jobsList.render();\n },\n\n pushState: function () {\n if (!window.history) return;\n var state = this.createState();\n window.history.pushState(state, '', state.url);\n },\n\n setState: function () {\n if (!window.history) return;\n var state = this.createState();\n window.history.replaceState(state, '', state.url);\n },\n\n createState: function () {\n var state = {};\n state.page = this.jobsList.getPage();\n state.url = window.location.href;\n\n state.url = UC.utils.updateQueryStringParam(state.url, 'page', state.page);\n\n return state;\n },\n\n trackListViewClick: function($el) {\n UC.utils.recordKissEvent('Find Work List View Toggle', {\n job_type_filter: this.jobsList.getCurrentType(),\n view: $el.val()\n });\n },\n\n renderCallback: function() {\n var type = this.jobsList.getCurrentType();\n this.$findWorkList.attr('data-type', type);\n this.$filter.attr('data-type', type);\n try {\n document.querySelector(\"#job-list\").scrollIntoView({behavior: 'smooth'});\n } catch {\n console.warn('Failed to scroll to the top of the job list')\n }\n },\n\n filterParams: function() {\n var filterParams = this.$filter.serializeJSON();\n if(!filterParams.States){ // add states back in if disabled/form won't send them\n var states = this.$stateSelection.val();\n if(states && states.length > 0){\n filterParams.States = states;\n }\n }\n if(this.legalSubjectIds){\n filterParams.LegalSubjectIds = this.legalSubjectIds;\n }\n\n return filterParams;\n },\n\n cancelPracticeAreas: function(fancyCat) {\n var options = {};\n if(this.legalSubjectIds) {\n options = this.legalSubjectIds.reduce(function (obj, v) {\n obj[v] = true;\n return obj;\n }, {});\n }\n fancyCat.selectSpecificOptions(options);\n },\n\n submitPracticeAreas: function() {\n this.legalSubjectIds = $(\"[name='LegalSubjectIds[]']\").val();\n this.changeFilter();\n var btnCopy = 'None Selected';\n if(this.legalSubjectIds){\n if(this.legalSubjectIds.length === UC.constants.legalSubjectsCount){\n btnCopy = \"All Selected\";\n } else {\n btnCopy = \"{0} Selected\".format(this.legalSubjectIds.length);\n }\n }\n btnCopy = \"{0} \".format(btnCopy);\n this.$legalGroupSelectionBtn.html(btnCopy);\n $('#mdlEditPracticeAreas').modal('hide');\n },\n\n openEditPracticeAreasModal: function(e) {\n if (e) e.preventDefault();\n this.$openPracticeAreasModal.openModal();\n },\n\n changeJobTypeOption: function(e) {\n this.disableJobTypeBtns(e);\n this.changeFilter();\n },\n\n changeListViewOption: function(e) {\n this.changeFilter();\n this.trackListViewClick($(e.currentTarget));\n },\n\n changeShowAllOption: function(e) {\n if (e) e.preventDefault();\n var $selected = $(e.currentTarget);\n this.$el.find('#showAllOption').val($selected.data('option'));\n $selected.closest('.dropdown').find('.js-find-work-all-option-text').text($selected.text())\n $selected.closest('label').find('input[type=radio]').prop(\"checked\", true);\n this.changeFilter();\n },\n\n disableJobTypeBtns: function(e){\n var type = $(e.currentTarget).val();\n if(this.$legalGroupSelectionBtn.is(':disabled')) {\n if (!_.contains(this.disabledFilterArray, type)) {\n this.$stateSelection.multiselect('enable');\n this.$legalGroupSelectionBtn.prop('disabled', false).removeClass('disabled');\n this.$stateLabel.removeClass('disabled');\n this.$legalAreaLabel.removeClass('disabled');\n this.$disabledFilter.addClass('hidden');\n }\n } else {\n if (_.contains(this.disabledFilterArray, type)) {\n this.$stateSelection.multiselect('disable');\n this.$legalGroupSelectionBtn.prop('disabled', true).addClass('disabled');\n this.$stateLabel.addClass('disabled');\n this.$legalAreaLabel.addClass('disabled');\n this.$disabledFilter.removeClass('hidden');\n }\n }\n }\n});\n","UC.views.DashboardFindWork = Backbone.View.extend({\n initialize: function() {\n this.showAttorneyWelcomeModalIfRendered();\n new UC.partials.NewFindWork({\n el: this.$el,\n trackFilterClick: this.trackFilterClick.bind(this)\n });\n },\n\n trackFilterClick: function(filter, $el) {\n UC.utils.recordKissEvent('Find Work filter click', {\n filter: filter,\n value: $el.data('val')\n });\n },\n\n showAttorneyWelcomeModalIfRendered: function() {\n if ($('#modal-welcome-to-upcounsel').length) {\n UC.components.checkboxModal({\n modalSelector: '#modal-welcome-to-upcounsel'\n });\n\n $('.modal-confirm-btn').click(function() {\n UC.utils.recordKissEvent(\"Attorney Disintermediation - accepted\", {\n user_id: UC.user.id\n });\n\n $.post('/work/accept_invoice_exclusivity_terms');\n $('#modal-welcome-to-upcounsel').modal('hide');\n });\n\n UC.utils.recordKissEvent(\"Attorney Disintermediation - seen\", {\n user_id: UC.user.id\n });\n $('#modal-welcome-to-upcounsel').modal({ show: true });\n }\n }\n});\n","import '../attorney_profile/attorney_created_reviews_modal'\n\n!function() {\n\n UC.views.DashboardIndex = Backbone.View.extend({\n\n events: {\n 'click #divFavoriteAttorneys .js-remove': 'removeFavoriteAttorney',\n 'click #aExplainMetrics': 'explainMetrics',\n 'click .show-invoice-link' : 'recordClickShowInvoiceLink',\n 'click .js-pay-invoice-btn' : 'recordClickPayInvoiceBtn',\n 'click .submit-wip-questionnaire-group' : 'submitWipQuestionnaireGroup',\n 'click .skip-wip-questionnaire' : 'skipWipQuestionnaire',\n 'change .wip-reason-radio-btn' : 'toggleOtherDescriptionTextarea',\n 'click #aHideLaunchMeter' : 'hideLaunchMeter',\n 'click #snoozeOnboardingChecklist' : 'snoozeOnboardingChecklist',\n 'click #removeOnboardingChecklist' : 'removeOnboardingChecklist',\n 'click .cancel-sched-call' : 'openCancelSchedCallModal',\n 'click #db-track-time' : 'openTrackTimeModal',\n 'click #btn-track-time-submit' : 'onSubmitTrackTimeModal',\n 'click #btnAddNewWorkHistory': 'openEditWorkHistoryModal',\n 'click #btnEditBiography': 'openEditBioModal',\n 'click #btnAddPastClients': 'openAddPastClientsModal',\n 'click #btnEditPastClients': 'openEditPastClientsModal',\n 'click #btnEditPracticeAreas': 'openEditPracticeAreasModal',\n 'click #btnEditIndustries': 'openEditIndustriesModal',\n 'click #btnOpenLanguagesModal': 'openEditLanguagesModal',\n 'click #btnUpdatePhoneNumber': 'openEditPhoneNumberModal',\n 'click #btnEditMain': 'openEditMainModal',\n 'click #requestW9FormLink': 'requestW9FormClicked',\n 'click #search-jobs-link': 'redirectToJobsSearch',\n },\n\n initialize: function() {\n\n if (location.hash === '#intro') {\n this.initIntro();\n } else if (location.hash === '#w9-request') {\n this.requestW9Form();\n }\n\n switch(UC.constants.dashboard_type) {\n case 'index_for_atlas':\n this.initIndexForAtlas();\n break;\n case 'index_with_jobs':\n this.initIndexWithJobs();\n break;\n }\n\n $('.pulldown').popdown();\n UC.utils.recordKissClickEvent('.js-attorney-directhire', 'Dashboard - Direct Hire Attorney Click');\n\n $('#checklist-collapsible')\n .on('hide.bs.collapse', this.toggleOnboardingChecklistToggleIcon)\n .on('show.bs.collapse', this.toggleOnboardingChecklistToggleIcon);\n },\n\n toggleOnboardingChecklistToggleIcon: function() {\n $('#checklist-toggle i').toggleClass(\"icon-down-open icon-up-open\");\n },\n\n initIndexForAtlas: function() {\n new UC.partials.DashboardIndexForAtlas({\n el: '#index-for-atlas'\n });\n },\n\n openEditBioModal: function(e) {\n this.$editBioModal.openBioModal(e);\n },\n openEditWorkHistoryModal: function(e) {\n this.$editWorkHistoryModal.openModal(e);\n },\n openAddPastClientsModal: function(e) {\n if (e) e.preventDefault();\n this.$addPastClientsModal.render();\n },\n openEditPastClientsModal: function(e) {\n if (e) e.preventDefault();\n this.$editPastClientsModal.render();\n },\n openEditPracticeAreasModal: function(e) {\n if (e) e.preventDefault();\n this.$openPracticeAreasModal.openModal();\n },\n openEditIndustriesModal: function(e) {\n if (e) e.preventDefault();\n this.$openEditIndustriesModal.openModal();\n },\n openEditLanguagesModal: function(e) {\n if (e) e.preventDefault();\n this.$openEditLanguagesModal.openModal();\n },\n openEditPhoneNumberModal: function(e) {\n if (e) e.preventDefault();\n this.$openEditPhoneNumberModal.render();\n },\n openEditMainModal: function(e) {\n if (e) e.preventDefault();\n this.$editMainModal.openModal();\n },\n\n initIndexWithJobs: function() {\n\n this.$editWorkHistoryModal = new UC.modals.EditWorkHistory({\n updateWorkHistoryPagination: this.updateWorkHistoryPagination\n });\n this.$editBioModal = new UC.modals.EditBio({\n biographyContent: this.$('#biographyContent')\n });\n this.$addPastClientsModal = new UC.modals.AttorneyProfileAddPastClients();\n this.$editPastClientsModal = new UC.modals.AttorneyProfileEditPastClients();\n this.$openPracticeAreasModal = new UC.modals.EditPracticeAreas();\n this.$openEditIndustriesModal = new UC.modals.EditIndustries();\n this.$openEditLanguagesModal = new UC.modals.EditLanguages();\n this.$openEditPhoneNumberModal = new UC.modals.AttorneyProfileUpdatePhoneNumber();\n this.$editMainModal = new UC.modals.EditMainAttorneyProfileDetails();\n\n UC.attorneyCreatedReviewsModal.init('#btnAddReview');\n\n var $wipJobStatusUpdateModal = $('#wip-jobs-status-update-modal');\n\n this.initDashboardScheduledCalls();\n\n if ($wipJobStatusUpdateModal.length > 0) {\n $wipJobStatusUpdateModal.modal({\n backdrop: 'static'\n });\n UC.utils.recordKissEvent('attorney_wip_job_status_questionnaire_shown', {attorney_id: UC.user.id, location: 'dashboard'});\n $('.submit-wip-questionnaire-group').each(function(index, element) {\n var $element = $(element);\n $element.data('buttonLoader', $element.buttonLoader());\n })\n }\n\n if ($('#js-att-dashboard-metrics').length > 0) {\n new UC.views.DashboardMetrics({\n el: '#js-att-dashboard-metrics'\n });\n }\n\n if ($('#recent-jobs').length > 0) {\n new UC.views.DashboardJobsList({\n el: '#recent-jobs'\n });\n }\n\n if (UC.constants.hasPayout && UC.constants.unverifiedAccount) {\n this.$('#modalUnverifiedAccount').modal();\n }\n\n if (this.$('#modalClaimedReferral').length > 0) {\n UC.utils.showModal(this.$('#modalClaimedReferral'));\n }\n\n this.initTracking();\n },\n\n initTracking: function() {\n var userType = UC.user.type;\n\n UC.utils.recordKissEvent('Viewed Dashboard', {'type':userType});\n UC.utils.recordKissClickEvent('db-create-client', 'Dashboard - Create Pulldown Click', {'action':'client', 'type':userType});\n UC.utils.recordKissClickEvent('db-create-invoice', 'Dashboard - Create Pulldown Click', {'action':'invoice', 'type':userType});\n UC.utils.recordKissClickEvent('db-create-project', 'Dashboard - Create Pulldown Click', {'action':'project', 'type':userType});\n UC.utils.recordKissClickEvent('db-track-time', 'Dashboard - Create Pulldown Click', {'action':'track_time', 'type':userType});\n\n UC.utils.recordKissClickEvent('createBtn', 'Dashboard - Create Button Click');\n UC.utils.recordKissClickEvent('aExplainMetrics', 'Dashboard - whats this link');\n\n UC.utils.recordKissClickEvent('#referral-later', 'Dashboard - Referrals Later Btn Click');\n UC.utils.recordKissClickEvent('#referral-close', 'Dashboard - Referrals Close Click');\n UC.utils.recordKissClickEvent('#referral-link', 'Dashboard - Refer a friend Btn Click (banner)');\n UC.utils.recordKissClickEvent('#referral-side-link', 'Dashboard - Refer a friend Btn Click (side ad)');\n },\n\n setReferralBannerHelpDisplay: function(value, callback) {\n UC.net.post('/account/update_help_display_option', {\n option: 'referral_dashboard_banner',\n optionValue: value\n });\n },\n\n recordClickShowInvoiceLink: function(e) {\n var invoiceId = $(e.currentTarget).closest('.js-awaiting-payment-invoice').data('invoiceId');\n UC.utils.recordKissEvent('Dashboard - Click Show Pending Invoice Widget Link', {invoiceId: invoiceId});\n },\n\n recordClickPayInvoiceBtn: function(e) {\n var invoiceId = $(e.currentTarget).closest('.js-awaiting-payment-invoice').data('invoiceId');\n UC.utils.recordKissEvent('Dashboard - Click Pay Pending Invoice Widget Btn', {invoiceId: invoiceId});\n },\n\n questionnaireReponsesValid: function() {\n var errors = [];\n\n $('.wip-job-status-questionnaire').removeClass('has-error');\n $('.wip-job-status-questionnaire .error-message').text('');\n\n $('.active-questionnaire-group .wip-job-status-questionnaire').each(function(index, element) {\n var $element = $(element);\n var wipReason = $element.find('.wip-reason-radio-btn:checked').val();\n\n if (!wipReason) {\n errors.push({element: $element, text: 'You must select an option'});\n }\n });\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'wip-job-status-questionnaire'});\n return false\n } else {\n return true\n }\n\n },\n\n skipWipQuestionnaire: function(e) {\n e.preventDefault();\n\n $('#wip-jobs-status-update-modal').modal('hide');\n\n UC.components.confirmModal({\n title: 'Confirm',\n text: 'Are you sure you want to cancel status update for your work in progress jobs for today?',\n callback: function (confirmed) {\n if (confirmed) {\n $.post('jobs/skip_job_status_update');\n } else {\n $('#wip-jobs-status-update-modal').modal('show');\n }\n },\n yesText: 'Yes, skip for today',\n noText: 'No, back to the update'\n });\n },\n\n submitWipQuestionnaireGroup: function(e) {\n e.preventDefault();\n var $nextButton = $(e.currentTarget);\n var nextGroupNum = $nextButton.data('nextGroup');\n var $buttonLoader = $nextButton.data('buttonLoader');\n\n if (this.questionnaireReponsesValid()) {\n if ($buttonLoader) $buttonLoader.showLoader();\n\n var responses = this.getActiveQuestionnaireResponses();\n\n var ajaxRequest = $.ajax({\n url: 'jobs/wip_job_status_update',\n type: 'POST',\n data: {wip_questionnaire_responses: responses},\n context: this\n });\n\n ajaxRequest.done(function() {\n if ($buttonLoader) $buttonLoader.hideLoader();\n\n if (nextGroupNum) {\n this.showWipQuestionnaireGroup(nextGroupNum);\n } else {\n $('#wip-jobs-status-update-modal').modal('hide');\n }\n });\n\n ajaxRequest.fail(function() {\n $('#wip-jobs-status-update-modal').modal('hide');\n if ($buttonLoader) $buttonLoader.hideLoader();\n });\n }\n\n },\n\n getActiveQuestionnaireResponses: function() {\n var responses = {};\n $('.active-questionnaire-group .wip-job-status-questionnaire').each(function(index, element) {\n var $element = $(element);\n var jobId = $element.data('jobId');\n var wipReason = $element.find('.wip-reason-radio-btn:checked').val();\n var description = $element.find('.other-description').val();\n\n responses[jobId] = {wip_reason: wipReason, description: description};\n });\n return responses;\n },\n\n showWipQuestionnaireGroup: function(groupNum) {\n $('.wip-job-status-questionnaire-group').removeClass('active-questionnaire-group');\n $(\".wip-job-status-questionnaire-group[data-questionnaire-group='\"+ groupNum +\"']\").addClass('active-questionnaire-group');\n },\n\n toggleOtherDescriptionTextarea: function(e) {\n var $radioBtn = $(e.currentTarget);\n var $parentQuestionnaire = $radioBtn.parents('.wip-job-status-questionnaire');\n\n if ($radioBtn.val() === 'Other') {\n $parentQuestionnaire.find('.other-description').removeClass('hidden');\n } else {\n $parentQuestionnaire.find('.other-description').addClass('hidden');\n }\n },\n\n explainMetrics: function(e) {\n e.preventDefault();\n\n this.$el.find('#modalExplainMetrics').modal();\n },\n\n removeFavoriteAttorney: function(e) {\n e.preventDefault();\n var $attorney = $(e.currentTarget).closest('.js-attorney');\n var attorney_id = $attorney.data('id');\n\n var $favorite_attorneys = this.$('#divFavoriteAttorneys');\n\n UC.utils.showConfirmModal('Confirm', 'Are you sure you want to remove the attorney from your dashboard?', function(response) {\n\n if (response) {\n\n UC.net.destroy('/dashboard/favorite_attorneys/{0}'.format(attorney_id), null, function() {\n UC.utils.showNotificationSuccess(\"Attorney was successfully removed.\");\n $attorney.remove();\n\n if ($favorite_attorneys.find('.js-attorney').length < 1) {\n $favorite_attorneys.remove();\n }\n });\n }\n });\n },\n\n resumeUploadFailure: function(err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n },\n\n resumeUploadSuccess: function() {\n UC.utils.checklistSuccessCallback('btnShowUploadResume');\n },\n\n initIntro: function() {\n var steps = [\n {\n element: UC.utils.isMobileViewPort() ? $('#menu-toggle') : $('#user-menu'),\n text: 'Click the icon on the top right of the screen to edit your account settings and billing information.',\n position: 'left'\n },\n {\n element: $('#recent-jobs'),\n text: 'The dashboard will display a summary of your recent jobs, as well as their status. Click on a job to edit the post, view proposals, send messages, etc.',\n position: 'top'\n }\n ];\n\n $('#user-menu').addClass('forced');\n\n function reset() {\n $('#user-menu').removeClass('forced');\n }\n\n UC.utils.initIntroJs(steps).onbeforechange(function(el) {\n var $el = $(el);\n var step = $el.data('step');\n var isMobileViewPort = UC.utils.isMobileViewPort();\n\n if (step == 1) {\n $('#user-menu').addClass('forced');\n if (!isMobileViewPort) {\n $('.introjs-helperNumberLayer').addClass('introjs-fix-top-step');\n }\n } else {\n $('#user-menu').removeClass('forced');\n if (!isMobileViewPort) {\n $('.introjs-helperNumberLayer').removeClass('introjs-fix-top-step');\n }\n }\n\n UC.utils.recordKissEvent('Product tour next step', {\n 'step': step,\n 'page-path': window.location.pathname\n });\n }).onexit(reset).oncomplete(reset);\n\n $('.introjs-overlay').addClass('no-transition');\n if (!UC.utils.isMobileViewPort()) {\n $('.introjs-helperNumberLayer').addClass('introjs-fix-top-step');\n }\n\n UC.utils.recordKissEvent('Product tour started', {\n 'page-path': window.location.pathname\n });\n },\n\n initDashboardScheduledCalls: function() {\n var scheduled_call_id = UC.utils.getParameterByName('scheduled_call_reply');\n var dashboard_scheduled_calls = {};\n\n if ($('#scheduled-calls').length > 0) {\n dashboard_scheduled_calls = new UC.views.DashboardScheduledCalls({\n el: '#scheduled-calls'\n });\n }\n\n if (scheduled_call_id) {\n new UC.modals.ScheduledCallsShow({\n scheduled_call_id: scheduled_call_id,\n callback: function() {\n // if it exists we want it to re-render\n dashboard_scheduled_calls.render();\n }\n }).render();\n }\n },\n\n hideLaunchMeter: function(e) {\n UC.net.post('/account/hide_launch_meter', function(res) {\n UC.utils.showNotificationSuccess(res.message);\n this.$el.find('#js-checklistContainer').hide();\n }.bind(this));\n },\n\n hideOnboardingChecklist: function(snooze) {\n UC.net.post('/account/hide_onboarding_checklist', {snooze: snooze}, function(res) {\n UC.utils.showNotificationSuccess(res.message);\n this.$el.find('#js-checklistContainer').hide();\n }.bind(this));\n },\n\n snoozeOnboardingChecklist: function(e) {\n e.preventDefault();\n\n UC.utils.showConfirmModal(\n 'Confirm',\n 'Are you sure want to hide the onboarding checklist for the next week?',\n function (confirmed) {\n if (confirmed) {\n this.hideOnboardingChecklist(true);\n }\n }.bind(this)\n );\n },\n\n removeOnboardingChecklist: function(e) {\n e.preventDefault();\n\n UC.utils.showConfirmModal(\n 'Confirm',\n \"Are you sure you don't want to see the onboarding checklist anymore?\",\n function (confirmed) {\n if (confirmed) {\n this.hideOnboardingChecklist(false);\n }\n }.bind(this)\n );\n },\n\n openCancelSchedCallModal: function(e) {\n e.preventDefault();\n var scheduledCallId = $(e.currentTarget).data('scheduled-call-id');\n new UC.partials.ScheduledCallsCancel({scheduledCallId: scheduledCallId});\n },\n\n openTrackTimeModal: function (event) {\n event.preventDefault();\n\n var $modalTrackTime = this.$el.find('#modalTrackTime');\n\n $modalTrackTime.find('#track-time-client-select').select2({width: '100%'});\n $modalTrackTime.modal();\n },\n\n onSubmitTrackTimeModal: function (event) {\n event.preventDefault();\n var attorneyClientId = this.$el.find('#track-time-client-select').val();\n\n UC.utils.recordKissEvent('track_time_modal_selected_client', {'attorneyClientId': attorneyClientId});\n\n if (attorneyClientId) {\n location.href = '/clients/{0}?current_ts_entries=true'.format(attorneyClientId);\n }\n },\n\n requestW9FormClicked: function(e) {\n e.preventDefault();\n\n const $link = $(e.currentTarget)\n const originalLinkText = $link.text();\n $link.text('')\n const loader = $link.buttonLoader();\n loader.showLoader();\n setTimeout(function() {\n loader.hideLoader();\n $link.text(originalLinkText);\n }, 3000);\n\n this.requestW9Form();\n },\n\n requestW9Form: function() {\n const self = this;\n UC.net.get('/account/w9_form/request', {})\n .done(function(response) {\n if (response.form_request) {\n window.Avalara1099.requestW9(response.form_request, {prefill: response.prefill_data})\n .then((request) => {\n const attributes = (request.data || request).attributes;\n const signedAt = attributes.signed_at && new Date(attributes.signed_at);\n if (signedAt) {\n UC.net.post('/account/w9_form/complete', attributes)\n .done(function () {\n self.showW9CompletedDialog(request.links && request.links.signed_pdf)\n })\n .fail(function () {\n UC.utils.showNotification('There was an error reporting back your W-9 form. Please try again later', UC.constants.results.failure);\n });\n }\n })\n .catch((error) => {\n console.warn(error)\n UC.utils.showNotification('There was an error processing your W-9 form. Please try again later', UC.constants.results.failure);\n })\n }\n })\n .fail(function() {\n UC.utils.showNotification('There was an error requesting for W-9 form. Please try again later', UC.constants.results.failure);\n });\n },\n\n showW9CompletedDialog: function(signedPdfLink) {\n const self = this;\n let message = 'UpCounsel Technologies Inc. has received your W-9 form.'\n if (signedPdfLink) {\n message += ` You can also download a copy for your records or make changes.`\n }\n new UC.partials.modalV9 ({\n modalTitle: 'Thank you!',\n modalContent: message,\n modalFooter: {\n yesTextClass: 'btn btn-md btn-primary',\n yesText: 'Close',\n noText: 'Revise',\n noTextId: 'reviseW9Form',\n noTextClass: 'btn btn-md btn-grey-BG'\n },\n renderCallback: function() {\n $('#w9-alert').remove();\n $('#reviseW9Form').on('click', function(e) {\n self.requestW9Form();\n })\n }\n });\n },\n\n redirectToJobsSearch: function(e) {\n e.preventDefault();\n const filteredJobsType = $('#recent-jobs ul li.active a').data('type');\n window.location = `/jobs?type=${filteredJobsType}`\n },\n });\n}();\n","UC.views.DashboardJobsList = Backbone.View.extend({\n\n initialize: function() {\n this.jobsList = new UC.views.JobsList({\n el: '#recent-jobs',\n updateUrl: '/dashboard/jobs'\n });\n }\n\n});\n","!function() {\n\n UC.views.DashboardMetrics = Backbone.View.extend({\n\n events: {\n 'shown.bs.tab a[data-toggle=\"tab\"]' : 'metricsTabClicked',\n 'click .carousel-control' : 'carouselControlClicked'\n },\n\n initialize: function() {\n this.renderInitialMetrics();\n },\n\n renderInitialMetrics: function() {\n var $tab = $('.metrics-row > .tab-pane.active.in'),\n tabId = $tab.attr('id');\n\n this.trackMetricsTabShown(tabId);\n this.renderMetricsTab($tab);\n },\n\n metricsTabClicked: function(e) {\n var that = this;\n\n $('.tab-pane.active.in').each(function(){\n var $this = $(this);\n that.trackMetricsTabShown($this.attr('id'));\n if ($this.hasClass('main')) {\n $('.metrics-row').attr('data-active', $this.attr('id'));\n that.renderMetricsTab($this);\n }\n });\n },\n\n carouselControlClicked: function(e) {\n var that = this;\n\n // hack to render graph after carousel has completed transition (.6s)\n setTimeout(function() {\n $('.tab-pane.active.in').each(function(){\n var $this = $(this);\n if ($this.hasClass('main')) {\n that.renderMetricsTab($this);\n }\n });\n }.bind(this), 700);\n },\n\n trackMetricsTabShown: function(tabId) {\n UC.utils.recordKissEvent('metrics_tab_shown', {\n 'tabId': tabId\n });\n },\n\n renderMetricsTab: function($tab) {\n var id = $tab.attr('id');\n switch(id) {\n case 'repeat-clients':\n this.createMonthlyRepeatGraph();\n this.createActivePercentileGraph();\n this.createRehireGraph();\n this.createRehirePercentileGraph();\n break;\n case 'transactions':\n this.createMonthlyRevenueGraph();\n break;\n };\n },\n\n defaultChartOptions: function() {\n return {\n chart: {\n type: 'column'\n },\n exporting: { enabled: false },\n title: {\n text: ''\n },\n yAxis: {\n tickAmount: 3,\n lineWidth: 1,\n lineColor: '#E5E5E5',\n minorGridLineWidth: 0,\n gridLineWidth: 0,\n minorGridLineWidth: 0,\n title : {\n text : ' '\n },\n labels: {\n style: {\n color: '#E5E5E5',\n fontSize: '11px',\n fontWeight: 'bold'\n }\n }\n },\n xAxis: {\n lineWidth: 0,\n lineColor: 'transparent',\n tickWidth: 0,\n labels: {\n style: {\n color: '#A4ADB8',\n fontWeight: 'bold',\n fontSize: '11px',\n }\n }\n },\n credits: {\n enabled: false\n },\n series: [{\n showInLegend: false,\n name: '',\n color: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [0, '#A6EFFC'],\n [1, '#009DDC'],\n ]\n },\n pointWidth: 40,\n }],\n tooltip: {\n backgroundColor: 'black',\n borderColor: 'black',\n borderRadius: 3,\n borderWidth: 3,\n style: {\n color: 'white',\n fontWeight: 'bold',\n padding: '5px'\n }\n },\n accessibility: {\n enabled: false\n }\n };\n },\n\n createMonthlyRevenueGraph: function () {\n var $cht = $('#monthlyRevenueGraph'),\n options = $.extend({}, this.defaultChartOptions()),\n categories = [],\n data = [];\n\n if ($cht.hasClass('rendered') || !$cht.is(\":visible\")) {\n return;\n }\n\n for (var i = 0 ; i < UC.constants.metrics.revenue_by_months.length; i++) {\n var value = UC.constants.metrics.revenue_by_months[i].Value || 0;\n data.push(value);\n categories.push(UC.constants.metrics.revenue_by_months[i].Label);\n }\n\n options.xAxis.categories = categories;\n options.series[0].data = data;\n\n options.yAxis.labels = {\n formatter: function () {\n return '$' + this.axis.defaultLabelFormatter.call(this);\n }, \n style: {\n color: '#E5E5E5',\n fontSize: '11px',\n fontWeight: 'bold'\n }\n };\n\n options.tooltip.formatter = function() {\n return UC.utils.formatCurrency(this.y, '$', 0);\n };\n\n options.backgroundColor = '#EDF4FF';\n\n $cht.highcharts(options);\n $cht.addClass('rendered');\n },\n\n createMonthlyRepeatGraph: function () {\n var $cht = $('#monthlyRepeatGraph'),\n options = $.extend({}, this.defaultChartOptions()),\n categories = [],\n data = [];\n\n if ($cht.hasClass('rendered') || !$cht.is(\":visible\")) {\n return;\n }\n\n for (var i = 0 ; i < UC.constants.metrics.repeat_clients_by_months.length; i++) {\n var value = UC.constants.metrics.repeat_clients_by_months[i].Value || 0;\n data.push(value);\n categories.push(UC.constants.metrics.repeat_clients_by_months[i].Label);\n }\n\n options.xAxis.categories = categories;\n options.series[0].data = data;\n options.tooltip.pointFormat = \"{point.y} repeat clients\";\n options.tooltip.formatter = function() {\n return this.y + \" repeat clients\";\n };\n\n $cht.highcharts(options);\n $cht.addClass('rendered');\n },\n\n createActivePercentileGraph: function () {\n var $cht = $('#activePercentile'),\n options = $.extend({}, this.defaultChartOptions()),\n data = [\n { y: UC.constants.metrics.RepeatClientsByDays180Percentile || 0 }\n ],\n invData = [\n { y: 100 - UC.constants.metrics.RepeatClientsByDays180Percentile || 0 }\n ],\n gradientStops = this.getGradientStopsForPercentile(UC.constants.metrics.RepeatClientsByDays180Percentile || 0);\n\n if ($cht.hasClass('rendered') || !$cht.is(\":visible\")) {\n return;\n }\n\n options.xAxis.labels.enabled = false;\n options.yAxis.labels.enabled = false;\n options.yAxis.lineWidth = 0;\n options.yAxis.lineColor = 'transparent';\n options.yAxis.min = 0;\n options.yAxis.max = 100;\n options.tooltip.pointFormat = \"{point.y} repeat clients\";\n\n options.plotOptions = {\n column: {\n stacking: 'percent'\n }\n };\n\n options.tooltip.formatter = function() {\n return false;\n };\n\n options.tooltip.positioner = function(boxWidth, boxHeight, point) { \n return {x:point.plotX + 20,y:point.plotY}; \n };\n\n options.series[0].pointWidth = 22;\n options.series.push(JSON.parse(JSON.stringify(options.series[0])));\n\n options.series[1].color = {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: gradientStops\n };\n\n options.series[1].data = data;\n options.series[0].data = invData;\n options.series[0].color = '#EDF4FF';\n\n options.series[0].states = {\n hover: {\n enabled: false\n }\n };\n\n function renderer(chart) {\n var point = chart.series[1].data[0],\n text = chart.renderer.text(\n UC.constants.metrics.RepeatClientsByDays180Percentile || 0 + \"%\",\n point.plotX + chart.plotLeft - 50,\n point.plotY + chart.plotTop + 3\n ).attr({\n zIndex: 5\n }).css({\n color: gradientStops[1][1],\n fontWeight: \"bold\",\n }).add(),\n box = text.getBBox(),\n margin = 3,\n path = [\n 'M',\n box.x - margin, box.y - margin,\n 'L',\n box.x - margin, box.y + box.height + margin,\n box.x + box.width + margin, box.y + box.height + margin,\n box.x + box.width + margin*2.5, box.y + (box.height/2),\n box.x + box.width + margin, box.y - margin,\n ];\n\n chart.renderer.path(path)\n .attr({\n fill: '#EDF4FF',\n zIndex: 4,\n })\n .add();\n }\n $cht.highcharts(options, renderer);\n $cht.addClass('rendered');\n },\n\n createRehirePercentileGraph: function () {\n var $cht = $('#rehirePercentile'),\n options = $.extend({}, this.defaultChartOptions()),\n data = [\n { y: UC.constants.metrics.RehirePercentile }\n ],\n invData = [\n { y: (100 - UC.constants.metrics.RehirePercentile) }\n ],\n gradientStops = this.getGradientStopsForPercentile(UC.constants.metrics.RehirePercentile);\n\n if ($cht.hasClass('rendered') || !$cht.is(\":visible\")) {\n return;\n }\n\n options.xAxis.labels.enabled = false;\n options.yAxis.labels.enabled = false;\n options.yAxis.lineWidth = 0;\n options.yAxis.lineColor = 'transparent';\n options.yAxis.min = 0;\n options.yAxis.max = 100;\n\n options.tooltip.pointFormat = \"{point.y} repeat clients\";\n options.tooltip.formatter = function() {\n return false;\n };\n\n options.plotOptions = {\n column: {\n stacking: 'percent'\n }\n };\n\n options.series[0].pointWidth = 22;\n options.series.push(JSON.parse(JSON.stringify(options.series[0])));\n\n options.series[1].color = {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: gradientStops\n };\n\n options.series[1].data = data;\n options.series[0].data = invData;\n options.series[0].color = '#EDF4FF';\n\n options.series[0].states = {\n hover: {\n enabled: false\n }\n };\n\n function renderer(chart) {\n var point = chart.series[1].data[0],\n text = chart.renderer.text(\n UC.constants.metrics.RehirePercentile + \"%\",\n point.plotX + chart.plotLeft - 50,\n point.plotY + chart.plotTop + 3\n ).attr({\n zIndex: 5\n }).css({\n color: gradientStops[1][1],\n fontWeight: \"bold\",\n }).add(),\n box = text.getBBox(),\n margin = 3,\n path = [\n 'M',\n box.x - margin, box.y - margin,\n 'L',\n box.x - margin, box.y + box.height + margin,\n box.x + box.width + margin, box.y + box.height + margin,\n box.x + box.width + margin*2.5, box.y + (box.height/2),\n box.x + box.width + margin, box.y - margin,\n ];\n\n chart.renderer.path(path)\n .attr({\n fill: '#EDF4FF',\n zIndex: 4,\n })\n .add();\n }\n\n $cht.highcharts(options, renderer);\n $cht.addClass('rendered');\n },\n\n createRehireGraph: function() {\n var options = {\n colors: [\n {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [0, '#A6EFFC'],\n [1, '#009DDC'],\n ]\n },\n \"#EDF4FF\"\n ],\n chart: {\n type: 'pie'\n },\n title: {\n text: '',\n },\n xAxis: {\n title: {\n text: '',\n }\n },\n yAxis: {\n title: {\n text: '',\n }\n },\n plotOptions: {\n pie: {\n shadow: false,\n center: ['50%', '50%']\n }\n },\n credits: {\n enabled: false\n },\n series: [{\n data: [[\"Rehire\",UC.constants.metrics.RehirePercent],[\"Placeholder\",(100-UC.constants.metrics.RehirePercent)]],\n size: '170%',\n innerSize: '70%',\n showInLegend: false,\n dataLabels: {\n enabled: false\n },\n states: {\n hover: {\n enabled: false\n }\n }\n }],\n tooltip: {\n formatter: function() {\n return false;\n }\n }\n };\n\n var $cht = $('#rehireGraph');\n\n if ($cht.hasClass('rendered') || !$cht.is(\":visible\")) {\n return;\n }\n\n function renderer(chart) {\n var textX = chart.plotLeft + (chart.plotWidth * 0.5);\n var textY = chart.plotTop + (chart.plotHeight * 0.5);\n\n var span = '';\n span += UC.constants.metrics.RehirePercent + '%';\n\n $(\"#rehireAddText\").append(span);\n span = $('#rehireInfoText');\n span.css('left', textX + (span.width() * -0.5));\n span.css('top', textY + (span.height() * -0.5));\n }\n\n $cht.highcharts(options, renderer);\n $cht.addClass('rendered');\n },\n\n getGradientStopsForPercentile: function(percentile) {\n var bottomStop,\n topStop;\n\n if (percentile < 33) {\n bottomStop = '#FD435F';\n topStop = '#F3C3CA';\n } else if (percentile < 66) {\n bottomStop = '#CBAE21';\n topStop = '#F9D31B';\n } else {\n bottomStop = '#00C967';\n topStop = '#00E6A0';\n }\n\n return [\n [0, topStop],\n [1, bottomStop],\n ];\n }\n\n });\n\n}();\n","!function() {\n\n UC.views.DashboardTransactions =\n UC.views.DashboardIncomeReport =\n Backbone.View.extend({\n\n events: {\n 'click #js-apply-filters': 'applyFilters'\n },\n\n initialize: function() {\n $(\"[data-toggle='tooltip']\").tooltip();\n $(\"select\").select2({width: \"100%\"});\n $('.datepicker').datepicker(this.datepickerOptions);\n this.$applyFiltersBtnLoader = $('#apply-trans-report-filters').buttonLoader();\n this.trackFiltersUsed();\n },\n\n applyFilters: function(e) {\n e.preventDefault();\n var filters = this.getFilterStates();\n\n if (this.filtersValid(filters)) {\n this.$applyFiltersBtnLoader.showLoader();\n filters['filters_applied_by_user'] = true;\n this.requestPageWithFilters(filters);\n }\n },\n\n filtersValid: function(filters) {\n var valid = true;\n\n var startDate = filters.start_date ? moment(filters.start_date, UC.constants.momentDateFormats, true) : null;\n var endDate = filters.start_date ? moment(filters.end_date, UC.constants.momentDateFormats, true) : null;\n\n if (startDate && endDate && (startDate > endDate)) {\n UC.utils.showNotification(\"Start Date Must be Before End Date\", UC.constants.results.failure);\n valid = false;\n }\n\n return valid;\n },\n\n trackFiltersUsed: function() {\n var filters = this.getFilterStates();\n UC.utils.recordKissEvent('transactions_report_shown', filters);\n },\n\n getFilterStates: function() {\n var filters = {},\n $filterDivs = $(\".js-filter\");\n\n $filterDivs.each(function (index, element) {\n var $element = $(element),\n filterValue = $element.val(),\n filterName = $element.data('filterName');\n\n if (filterValue) filters[filterName] = filterValue;\n });\n\n return filters\n },\n\n requestPageWithFilters: function(filters) {\n var location_path = location.href.split(\"?\")[0]\n\n location.href = location_path + '?' + $.param(filters);\n },\n\n datepickerOptions: {\n dateFormat: 'mm/dd/yy',\n changeMonth: true,\n changeYear: true,\n yearRange: \"1940:+nn\",\n maxDate: \"0\"\n }\n\n })\n\n}();\n","!function() {\n\n UC.views.DashboardScheduledCalls = Backbone.View.extend({\n\n events: {\n 'click .pagination a': 'paginate',\n 'click .scheduled-call-archive': 'archive',\n 'click .scheduled-call-job-link': 'trackJobClick',\n 'click .scheduled-call-reply': 'reply',\n 'click .scheduled-call-initiate': 'call',\n 'click .js-scheduled-call-handle-reschedule': 'handleReschedule'\n },\n\n trackJobClick: function() {\n UC.utils.recordKissEvent('Dashboard - Job Item Click', {\n type: UC.user.type,\n section: 'scheduled_calls'\n });\n },\n\n paginate: function(e) {\n e.preventDefault();\n this.current_page = $(e.currentTarget).data('page');\n this.render();\n },\n\n render: function(callback) {\n UC.net.get('/dashboard/scheduled_calls', {\n page: this.current_page\n }, function(html) {\n this.$el.html(html);\n if ($('#scheduled-calls .scheduled-call').length <= 0) {\n $('#scheduled-calls').closest('.scheduled-calls-box').remove();\n this.remove();\n }\n }.bind(this));\n },\n\n archive: function(e) {\n e.preventDefault();\n\n var view = this;\n var $el = $(e.currentTarget)\n var path = $el.attr('href');\n\n function onConfirm(response) {\n if (response) {\n UC.net.post(path, null, function() {\n view.render();\n });\n }\n }\n\n UC.utils.showConfirmModal('Confirm', 'Are you sure you want to hide this call?', onConfirm);\n UC.utils.recordKissEvent('Dashboard - Scheduled Call Archive Click', {\n type: UC.user.type,\n scheduled_call_id: $el.closest('li.scheduled-call').data('id')\n });\n },\n\n reply: function(e) {\n e.preventDefault();\n var $el = $(e.currentTarget).closest('li.scheduled-call');\n var job_id = $el.data('job-id');\n var id = $el.data('id');\n\n new UC.modals.ScheduledCallsShow({\n scheduled_call_id: id,\n callback: this.render.bind(this)\n }).render();\n\n UC.utils.recordKissEvent('Dashboard - Scheduled Call Reply Click', {\n type: UC.user.type,\n scheduled_call_id: id\n });\n },\n\n call: function(e) {\n e.preventDefault();\n var $el = $(e.currentTarget).closest('li.scheduled-call');\n\n if (UC.user.twilio_number) {\n new UC.views.CallsModalInitiate({\n to: $el.data('phone'),\n job_id: $el.data('job-id')\n }).render();\n\n UC.utils.recordKissEvent('Dashboard - Scheduled Call Initiate Click', {\n type: UC.user.type,\n scheduled_call_id: $el.data('id')\n });\n } else {\n $el.find('.scheduled-call-initiate').addClass('hidden');\n $el.find('.scheduled-call-phone').removeClass('hidden');\n\n UC.utils.recordKissEvent('Dashboard - Scheduled Call Reveal # Click', {\n type: UC.user.type,\n scheduled_call_id: $el.data('id')\n });\n }\n },\n\n handleReschedule: function(e) {\n var dataset = e.target.dataset;\n var scheduledCallId = dataset.id;\n var jobId = dataset.jobId;\n var bidId = dataset.bidId;\n var attorneyId = dataset.attorneyId;\n var instantAvailable = dataset.instantAvailable === 'true';\n UC.CallHelpers.rescheduleCall(scheduledCallId, jobId, bidId, attorneyId, instantAvailable, this.handleSuccessfulReschedule.bind(this, scheduledCallId));\n },\n\n handleSuccessfulReschedule: function(scheduledCallId) {\n UC.net.post('/scheduled_calls/{0}/cancel'.format(scheduledCallId)).then(function(res) {\n location.reload();\n }.bind(this))\n }\n });\n}();\n","import TextLengthCounter from '../../../components/text_length_counter'\n\nUC.views.DirectHireJobLeadsNew = Backbone.View.extend({\n events: {\n 'click #nextButton' : 'nextButtonClicked',\n 'click .js-nextButton' : 'nextButtonClicked',\n 'click #backButton' : 'backButtonClicked',\n 'click .js-lnkNewJobLogin' : 'openNewJobLogin',\n 'change .expedited_legal_subject' : 'updateExpeditedTitle'\n },\n\n el: '#content',\n\n routes: {\n update: '/direct_hire_job_leads/{0}/answer_question',\n revert: '/direct_hire_job_leads/{0}/revert_question'\n },\n\n initialize: function() {\n this.buttonLoader = this.$('#nextButton').buttonLoader();\n this.$paj_stage_wrapper = this.$('#paj_stage_wrapper');\n this.jobLeadId = UC.constants.jobLeadId;\n this.routes.update = this.routes.update.format(this.jobLeadId);\n this.routes.revert = this.routes.revert.format(this.jobLeadId);\n this.show_question();\n\n if (UC.user) {\n UC.PajHelpers.isUserRestricted();\n }\n\n this.descriptionLengthCounter = new TextLengthCounter({\n el: this.$el,\n errorContainer: '.form-group',\n textarea: 'textarea.js-description-textarea',\n counter: '.js-description-length'\n })\n },\n\n backButtonClicked: function(){\n UC.utils.recordPajEvent({\n eventName: 'back_button_clicked',\n stageName: 'questionnaire',\n jobLeadId: this.jobLeadId\n });\n this.revert_question();\n },\n\n nextButtonClicked: function(){\n UC.utils.recordPajEvent({\n eventName: 'next_button_clicked',\n stageName: 'questionnaire',\n jobLeadId: this.jobLeadId\n });\n var form = this.$('.job-question');\n if(!this.is_valid(form)) return;\n this.answer_question({\n question: form.data('id'),\n responses: this.responses_from_form(form)\n });\n },\n\n answer_question: function(data){\n this.buttonLoader.showLoader();\n UC.net.post(this.routes.update, data, function(res) {\n try{\n if(typeof res == 'string') res = JSON.parse(res);\n if(res.next_question) this.show_question(res.next_question.html);\n if(res.redirect) location.href = res.redirect.url;\n }\n catch(error){\n console.log(error);\n }\n }.bind(this)).always(function() {\n this.buttonLoader.hideLoader();\n }.bind(this));\n },\n\n revert_question: function(){\n UC.net.post(this.routes.revert, {}, function(res) {\n if(typeof res == 'string') res = JSON.parse(res);\n if(res.last_question) this.show_question(res.last_question.html);\n }.bind(this));\n },\n\n show_question: function(question_html){\n if(question_html) this.$paj_stage_wrapper.html(question_html);\n UC.utils.scrollToTop();\n this.$('.select2').select2();\n },\n\n responses_from_form: function(form){\n var inputs = form.find(':input');\n var responses = {};\n _.each(inputs, function(input) {\n if (input.type === \"radio\"){\n if(input.checked) responses[input.id.toString()] = input.value;\n } else {\n responses[input.id.toString()] = input.value;\n }\n });\n return responses;\n },\n\n is_valid: function(form){\n if(!form.data('required')) {\n return true;\n }\n UC.utils.clearValidationErrors('form-group');\n\n let errors = []\n _.each(form.find(':input'), function(input) {\n if(input.value.length < 1){\n errors.push({element: $(input), text: 'required'});\n }\n });\n\n if (!this.descriptionLengthCounter.hasValidTextLength()) {\n errors.push(this.descriptionLengthCounter.getError());\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n }\n\n return errors.length === 0;\n },\n\n updateExpeditedTitle: function(){\n this.$('.expedited_title').val(this.$('.expedited_legal_subject option:selected').text());\n }\n});\n","!function() {\n\n UC.views.EducationCenterIndex = Backbone.View.extend({\n\n events: {\n 'click #video-modals a': 'onClickVideoModalLink'\n },\n\n initialize: function() {\n $(window).resize(this.updateVideoModalHeights);\n this.updateVideoModalHeights();\n this.showVideoModalByHash();\n },\n\n updateVideoModalHeights: function() {\n $('.video-modal-iframe').css('height', $('body').height() * 0.6);\n },\n\n showVideoModalByHash: function() {\n var elementId = window.location.hash\n var element = $(elementId)\n\n if (elementId && element.length === 0) {\n UC.utils.showNotification('Video was not found', UC.constants.results.failure)\n } else {\n this.showVideoModal(window.location.hash);\n }\n },\n\n onClickVideoModalLink: function(e) {\n e.preventDefault();\n var id = $(e.currentTarget).data('id');\n var elementId = '#{0}'.format(id);\n window.location.hash = elementId;\n this.showVideoModal(elementId)\n },\n\n showVideoModal: function(elementId) {\n this.elementId = elementId\n $(elementId).on('hidden.bs.modal', this.onHideVideoModal.bind(this));\n $(elementId).modal('show');\n },\n\n onHideVideoModal: function() {\n var iframeElement = this.elementId + ' iframe';\n $(iframeElement).attr('src', $(iframeElement).attr('src'));\n history.pushState('', document.title, window.location.pathname);\n }\n });\n}();\n","!function() {\n\n UC.views.EmailsIndex = Backbone.View.extend({\n\n events: {\n 'submit form.new_email': 'createEmail'\n },\n\n initialize: function() {\n this.emails = UC.constants.emails;\n this.render();\n },\n\n render: function() {\n _.each(this.emails, this.addRow.bind(this));\n },\n\n createEmail: function(e) {\n e.preventDefault();\n\n var data = $(e.target).serializeJSON();\n\n UC.net.post(window.location, data, function(email) {\n var message = 'We sent a verification email to {0}. Please follow the instructions in it.'.format(email.Email);\n this.$el.find('#user_email_Email').val('');\n this.addRow(email);\n UC.utils.showNotification(message, UC.constants.results.success);\n }.bind(this));\n\n return false\n },\n\n addRow: function(email) {\n var view = new UC.views.EmailsRow({ email: email });\n this.$el.find('#emails').append(view.render().el);\n }\n });\n}();\n","!function() {\n\n UC.views.EmailsRow = Backbone.View.extend({\n\n attributes: {\n id: 'emails',\n class: 'email__container'\n },\n\n tagName: 'li',\n\n template: UC.views.resolveHandlebarsTemplate('public/emails/email'),\n\n events: {\n 'click .set-primary': 'setPrimary',\n 'click .resend-verification': 'resendVerification',\n 'click .remove': 'destroy'\n },\n\n initialize: function(options) {\n this.email = options.email;\n this.email.primary = this.email.Email === UC.user.email;\n this.base_path = '{0}/{1}'.format(window.location, this.email._id);\n },\n\n render: function() {\n this.$el.html(this.template(this.email));\n return this;\n },\n\n resendVerification: function(e) {\n e.preventDefault();\n\n var path = '{0}/resend_verification'.format(this.base_path);\n\n UC.net.post(path, null, function(result) {\n UC.utils.showNotification(result.message, UC.constants.results.success);\n });\n },\n\n destroy: function(e) {\n e.preventDefault();\n UC.net.destroy(this.base_path, null, this.remove.bind(this));\n },\n\n setPrimary: function(e) {\n e.preventDefault();\n\n const $loader = $(e.currentTarget).buttonLoader();\n $loader.showLoader();\n\n UC.net.post('{0}/set_primary'.format(this.base_path), null).fail(function() {\n $loader.hideLoader();\n });\n }\n });\n}();\n","UC.views.EnterpriseRequests = Backbone.View.extend({\n initialize: function() {\n UC.utils.initTransparentNav('#nav');\n }\n});\n","!function() {\n\n UC.views.FreeLegalIndex = Backbone.View.extend({\n\n events: {\n 'submit #legal_search': 'formSubmit',\n 'blur #legal_search_input': 'pushState',\n 'keydown #legal_search_input': 'searchTimeout',\n 'click .horizontal-list-filter-option': 'filterResults',\n 'click .free-legal-docs-tile-filter': 'toggleLegalArea',\n 'click #search_results_pagination .page-link': 'showPage'\n },\n\n initialize: function() {\n var search = UC.constants.search || {};\n\n this.query = search.q;\n this.page = search.page;\n this.filter = search.filter;\n this.legal_areas = search.legal_areas;\n\n this.$search_input = this.$el.find('#legal_search_input');\n this.$search_input.focus().val(this.query);\n\n window.onpopstate = this.popState.bind(this);\n },\n\n searchTimeout: function(e) {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(function() {\n var query = this.$search_input.val();\n\n if (query == this.query) {\n // query hasn't changed\n return;\n }\n\n this.page = 1;\n this.query = query;\n this.performSearch();\n }.bind(this), 100);\n },\n\n formSubmit: function(e) {\n clearTimeout(this.timeout);\n e.preventDefault();\n\n var $search_results = this.$el.find('#search_results_wrap');\n\n $search_results.css({\n 'height': $search_results.height(),\n 'visibility': 'hidden'\n })\n\n this.page = 1;\n this.query = this.$search_input.val();\n\n this.pushState();\n this.performSearch(function(data) {\n\n if ($(window).isMobileWidth()) {\n UC.utils.scrollToElement('#legal_search_wrap', {\n offset: 0\n });\n }\n\n $search_results.css({\n 'height': 'auto',\n 'visibility': 'visible'\n }).addClass('animated fadeIn');\n\n setTimeout(function() {\n // reset for next time\n $search_results.removeClass('animated fadeIn');\n }, 500);\n }.bind(this));\n\n this.recordFilterTracking('free_legal#index form submit');\n },\n\n showPage: function(e) {\n e.preventDefault();\n UC.utils.scrollToTop();\n this.page = $(e.currentTarget).data('page');\n this.performSearch();\n this.pushState();\n },\n\n filterResults: function(e) {\n e.preventDefault();\n\n var $filter = $(e.currentTarget);\n var type = $filter.data('type');\n\n this.page = 1;\n this.selectFilter(type);\n\n this.pushState();\n this.performSearch();\n\n this.recordFilterTracking('free_legal#index horizontal list filter clicked', {\n filter_type: type\n });\n },\n\n toggleLegalArea: function(e) {\n clearTimeout(this.timeout);\n\n this.page = 1; // reset back to page one\n this.legal_areas = this.legal_areas || [];\n\n var $legal_area = $(e.currentTarget);\n var legal_area_id = $legal_area.data('legal-area');\n\n if ($legal_area.hasClass('active')) {\n var index = this.legal_areas.indexOf(legal_area_id);\n this.legal_areas.splice(index, 1);\n $legal_area.removeClass('active');\n\n this.recordFilterTracking('free_legal#index legal area filter deactivated', {\n legal_area_id: legal_area_id\n });\n } else {\n this.legal_areas.push(legal_area_id);\n $legal_area.addClass('active');\n\n this.recordFilterTracking('free_legal#index legal area filter activated', {\n legal_area_id: legal_area_id\n });\n }\n\n this.pushState();\n this.performSearch();\n },\n\n performSearch: function(callback) {\n\n if (this.ajax && typeof this.ajax.abort === 'function') {\n // abort any running requests\n this.ajax.abort();\n }\n\n var options = {\n q: this.query,\n filter: this.filter,\n legal_areas: this.legal_areas,\n page: this.page\n };\n\n this.ajax = UC.net.get('/free-legal-documents.json', options, function(data) {\n this.updateFilter(data);\n this.$('#search_results').html(data.html);\n\n if (typeof callback === 'function') {\n callback(data);\n }\n\n this.recordFilterTracking('free_legal#index search performed');\n }.bind(this));\n\n this.ajax.fail(function(xhr, textStatus) {\n if (textStatus === 'abort') {\n // don't show angry message on aborts (from above)\n xhr.handled = true;\n }\n });\n },\n\n updateFilter: function(data) {\n var $filter = this.$el.find('#search_results_filter');\n var type_facets = data.facets['_type'] || {};\n var document_count = type_facets.Document || 0;\n var article_count = type_facets.Article || 0;\n var filters = {\n 'all': document_count + article_count,\n 'documents': document_count,\n 'articles': article_count\n };\n\n for (var type in filters) {\n var count = filters[type];\n var $li = $filter.find('a[data-type={0}]'.format(type)).closest('li');\n var $count = $li.find('span.count');\n\n $count.text(count);\n\n if (count > 0) {\n $li.removeClass('hide');\n } else if (type !== 'all') {\n $li.addClass('hide');\n }\n }\n\n if (data.total_entries > 0) {\n $filter.removeClass('hide');\n } else if (this.filter === 'all') {\n $filter.addClass('hide');\n }\n },\n\n selectFilter: function(filter) {\n this.filter = filter || 'all';\n\n this.$el.find('#search_results_filter li').removeClass('active');\n this.$el.find('#search_results_filter a[data-type={0}]'.format(this.filter))\n .closest('li').addClass('active');\n },\n\n selectLegalAreas: function(legal_areas) {\n legal_areas = legal_areas || [];\n var $tiles = this.$('.free-legal-docs-tile-filter');\n\n $tiles.removeClass('active');\n\n for (var i=0; i 0) {\n var percentFee = (bakedInFee / 100) + 1;\n\n item.amount_client = UC.utils.multiplyCurrency(item.unitPrice, percentFee);\n item.amount = UC.utils.multiplyCurrency(total, percentFee);\n } else {\n item.amount = total;\n }\n\n // update html with parsed/formatted values\n $element.find('.item-amount').val(UC.utils.formatCurrency(item.amount, true));\n $element.find('.item-amount-client').val(item.amount_client);\n\n this.items.push(item);\n }.bind(this));\n },\n\n setTotalValues: function () {\n var platformFeeAmount = 0.0;\n var hours = 0.00;\n var serviceFeesSubtotal = 0.00;\n var expensesSubtotal = 0.00;\n var total = 0.00;\n\n for (var i = 0; i < this.items.length; i++) {\n var item = this.items[i];\n var quantity = parseFloat(item.quantity);\n var amount = parseFloat(item.amount);\n\n if (this.isExpense(item)) {\n expensesSubtotal += amount;\n } else {\n serviceFeesSubtotal += amount;\n\n if (item.itemType === UC.constants.InvoiceItemType.TimeEntry) {\n hours += quantity;\n }\n }\n }\n\n this.total = total = expensesSubtotal + serviceFeesSubtotal;\n this.$('#lblFilingSubtotal').text(UC.utils.formatCurrency(expensesSubtotal, true));\n\n if (hours > 0) {\n this.$('#lblTotalHours').text(hours.toFixed(2));\n this.$('#rowTotalHours').removeClass('hidden');\n } else {\n this.$('#rowTotalHours').addClass('hidden');\n }\n\n if (this.$platformFee.length) {\n platformFeeAmount = this.setPlatformFees(serviceFeesSubtotal, expensesSubtotal);\n this.$platformFee.text(UC.utils.formatCurrency(platformFeeAmount, true));\n }\n \n this.$('#lblTotal').text(UC.utils.formatCurrency(total + platformFeeAmount, true));\n this.$('#lblSubtotal').text(UC.utils.formatCurrency(serviceFeesSubtotal, true));\n },\n \n setPlatformFees: function (serviceFees, filingFees) {\n var paymentProfile = this.attorney_client.payment_profile;\n var servicePlatformFeeAmount = serviceFees * paymentProfile.platform_service_fee_percent / 100;\n var filingPlatformFeeAmount = filingFees * paymentProfile.platform_filing_fee_percent / 100;\n return servicePlatformFeeAmount + filingPlatformFeeAmount;\n },\n\n determineBakedFee: function () {\n var paymentProfile = this.attorney_client.payment_profile;\n\n if (paymentProfile.is_shadow_baked) {\n // we aren't making the \"bake\" visible to the attorney/client\n return 0;\n }\n\n if (UC.constants.bid) {\n // on job invoices, we use the payment profile from the original bid\n paymentProfile = UC.constants.bid.payment_profile;\n }\n\n return paymentProfile.baked_service_fee;\n },\n\n isExpense: function (item) {\n return item.itemType === UC.constants.InvoiceItemType.FilingFees || item.itemType === UC.constants.InvoiceItemType.Expenses;\n },\n\n onLnkAddLineItemClick: function (e) {\n e.preventDefault();\n var type = this.$(e.currentTarget).data('type');\n this.addLineItem(type);\n },\n\n // TODO this is an open question. is the modal within the el? should we widen the el scope?\n onSaveInvoiceReasonClick: function (e) {\n e.preventDefault();\n\n if (this.validateUpcounselInvoice() ) {\n this.$('#mdlUpcounselInvoiceReason').modal('hide');\n this.sendInvoiceLoader.showLoader();\n this.sendInvoice(this.invoice, { collectUpcounselInfo: true });\n }\n },\n\n initFancyCombobox: function () {\n (function ($) {\n $.widget(\"custom.combobox\", {\n _create: function () {\n this.wrapper = $(\"
    \")\n .addClass(\"custom-combobox\")\n .insertAfter(this.element);\n this.element.hide();\n this._createAutocomplete();\n this._createShowAllButton();\n },\n _createAutocomplete: function () {\n var selected = this.element.children(\":selected\");\n var value = selected.val() ? selected.text() : \"\";\n var input = this.input = $(\"\")\n .appendTo(this.wrapper)\n .val(value)\n .attr('id', '{0}Combobox'.format(this.element.attr('id')))\n .addClass(\"custom-combobox-input form-control changeable\")\n .on('focus', function () {\n input.autocomplete(\"search\", \"\");\n })\n .autocomplete({\n delay: 0,\n minLength: 0,\n source: function (request, response) {\n response(this.element.children(\"option\").map(function () {\n return $(this).val();\n }).get());\n }.bind(this)\n });\n input.on('autocompletechange', function () {\n var text = input.val();\n if (this.element.find('option[value=\"{0}\"]'.format(text)).length < 1) {\n this.element.append(''.format(text, text));\n }\n this.element.val(input.val());\n }.bind(this));\n },\n _createShowAllButton: function () {\n var input = this.input;\n var wasOpen = false;\n $(\"\")\n .attr(\"tabIndex\", -1)\n .appendTo(this.wrapper)\n .addClass(\"custom-combobox-toggle\")\n .html('')\n .mousedown(function () {\n wasOpen = input.autocomplete(\"widget\").is(\":visible\");\n })\n .click(function (e) {\n input.focus();\n // Close if already visible\n if (wasOpen) {\n return;\n }\n });\n },\n _destroy: function () {\n this.wrapper.remove();\n this.element.show();\n }\n });\n })(jQuery);\n },\n\n initBillToName: function () {\n\n if (this.$billToName) {\n this.$billToName.combobox('destroy');\n }\n\n this.$billToName = this.$('#selectBillToName').combobox();\n },\n\n toggleBakedIndicators: function () {\n var hasBakedFee = this.determineBakedFee() > 0;\n\n this.$('.unbaked-table-head').toggleClass('hidden', hasBakedFee);\n\n this.$('.baked-table-head').toggleClass('hidden', !hasBakedFee);\n this.$('.client-rate-col').toggleClass('hidden', !hasBakedFee);\n },\n\n initDraggableLineItems: function () {\n var serviceColumns = $('#serviceItems thead th').length;\n var filingColumns = $('#filingItems thead th').length;\n\n this.$('table#serviceItems tbody').sortable({\n axis: 'y',\n tolerance: 'pointer',\n handle: '.drag-line-item',\n items: '.invoice-line-item',\n containment: 'parent',\n placeholder: 'invoice-line-item-placeholder',\n start: function (e, ui) {\n this.hideAllTooltips();\n ui.placeholder.html('
    '.format(serviceColumns));\n }.bind(this)\n });\n\n this.$('table#filingItems tbody').sortable({\n axis: 'y',\n tolerance: 'pointer',\n handle: '.drag-line-item',\n items: '.invoice-line-item',\n containment: 'parent',\n placeholder: 'invoice-line-item-placeholder',\n start: function (e, ui) {\n this.hideAllTooltips();\n ui.placeholder.html(''.format(filingColumns));\n // We need to remove a td element as one is hidden for filing fees\n ui.placeholder.find('td:first').remove();\n }.bind(this)\n });\n },\n\n hideAllTooltips: function () {\n this.$('#invoice-items').find('[data-toggle=\"tooltip\"]').each(function () {\n $(this).tooltip('hide');\n });\n },\n\n initLineItems: function ($lineItems) {\n var $items;\n\n if ($lineItems && $lineItems.length > 0) {\n $items = $lineItems;\n } else {\n // default to all items on the page\n $items = this.$('.invoice-line-item');\n }\n\n $items.each(function (i, el) {\n var $item = $(el);\n\n $item.find('.item-type').select2();\n $item.find('.item-date').datepicker(UC.constants.datepickerOptions);\n $item.find('.currency').currencyInput({ addCurrencySymbol: true });\n\n if (!$(window).isMobileWidth()) {\n // skip tooltips on mobile to avoid need for double tapping\n $item.find('[data-toggle=\"tooltip\"]').tooltip({\n animation: false\n });\n }\n }.bind(this));\n },\n\n addLineItem: function (type, opts) {\n var opts = opts || {};\n var $container = this.$('.inv-items[data-type=\"'+ type +'\"]');\n var $item = this.defaultItem(type);\n var $previousItem = $container.find('.trItem:visible').last();\n var previousUnitPrice = $previousItem.find('.item-unit-price').val();\n var $itemQuantity = $item.find('.item-quantity');\n var $itemUnitPrice = $item.find('.item-unit-price');\n var $itemDescription = $item.find('.item-description');\n var $itemType = $item.find('.item-type');\n var previousDate;\n\n if ($previousItem.length > 0) {\n previousDate = $previousItem.find('.item-date').datepicker('getDate');\n }\n\n if (opts.quantity || opts.quantity === 0) {\n $itemQuantity.val(opts.quantity);\n }\n\n if (opts.unitPrice || opts.unitPrice === 0) {\n $itemUnitPrice.val(opts.unitPrice);\n } else if (($itemType.val() !== UC.constants.InvoiceItemType.FilingFees) && previousUnitPrice) {\n $itemUnitPrice.val(previousUnitPrice);\n }\n\n if (opts.description) {\n $itemDescription.val(opts.description);\n }\n\n if (opts.type) {\n $itemType.val(opts.type);\n }\n\n if (opts.timesheetLineItemId) {\n $item.data('timesheet-item-id', opts.timesheetLineItemId);\n }\n\n $container.find('tbody').append($item);\n\n this.initLineItems($item);\n\n if (opts.date) {\n $item.find('.item-date').datepicker('setDate', opts.date);\n } else if (previousDate) {\n $item.find('.item-date').datepicker('setDate', previousDate);\n }\n\n this.onItemChange();\n this.toggleBakedIndicators();\n },\n\n defaultItem: function (type) {\n // exists outside the invoiceForm element\n var html = this.$('#template-invoice-{0}-item'.format(type)).html();\n\n return $(html);\n },\n\n hideSendInvoiceLoaders: function () {\n this.modalSendInvoiceLoader.hideLoader();\n this.sendInvoiceLoader.hideLoader();\n },\n\n onQuantityChange: function (e) {\n var $quantity = $(e.target),\n val = parseFloat($quantity.val().replace(/,/g, ''));\n\n if (isNaN(val)) {\n $quantity.val('0.00');\n $quantity.trigger('change');\n }\n },\n\n onBtnRemoveItemClick: function (e) {\n e.preventDefault();\n var $invoiceLineTr = $(e.target).closest('tr');\n $invoiceLineTr.trigger('invoiceLineItemRemoved');\n $invoiceLineTr.remove();\n this.onItemChange();\n },\n\n requireSendInvoiceConfirmation: function () {\n var confirmMessage = 'Are you sure you want to send this invoice?';\n\n UC.utils.showConfirmModal('Confirm', confirmMessage, function (response) {\n if (response) {\n this.sendInvoiceOrShowInvoiceReasonModal();\n }\n }.bind(this));\n },\n\n sendInvoice: function (invoice, options) {\n this.collectItemsData();\n\n if (!UC.constants.hasPayout) {\n this.$('#modalNoBankAccount').modal();\n this.hideSendInvoiceLoaders();\n return;\n }\n else if (UC.constants.unverifiedAccount) {\n this.$('#modalUnverifiedAccount').modal();\n this.hideSendInvoiceLoaders();\n return;\n }\n\n var data = {\n invoice: invoice,\n items: this.items\n };\n\n if (options && options.collectUpcounselInfo) {\n data.invoice.UpcounselInvoiceReason = this.upcounselInvoiceReason;\n data.invoice.RelatedInvoiceId = this.relatedInvoiceId;\n data.adminNote = this.adminNote;\n }\n\n this.confirmUnload.resetChanged();\n\n var ajax = null;\n\n if (UC.action === 'edit') {\n ajax = UC.net.put('/invoices/{0}'.format(UC.invoice.id), data);\n } else {\n ajax = UC.net.post('/invoices', data);\n }\n\n ajax.fail(function () {\n this.hideSendInvoiceLoaders();\n }.bind(this));\n },\n\n sendInvoiceOrShowInvoiceReasonModal: function (e) {\n\n if (e) {\n $(e.currentTarget).buttonLoader().showLoader();\n }\n\n var $mdlUpcounselInvoiceReason = this.$('#mdlUpcounselInvoiceReason');\n\n if ($mdlUpcounselInvoiceReason.length > 0) {\n $mdlUpcounselInvoiceReason.modal();\n } else {\n this.sendInvoiceLoader.showLoader();\n this.sendInvoice(this.invoice);\n }\n },\n\n onSendInvoiceClick: function (e) {\n e.preventDefault();\n\n this.invoice = this.$('#invoiceForm').serializeJSON();\n\n if (!this.validate(this.invoice)) {\n return false;\n }\n\n\n this.requireSendInvoiceConfirmation();\n },\n\n validate: function (invoice) {\n var fields = [\n {\n element: '#selectClients',\n errorMessage: 'Please select a client'\n },\n {\n element: '#selectBillToName',\n errorMessage: 'Please enter a bill to name'\n }\n ];\n\n if (invoice.JobId && !invoice.Type) {\n fields.push({\n element: '#invoiceFinalInvoice',\n errorMessage: 'Please indicate if this is the final invoice'\n });\n }\n\n this.$('tbody .trItem').each(function () {\n fields.push({\n element: $(this).find('.item-date'),\n errorClassName: 'date',\n type: 'date'\n });\n });\n\n return UC.utils.validateFields(fields, {\n scrollToFirst: true\n });\n },\n\n validateUpcounselInvoice: function () {\n var errors = [];\n this.$('.row .has-error').removeClass('has-error');\n\n this.upcounselInvoiceReason = this.$(\"[name='UpcounselInvoiceReason']:checked\").val();\n this.relatedInvoiceId = this.$('#txtRelatedInvoiceId').val();\n this.adminNote = this.$('#txtAdminNote').val().trim();\n\n if (this.relatedInvoiceId === '' || (this.relatedInvoiceId !== '' && !UC.utils.validateObjectId(this.relatedInvoiceId))) {\n errors.push({element: this.$('#txtRelatedInvoiceId'), text: 'Please enter a valid object id'});\n }\n\n if (!this.upcounselInvoiceReason) {\n errors.push({element: this.$('#upcounselInvoiceReason'), text: 'Invoice reason is required'});\n }\n\n if (this.adminNote === '') {\n errors.push({element: this.$('#txtAdminNote'), text: 'Notes are required'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n }\n\n return true;\n },\n\n autoResizeInputTextArea: function (event) {\n const textarea = $(event.currentTarget);\n\n textarea.css('height', 'auto'); // To calculate the actual content height\n\n const minHeight = 28 + 10; // single line height + 10 to adjust for padding\n const scrollHeight = 300; // maximum height before scrolling starts\n const newHeight = Math.min(textarea.prop('scrollHeight'), scrollHeight);\n\n // Set the new height based on content size or the max height allowed\n textarea.css('height', `${newHeight}px`);\n // Enable scrolling if textarea is more than one line\n textarea.css('overflow-y', newHeight >= minHeight ? 'auto' : 'hidden');\n },\n});\n","UC.partials.InvoicesModalNoPaymentRequired = Backbone.View.extend({\n\n events: {\n 'click #confirm-no-payment': 'submitNoPayment'\n },\n\n render: function() {\n this.$el.modal({\n backdrop: 'static'\n });\n },\n\n submitNoPayment: function(e) {\n e.preventDefault();\n\n var $noPaymentReasonTextarea = this.$('#no-payment-reason');\n var isValid = UC.utils.validateFields({\n element: $noPaymentReasonTextarea,\n errorMessage: 'Please provide a reason for why payment is not required'\n });\n\n if (isValid) {\n var data = {\n no_payment_reason: $noPaymentReasonTextarea.val()\n };\n\n if (UC.invoice && UC.invoice.isPersisted) {\n data.invoice_id = UC.invoice.id;\n }\n\n $(window).off('beforeunload'); // disable 'Are you sure you want to leave this page?' browser modal\n\n UC.net.post('/invoices/no_payment/{0}'.format(UC.job.id), data);\n }\n }\n});\n","UC.views.InvoicesEdit = Backbone.View.extend({\n\n events: {\n 'click #btnDeleteInvoice' : 'destroy'\n },\n\n initialize: function() {\n\n this.form_details = new UC.partials.InvoicesFormDetails({\n el: this.el,\n jobId: UC.job ? UC.job.id : null,\n showTimesheetEntryImport: false\n });\n\n this.form_details.render(UC.constants.attorney_client);\n\n $('.jn-invoices').addClass('active');\n },\n\n destroy: function (e) {\n e.preventDefault();\n\n var message = 'Are you sure you want to delete this invoice?';\n\n function onConfirm(response) {\n if (response) {\n UC.net.destroy('/invoices/{0}'.format(UC.invoice.id));\n }\n }\n\n UC.utils.showConfirmModal('Confirm', message, onConfirm);\n }\n});\n","UC.views.InvoicesIndex = Backbone.View.extend({\n\n events: {\n 'change #selectInvoiceFilter': 'onChangeInvoiceStatusFilter'\n },\n\n initialize: function() {\n $('[data-toggle=\"tooltip\"]').tooltip();\n },\n\n onChangeInvoiceStatusFilter: function () {\n var $selectInvoiceFilter = this.$el.find('#selectInvoiceFilter');\n var billedto = UC.utils.getParameterByName('billedto');\n var params = {\n Status: UC.utils.findSelectedElement($selectInvoiceFilter).val()\n }\n\n if (billedto) {\n params.billedto = billedto;\n }\n\n location.href = '/invoices?{0}'.format($.param(params));\n }\n});\n","UC.views.InvoicesNew = Backbone.View.extend({\n events: {\n 'change #selectClients' : 'fetchAttorneyClient',\n 'change #selectJob' : 'onChangeSelectedJob'\n },\n\n initialize: function() {\n var attorney_client_id = UC.utils.getParameterByName('attorney_client_id');\n\n this.$selectJob = this.$el.find('#selectJob');\n this.$selectClients = this.$el.find('#selectClients');\n this.$formDetails = this.$el.find('#invoice-form-details');\n\n if (UC.constants.attorney_client) {\n attorney_client_id = UC.constants.attorney_client.id;\n }\n\n if (attorney_client_id) {\n UC.utils.setSelectedElement(this.$selectClients, attorney_client_id);\n this.fetchAttorneyClient();\n } else if (this.$selectClients.val() !== '') {\n // clear out the selected client field, as the user probably hit back on a\n // new for job invoice page\n this.$selectClients.val('');\n }\n\n this.$el.find('#txtInvoiceDate').datepicker(UC.constants.datepickerOptions);\n this.$selectClients.select2();\n\n // If we include parameter to specify this is a direct invoice, it must be triggered after the client has been\n // selected as the select job dropdown is not populated until a client has been selected and the related events\n // have fired. Also, we need to check that the 'direct' option is present since we don't render this option if the\n // client doesn't have any available options to choose. Ludicrous.\n if (UC.utils.getParameterByName('direct_invoice') === 'true' && this.$selectJob.find('option[value=\"direct\"]').length > 0) {\n UC.utils.setSelectedElement(this.$selectJob, 'direct');\n this.$selectJob.trigger('change');\n }\n\n if (!UC.constants.hasPayout) {\n this.$el.find('#modalNoBankAccount').modal({ keyboard: false, backdrop: 'static' });\n } else if (UC.constants.unverifiedAccount) {\n this.$el.find('#modalUnverifiedAccount').modal({ keyboard: false, backdrop: 'static' });\n }\n },\n\n fetchAttorneyClient: function(e) {\n var attorney_client_id = this.$selectClients.val();\n\n if (attorney_client_id) {\n\n var path = '/clients/{0}.json'.format(attorney_client_id);\n\n UC.net.get(path, function(attorney_client) {\n this.onFetchAttorneyClient(attorney_client);\n }.bind(this));\n }\n },\n\n onFetchAttorneyClient: function(attorney_client) {\n var $panelSelectJob = this.$el.find('#panelSelectJob');\n var clientId = attorney_client.id;\n\n this.attorney_client = attorney_client;\n\n var $timesheetLink = $('#timesheet-link');\n\n if ($timesheetLink.length > 0) {\n $timesheetLink.attr('href', '/clients/{0}?current_ts_entries=true'.format(clientId));\n }\n\n if (clientId && clientId != '##') {\n var name_options = attorney_client.options_for_bill_to_name;\n var name_options_html = name_options.map(function (name) {\n return ''.format(name);\n });\n\n this.$el.find('#selectBillToName').html(name_options_html);\n }\n\n if (attorney_client.wip_jobs.length > 0 && UC.constants.invoice_type !== 'direct') {\n var options = '';\n var jobs = attorney_client.wip_jobs;\n\n for (var i = 0, len = jobs.length; i < len; i++) {\n options += ''.format(jobs[i]._id, jobs[i].JobTitle);\n }\n options += '';\n\n UC.utils.showPanel($panelSelectJob);\n\n this.$selectJob.html(options).select2();\n } else {\n this.$selectJob.html('');\n UC.utils.hidePanel($panelSelectJob);\n\n if (clientId && clientId !== '##') {\n this.showFormDetails();\n\n this.pushNewJobForUSC();\n }\n }\n },\n\n onChangeSelectedJob: function () {\n var selectedJob = UC.utils.findSelectedElement(this.$selectJob).val();\n\n if (this.form_details) {\n this.form_details.confirmUnload.resetChanged();\n }\n\n if (selectedJob !== UC.constants.emptySelectValue && selectedJob !== 'direct') {\n location.href = '/invoices/new/{0}'.format(selectedJob);\n } else {\n this.noJobSelected();\n }\n },\n\n noJobSelected: function () {\n var wipJobsCount = this.attorney_client.wip_jobs.length;\n var openPrivateJobsCount = this.attorney_client.open_private_jobs.length;\n\n if (openPrivateJobsCount > 0) {\n this.showPrivateJobModal(this.attorney_client, openPrivateJobsCount);\n } else if (wipJobsCount > 0) {\n this.showWipJobModal(this.attorney_client, wipJobsCount);\n } else {\n this.pushNewJobForUSC();\n }\n },\n\n showPrivateJobModal: function (attorney_client, count) {\n var clientId = attorney_client.id;\n\n UC.net.get('open_private_jobs/{0}'.format(clientId), null, function(html) {\n var $existingModal = this.$el.find('#privateJobsModal');\n\n if ($existingModal.length > 0) $existingModal.remove();\n\n $('body').append($(html));\n $modal = this.$el.find('#privateJobsModal');\n $modal.modal({backdrop: 'static'});\n\n $modal.find('.fancy-check').each(function() {\n $(this).fancyCheck();\n });\n\n $modal.find('#btnNoRelatedJobs').click(this.noRelatedJobsClick.bind(this));\n $modal.find('#btnYesRelatedJobs').click(this.yesRelatedJobsClick.bind(this));\n UC.utils.recordKissEvent('show_open_jobs_reminder', { jobCount: count, attorneyClientId: clientId, attorneyId: UC.user.id });\n }.bind(this));\n },\n\n noRelatedJobsClick: function (e) {\n var clientId = this.$selectClients.find('option:selected').val();\n\n $modal = $('#privateJobsModal');\n $modal.modal('hide');\n\n this.showFormDetails();\n UC.utils.recordKissEvent('click_no_open_jobs_reminder', { attorneyClientId: clientId, attorneyId: UC.user.id });\n\n this.pushNewJobForUSC();\n },\n\n yesRelatedJobsClick: function (e) {\n var clientId = this.$selectClients.find('option:selected').val();\n var jobIds = [];\n var $modal = this.$el.find('#privateJobsModal');\n var $chks = $modal.find(\".fancy-check\");\n\n if ($chks.length > 0) {\n $chks.each(function(){\n if ($(this).hasClass('checked')) jobIds.push($(this).attr('value'));\n });\n } else {\n jobIds = JSON.parse($modal.find(\"input[name='RelatedJobIds[]']\").val());\n }\n\n for (var i = 0; i < jobIds.length; i++) {\n this.$formDetails.append(\"\".format(jobIds[i]));\n }\n\n $modal.modal('hide');\n this.showFormDetails();\n UC.utils.recordKissEvent('click_yes_open_jobs_reminder', {jobIds: jobIds, attorneyClientId: clientId, attorneyId: UC.user.id});\n },\n\n showWipJobModal: function (attorney_client, count) {\n var clientJobs = '{0} job{1} in progress'.format(count, count > 1 ? 's' : '');\n var clientName = attorney_client.FirstName;\n var clientId = attorney_client.id;\n var text = 'You have {0} with {1}. As a reminder, our new invoicing feature allows you to submit more than two invoices for a job without closing it. If you would like to create an invoice for an existing job, please select it from the “Related Job” dropdown menu.'.format(clientJobs, clientName);\n\n UC.utils.recordKissEvent('show_wip_jobs_reminder_modal', {jobCount: count, attorneyClientId: clientId, attorneyId: UC.user.id});\n UC.utils.showConfirmModal('Are You Sure?', text, this.pushNewJobForUSC.bind(this), { yesText: 'OK', noText: ''} );\n\n this.showFormDetails();\n },\n\n pushNewJobForUSC: function () {\n if (this.attorney_client.transaction_type === \"USC\") {\n this.showOpenNewJobModal(this.attorney_client);\n }\n },\n\n showOpenNewJobModal: function (attorney_client) {\n var clientId = attorney_client.id;\n var bestPracticesPath = '/educationcenter/Invoicing';\n var text = 'To protect both parties, all work agreed to by an attorney and client must be documented in a project rather than standalone invoices. We\\'ve made it easier to create new projects for existing clients, eliminating the need for the client to hire the attorney. Read more about invoicing best practices here.';\n\n UC.utils.showConfirmModal('Do You Want to Start a New Project?', text.format(bestPracticesPath), function (createNewJob) {\n if (createNewJob) {\n UC.utils.recordKissEvent('new_invoice_new_job_modal_create_job', {attorneyClientId: clientId, attorneyId: UC.user.id});\n location.href = '/job/add_project?clientId={0}'.format(clientId);\n } else {\n UC.utils.recordKissEvent('new_invoice_new_job_modal_create_invoice', {attorneyClientId: clientId, attorneyId: UC.user.id});\n this.$el.find('#repeat-usc-client-message').removeClass('hidden');\n }\n }.bind(this), {yesText: 'New Project', noText: 'New Invoice'});\n },\n\n showFormDetails: function () {\n\n if (!this.form_details) {\n this.form_details = new UC.partials.InvoicesFormDetails({\n el: this.el,\n showTimesheetEntryImport: true\n });\n }\n\n this.form_details.render(this.attorney_client);\n\n this.$formDetails.removeClass('hidden');\n },\n});\n","UC.views.InvoicesNewForJob = Backbone.View.extend({\n\n events: {\n 'click #aNonPaymentInvoice': 'openNoPaymentRequiredModal'\n },\n\n initialize: function() {\n\n this.form_details = new UC.partials.InvoicesFormDetails({\n el: this.el,\n jobId: UC.job.id,\n showTimesheetEntryImport: true\n });\n\n this.form_details.render(UC.constants.attorney_client);\n\n if (!UC.constants.hasPayout) {\n this.$el.find('#modalNoBankAccount').modal({ keyboard: false, backdrop: 'static' });\n } else if (UC.constants.unverifiedAccount) {\n this.$el.find('#modalUnverifiedAccount').modal({ keyboard: false, backdrop: 'static' });\n }\n\n $('.jn-invoices').addClass('active');\n\n if ($('.manage-job-cog').length > 0) {\n new UC.views.JobManageCog({\n el: '.manage-job-cog'\n });\n }\n },\n\n openNoPaymentRequiredModal: function(e) {\n e.preventDefault();\n\n new UC.partials.InvoicesModalNoPaymentRequired({\n el: '#modal-no-payment-required'\n }).render();\n }\n});\n","UC.views.InvoicesShow = Backbone.View.extend({\n\n events: {\n 'click #invoice-additional-info' : 'showAdminInfoForm',\n 'click #cancel-admin-info-form' : 'cancelAddAdminInfo',\n 'click #btnSaveInvoiceReason' : 'submitUpcounselPaymentsReason',\n 'click #btnInvoiceDescription' : 'openInvoiceDescription',\n 'click #openOfflinePaymentModal' : 'openOfflinePaymentModal',\n 'click #btnBadExperience' : 'showExperienceQuestion',\n 'click #btnGoodExperience' : 'showExperienceQuestion',\n 'submit #formAttorneyQuestionnaire' : 'submitAttorneyQuestionnaire',\n 'click #btnDeleteInvoice' : 'destroy',\n 'click #btnChangeDueDate' : 'onBtnChangeDueDateClick',\n 'click #btnConfirmDueDateChange' : 'onDueDateChange',\n 'click #aNonPaymentInvoice': 'openNoPaymentRequiredModal'\n },\n\n initialize: function () {\n this.today = new Date();\n var dueDateRange = this.dueDateRange();\n var dueDateDatepicker = this.$el.find('#txtDueDate').datepicker(UC.constants.datepickerOptions);\n var $mdlAttorneyQuestionnaire = this.$el.find('#mdlAttorneyQuestionnaire');\n\n if (!dueDateRange || dueDateRange.endDate < this.today) {\n // user is client, or is an attorney and the deadline to change due date has passed\n dueDateDatepicker.datepicker('option', {disabled: true});\n } else {\n dueDateDatepicker.datepicker('option', {minDate: dueDateRange.startDate, maxDate: dueDateRange.endDate});\n }\n\n if ($mdlAttorneyQuestionnaire.length > 0) {\n $mdlAttorneyQuestionnaire.modal();\n UC.utils.recordKissEvent('attorney_questionnaire_shown',{invoiceId: UC.invoice.id, attorneyId: UC.user.id});\n }\n\n new UC.components.FeesPopover({ el: this.$el });\n\n $('.jn-invoices').addClass('active');\n\n new UC.views.JobManageCog({ el: '.manage-job-cog' });\n },\n\n openInvoiceDescription: function (e) {\n e.preventDefault();\n this.$el.find('#invoice-description-modal').modal();\n },\n\n showAdminInfoForm: function (e) {\n e.preventDefault();\n this.$('form#add-admin-info').removeClass('hidden');\n this.$('#invoice-additional-info').addClass('hidden');\n },\n\n cancelAddAdminInfo: function (e) {\n e.preventDefault();\n var $adminInfoTextarea = this.$el.find('#admin-info-textarea');\n var originalValue = $adminInfoTextarea.data('originalValue');\n $adminInfoTextarea.val(originalValue);\n this.$('form#add-admin-info').addClass('hidden');\n this.$('#invoice-additional-info').removeClass('hidden');\n },\n\n submitUpcounselPaymentsReason: function (e) {\n e.preventDefault();\n\n var data = { invoice: {} };\n\n data.invoice.UpcounselInvoiceReason = this.$el.find(\"[name='UpcounselInvoiceReason']:checked\").val();\n data.invoice.RelatedInvoiceId = this.$el.find('#txtRelatedInvoiceId').val();\n data.adminNote = this.$el.find('#txtAdminNote').val().trim();\n\n if (this.validateUpcounselInvoiceReason(data)) {\n UC.net.post('/invoices/{0}/add_upcounsel_payments_reason'.format(UC.invoice.id), data, function (response) {\n UC.utils.showNotification(response.message, UC.constants.results.success);\n $('#mdlUpcounselInvoiceReason').modal('hide');\n })\n }\n },\n\n dueDateRange: function () {\n if (!UC.constants.invoiceSentDate) return;\n\n var invoiceSentDate = new Date(UC.constants.invoiceSentDate);\n\n // Starting date bound is 24 hours from date the invoice was sent by attorney\n var startingDateBound = new Date(invoiceSentDate.getTime());\n startingDateBound.setDate(invoiceSentDate.getDate() + 1);\n\n // Ending date bound is 30 days from date the invoice was sent by attorney\n var endingDateBound = new Date(invoiceSentDate.getTime());\n endingDateBound.setDate(invoiceSentDate.getDate() + 30);\n\n if (UC.user && UC.user.is_admin) {\n // Admin can set due date to any date in the future\n return {startDate: this.today, endDate: null};\n } else if (UC.user && UC.user.type === 'attorney') {\n if (startingDateBound > this.today) {\n return {startDate: startingDateBound, endDate: endingDateBound};\n } else if (this.today < endingDateBound) {\n return {startDate: this.today, endDate: endingDateBound};\n } else {\n // past ending date bound, should not allow attorney to update\n return {startDate: startingDateBound, endDate: endingDateBound};\n }\n }\n },\n\n dueDateOutOfRange: function (momentDueDate) {\n var dateRange = this.dueDateRange();\n var startingDateBound = moment(dateRange.startDate, UC.constants.momentDateFormats, true);\n var endingDateBound = moment(dateRange.endDate, UC.constants.momentDateFormats, true);\n\n return !UC.user.is_admin && ((momentDueDate.isBefore(startingDateBound, 'day')) || (momentDueDate.isAfter(endingDateBound, 'day')))\n },\n\n onBtnChangeDueDateClick: function (e) {\n e.preventDefault();\n this.$('#dueDateModal').modal();\n },\n\n onDueDateChange: function () {\n var dueDate = this.$el.find('#txtDueDate').val();\n var formattedDate = moment(dueDate, UC.constants.momentDateFormats, true);\n\n var onChange = function (err, message) {\n this.$('#dueDateModal').modal('hide');\n\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n UC.utils.showNotification(message, UC.constants.results.success);\n this.$('#lblDueDate').text(dueDate);\n this.$('#lblAutoProcessDate').text(dueDate);\n }\n }.bind(this);\n\n if (!formattedDate.isValid()) {\n UC.utils.showNotification('Invalid date {0}'.format(dueDate));\n } else if (this.dueDateOutOfRange(formattedDate)) {\n UC.utils.showNotification('Due date selected is outside of allowable range.');\n } else {\n var dateToSend = formattedDate.format('MM/DD/YYYY');\n UC.net.post('/invoices/{0}/update_due_date'.format(UC.invoice.id), {date: dateToSend}, onChange);\n }\n },\n\n validateUpcounselInvoiceReason: function (data) {\n var errors = [];\n var relatedInvoiceId = data.invoice.RelatedInvoiceId;\n var upcounselInvoiceReason = data.invoice.UpcounselInvoiceReason;\n var adminNote = data.adminNote;\n\n this.$el.find('.row.has-error').removeClass('has-error');\n\n if (relatedInvoiceId === '' || (relatedInvoiceId != '' && !UC.utils.validateObjectId(relatedInvoiceId))) {\n errors.push({element: $('#txtRelatedInvoiceId'), text: 'Please enter a valid object id'});\n }\n\n if (!upcounselInvoiceReason) {\n errors.push({element: $('#upcounselInvoiceReason'), text: 'Invoice reason is required'});\n }\n\n if (adminNote === '') {\n errors.push({element: $('#txtAdminNote'), text: 'Notes are required'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n }\n\n return true;\n },\n\n openOfflinePaymentModal: function (e) {\n e.preventDefault();\n\n var $modal = this.$el.find('#offline-payment-modal').modal({});\n var $dateField = $modal.find('#txtProcessDate');\n var $totalFees = $modal.find('#txtPaidAmount');\n var $filingFees = $modal.find('#txtFilingFees');\n var $serviceFees = $modal.find('#txtServiceFees');\n var $closeJob = $modal.find('#chkCloseJob');\n\n $dateField.datepicker().datepicker(UC.constants.datepickerOptions).datepicker('setDate', new Date());\n\n $modal.on('change', '#txtServiceFees, #txtFilingFees', function (e) {\n var serviceFees = UC.utils.currencyToFloat($serviceFees.val());\n var filingFees = UC.utils.currencyToFloat($filingFees.val());\n\n $totalFees.val(\"${0}\".format(UC.utils.formatCurrency(serviceFees + filingFees)));\n });\n\n $modal.on('click', '#btnCreateOfflinePayment', function (e) {\n UC.utils.clearValidationErrors('form-group');\n\n var errors = [];\n var data = {\n DateProcessed: $dateField.datepicker().datepicker('getDate'),\n PaidAmount: UC.utils.currencyToFloat($totalFees.val()),\n ServiceFees: UC.utils.currencyToFloat($serviceFees.val()),\n FilingFees: UC.utils.currencyToFloat($filingFees.val())\n };\n\n if ($closeJob.length > 0 && $closeJob.is(':checked')) {\n data.CloseJob = true;\n } else {\n data.CloseJob = false;\n }\n\n if (data.PaidAmount <= 0) {\n errors.push({element: $totalFees, text: 'Paid Amount must be greater than $0.00'})\n }\n\n if (data.ServiceFees < 0) {\n errors.push({element: $serviceFees, text: 'Service Fees must be greater than or equal to $0.00'})\n } else {\n data.ServiceFees *= 100;\n }\n\n if (data.FilingFees < 0) {\n errors.push({element: $filingFees, text: 'Filing Fees must be greater than or equal to $0.00'})\n } else {\n data.FilingFees *= 100;\n }\n\n if (data.DateProcessed === '') {\n errors.push({element: $dateField, text: 'Check Date is required'})\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: 'form-group'});\n } else {\n UC.net.post('/invoices/{0}/payment/create_offline'.format(UC.invoice.id), {payment: data}, function (){\n location.reload(true);\n });\n }\n }.bind($modal));\n },\n\n showExperienceQuestion: function (e) {\n var target = $(e.currentTarget).data('target');\n this.$el.find(target).removeClass('hidden');\n this.$el.find('#rateExperienceQuestion').addClass('hidden');\n this.$el.find('#actionButtons').removeClass('hidden');\n },\n\n submitAttorneyQuestionnaire: function (e) {\n e.preventDefault();\n\n var data = this.$el.find('#formAttorneyQuestionnaire').serializeJSON();\n var $mdlAttorneyQuestionnaire = this.$el.find('#mdlAttorneyQuestionnaire');\n\n UC.net.post('{0}/submit_invoice_questionnaire'.format(UC.invoice.id), data, function (res) {\n $mdlAttorneyQuestionnaire.modal('hide');\n UC.utils.showNotification(res.message, UC.constants.results.success)\n }.bind(this))\n },\n\n destroy: function (e) {\n e.preventDefault();\n\n var message = 'Are you sure you want to delete this invoice?';\n\n function onConfirm(response) {\n if (response) {\n UC.net.destroy('/invoices/{0}'.format(UC.invoice.id));\n }\n }\n\n UC.utils.showConfirmModal('Confirm', message, onConfirm);\n },\n\n openNoPaymentRequiredModal: function(e) {\n e.preventDefault();\n\n new UC.partials.InvoicesModalNoPaymentRequired({\n el: '#modal-no-payment-required'\n }).render();\n }\n\n})\n","import TextLengthCounter from '../../../components/text_length_counter'\nimport { GeoLocation } from '../../../components/geo_location'\n\nUC.partials.AiForm = Backbone.View.extend({\n\n events: {\n 'change #job_lead_ZipCode': 'onZipCodeChanged',\n },\n\n routes: {\n validZipCode: '/account/valid_zip_code/'\n },\n\n initialize: function(options) {\n this.descriptionLengthCounter = new TextLengthCounter({\n el: this.$el,\n errorContainer: '.form-group',\n textarea: '#job_lead_Description',\n counter: '.js-description-length'\n })\n\n this.$zipCode = $('#job_lead_ZipCode');\n\n if (this.$zipCode.val().length > 0) {\n this.onZipCodeChanged();\n }\n },\n\n validate: function(dfd) {\n this.$el.find('.has-error').removeClass('has-error');\n\n let errors = [];\n const job_lead = this.$el.serializeJSON().job_lead;\n\n const data = {\n ai_form: {\n description: job_lead.Description,\n email: job_lead.Email,\n phone: job_lead.Phone,\n timeline: job_lead.Timeline,\n zip_code: job_lead.ZipCode\n }\n }\n\n UC.constants.aiForm = data.ai_form\n\n if (!this.descriptionLengthCounter.hasValidTextLength()) {\n errors.push(this.descriptionLengthCounter.getError());\n }\n\n if (data.ai_form.phone && data.ai_form.phone.length > 0 &&\n !UC.utils.validatePhone(data.ai_form.phone)) {\n errors.push({element: $('#job_lead_Phone'), text: 'Please enter a valid phone number'});\n }\n\n if (data.ai_form.email && data.ai_form.email.length > 0 &&\n !UC.utils.validateEmail(data.ai_form.email)) {\n errors.push({element: $('#job_lead_Email'), text: 'Please enter a valid email'});\n }\n\n if (errors.length === 0) {\n if (!data.ai_form.zip_code) {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n } else if (UC.utils.validateZipCode(data.ai_form.zip_code)) {\n this.checkZipCodeValid(data, dfd);\n return; // return here so that lower dfd.resolve() is not called\n } else {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n }\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: \"form-group\" });\n dfd.reject();\n } else {\n dfd.resolve(data);\n }\n },\n\n onZipCodeChanged: function(e) {\n this.$zipCode.closest('.has-error').removeClass('has-error');\n\n $('.new-job-location').addClass('hidden');\n\n if (UC.utils.validateZipCode(this.$zipCode.val())) {\n this.checkZipCodeValid({ ai_form: { zip_code: this.$zipCode.val() } }, new $.Deferred());\n } else {\n UC.utils.showValidationErrors(\n [{element: this.$zipCode, text: 'Please enter a valid zip code.'}],\n {className: 'form-group'}\n );\n }\n },\n\n checkZipCodeValid: function (data, dfd) {\n const path = '{0}{1}'.format(this.routes.validZipCode, data.ai_form.zip_code);\n\n UC.net.get(path, {job_lead_id: UC.constants.jobLeadId}, function(res) {\n $('.new-job-location').text(`${res.zip.CityName}, ${res.zip.StateAbbr}`).removeClass('hidden');\n if (res.suggested_attorneys) {\n $('.row.face-piles').replaceWith(res.suggested_attorneys);\n }\n new GeoLocation().storeUserChoice(data.ai_form.zip_code);\n dfd.resolve(data);\n }).fail(function(res) {\n res.handled = true;\n UC.utils.showValidationErrors(\n [\n {\n element: this.$zipCode,\n text: res.responseJSON ? res.responseJSON.message : 'Failed to validate the Zip Code'\n }\n ], { className: \"form-group\" }\n );\n dfd.reject();\n }.bind(this));\n }\n\n});\n\n","import { createConsumer } from \"@rails/actioncable\"\n\nUC.partials.AiLiveChat = Backbone.View.extend({\n liveChatMessageTemplate: UC.views.resolveHandlebarsTemplate('public/jobs/live_chat_message'),\n\n events: {\n 'click #send-message-button' : 'sendMessageButtonClicked',\n 'keypress #chat-message-input': 'handleEnterPress',\n 'input #chat-message-input': 'autoResizeInputTextArea',\n },\n\n initialize: function() {\n const startMessage = \"I will assist you in crafting your job description to keep our attorneys competitive in bidding on your post. I'll ask some follow-up questions and link you with the best attorneys for your needs.\";\n const startMessage2 = \"Please wait a bit while I process your details and get back to you. Thanks for your patience.\"\n\n const conversationConclusionMessage = \"Great! I am now posting your job to the marketplace where attorneys will start bidding on your post. Thank you for choosing UpCounsel!\"\n\n this.initiateAiMessage = \"Please check the details what I have provided in first_message_job_details hash and ask me follow up questions on description. Also ask me if I have not provided any details and don't ask me for details which I have already provided.\"\n\n this.pajContainer = $('#paj-container');\n this.pajContainer.css({\n 'transition': 'all 0.1s ease',\n 'width': '100%'\n });\n this.pajContainer.addClass('live-chat-container col-lg-12 col-md-12 col-sm-12');\n\n this.headerRow = $('#header-row');\n this.headerRow.css({\n 'position': 'relative'\n });\n\n const $affixPanels = $('.header-row .items');\n const affixAvailable = typeof $affixPanels.affix === 'function';\n if (affixAvailable) {\n const $chatPanel = $('.chat-bot-panel:visible');\n $affixPanels.css('width', $chatPanel.width());\n\n $affixPanels.affix({\n offset: {\n top: $chatPanel.offset().top,\n }\n });\n\n $(window).resize(function() {\n $affixPanels.css('width', $('.chat-bot-panel:visible').width());\n\n if (affixAvailable) {\n $affixPanels.affix('checkPosition');\n }\n\n if (!UC.browser.isMobile() && $('#job-summary-panel:visible').length) {\n this.hideSummaryLinkClicked()\n }\n }.bind(this));\n }\n\n this.appendMessage('typing');\n this.toggleSendMessageControlsAvailability(false);\n\n this.consumer = createConsumer();\n this.connected = false;\n this.jobSummary = null;\n this.jobLocation = null;\n this.chatBotMessagesQueue = [];\n this.firstMessageData = {\n message: startMessage,\n from: 'AI',\n summary: {},\n display_chat_message: true\n };\n this.firstMessageData2 = {\n message: startMessage2,\n from: 'AI',\n summary: {},\n display_chat_message: true\n };\n\n this.conversationConclusionMessageData = {\n message: conversationConclusionMessage,\n from: 'AI',\n summary: {},\n display_chat_message: true\n };\n\n this.chatChannel = this.consumer.subscriptions.create({\n channel: \"JobChannel\",\n lead_id: UC.constants.jobLeadId,\n }, {\n connected: () => {\n console.log(\"Connected to the JobChannel\");\n if (!this.connected) {\n // to avoid greeting messages when re-connected\n this.connected = true;\n this.toggleSendMessageControlsAvailability(false)\n\n // Send first message from AI manually\n this.chatBotMessagesQueue.push(this.firstMessageData);\n this.chatBotMessagesQueue.push(this.firstMessageData2);\n this.popChatBotMessage().then(() => {\n this.appendMessage('typing')\n this.chatChannel.sendMessage(this.initiateAiMessage)\n });\n $('#chat-message-input').focus();\n }\n },\n received: (data) => {\n // Handle received data from AI\n if (data.message && data.display_chat_message) {\n this.chatBotMessagesQueue.push(data);\n this.popChatBotMessage().then(() => {\n if (this.resolveSendMessage) {\n this.resolveSendMessage();\n this.resolveSendMessage = null;\n }\n });\n }\n this.summaryData = data.summary;\n\n if (this.resolveSendMessage) {\n this.resolveSendMessage();\n this.resolveSendMessage = null;\n }\n },\n disconnected: () => {\n // Add call to disconnected when save/next button is clicked and job_lead stage is updated to closed\n // Handle disconnection\n },\n\n sendMessage: function(message) {\n this.perform('receive', { message: message, assistant_type: 'v7', first_message_job_details: UC.constants.aiForm });\n }\n });\n },\n\n onChatBotMessageTyped: function() {\n this.chatBotIsTyping = false;\n if (this.chatBotMessagesQueue.length == 0) {\n this.toggleSendMessageControlsAvailability(true);\n } else {\n this.popChatBotMessage();\n }\n },\n\n popChatBotMessage: function() {\n if (this.chatBotIsTyping || this.chatBotMessagesQueue.length == 0) {\n return Promise.resolve();\n }\n\n this.chatBotIsTyping = true;\n const messageData = this.chatBotMessagesQueue.shift();\n\n return this.appendMessage(messageData.message, messageData.from, true)\n .then(this.onChatBotMessageTyped.bind(this))\n .catch(this.onChatBotMessageTyped.bind(this));\n },\n\n appendMessage: function(message, from='AI', streamingEffect=false) {\n const chatConversation = $('.chat-bot-conversation');\n const lastMessage = chatConversation.find('.row:last-child');\n\n lastMessage.css('padding-bottom', '0');\n\n if (Array.isArray(message)) {\n message = message.join(); // OpenAI can send more than one message as a reply\n }\n if (message.match(/(<([^>]+)>)/i)) {\n streamingEffect = false;\n }\n\n const aiMessage = from.toLowerCase() === 'ai';\n const messageOriginator = aiMessage ? 'recipient' : 'sender'\n const senderName = aiMessage ? 'Rachel' : 'You'\n const imageUrl = aiMessage ? UC.constants.chatBotProfileUrl : UC.constants.userProfileUrl\n\n // remove 'typing' message\n this.$el.find('.typing-dots').closest('.row').remove();\n\n const $message = $(this.liveChatMessageTemplate({\n messageOriginator: messageOriginator,\n senderName: senderName,\n messageText: streamingEffect ? message.charAt(0) : message,\n userImageUrl: imageUrl,\n typingAnimation: message == 'typing'\n }));\n\n return new Promise(function(resolve, reject) {\n try {\n $('.chat-bot-conversation').append($message);\n if (streamingEffect) {\n this.typeTextMessage(message, $message.find('.chat-item-content-message')[0], 1, 0, resolve);\n this.autoResizeInputTextArea();\n } else {\n resolve();\n this.scrollChatToEnd();\n }\n } catch(e) {\n console.warn(e);\n reject();\n }\n }.bind(this));\n },\n\n typeTextMessage: function(message, streamingTextElement, currentIndex, lastHeight, resolve) {\n if (currentIndex >= message.length) {\n resolve(message);\n return;\n }\n\n let idx = message.indexOf(' ', currentIndex);\n if (idx < 0) {\n idx = message.length - 1;\n }\n\n streamingTextElement.textContent += message.substring(currentIndex, idx + 1);\n currentIndex = idx;\n const height = streamingTextElement.getBoundingClientRect().height;\n if (lastHeight == 0 || height > lastHeight) {\n this.scrollChatToEnd();\n }\n lastHeight = height;\n setTimeout(function() {\n this.typeTextMessage(message, streamingTextElement, currentIndex + 1, lastHeight, resolve);\n }.bind(this), 50); // Adjust the typing speed by changing the delay (in milliseconds)\n },\n\n autoResizeInputTextArea: function() {\n const textarea = $('#chat-message-input');\n const chatConversation = $('.chat-bot-conversation');\n const lastMessage = chatConversation.find('.row:last-child');\n\n // To calculate the actual content height\n textarea.css('height', 'auto');\n\n // 196px is the maximum height before scrolling starts\n let newHeight = Math.min(textarea.prop('scrollHeight'), 196);\n\n // Set the new height based on content size or the max height allowed\n textarea.css('height', `${newHeight}px`);\n\n // Calculate and adjust bottom padding based on the new height\n const minHeight = 28 + 10; // single line height + 10 to adjust for padding\n const currentHeightIncrease = newHeight - minHeight;\n const maximumHeightIncrease = 196 - minHeight;\n let marginBottom = 0;\n if (currentHeightIncrease > 0) {\n marginBottom = (currentHeightIncrease / maximumHeightIncrease) * 125; // Scale padding up to 125px\n }\n\n // Apply calculated padding to the last message to ensure spacing\n lastMessage.css('padding-bottom', `${marginBottom}px`);\n\n // Enable scrolling if textarea is more than one line\n if (newHeight >= minHeight) {\n textarea.css('overflow-y', 'auto');\n }\n\n if (newHeight === minHeight) {\n textarea.css('overflow-y', 'hidden');\n }\n\n this.scrollChatToEnd();\n },\n\n toggleSendMessageControlsAvailability: function(available) {\n $('.chat-bot-text-area').find('button').prop('disabled', available ? null : 'disabled')\n },\n\n sendUserMessage: function(message) {\n this.appendMessage(message, 'User');\n this.appendMessage('typing')\n\n return new Promise((resolve, reject) => {\n this.chatChannel.sendMessage(message);\n this.resolveSendMessage = resolve;\n this.rejectSendMessage = reject;\n });\n },\n\n sendMessageButtonClicked: function(e) {\n e.preventDefault();\n const $input = $('#chat-message-input');\n if (!$input.val().length) {\n return;\n }\n this.sendUserMessage($input.val().trim());\n $input.val('');\n this.autoResizeInputTextArea();\n this.scrollChatToEnd();\n this.toggleSendMessageControlsAvailability(false);\n },\n\n handleEnterPress: function(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (!$('#send-message-button').prop('disabled')) {\n this.sendMessageButtonClicked(event);\n this.$('#send-message-button').click();\n }\n }\n },\n\n scrollChatToEnd: function() {\n if (UC.utils.isMobileViewPort()) {\n $('#chat-bot-panel')[0].scrollIntoView({block: \"end\", inline: \"nearest\"});\n } else {\n const chatContainer = $('.chat-bot-conversation');\n chatContainer.stop().animate({\n scrollTop: chatContainer.prop('scrollHeight')\n }, 500);\n }\n },\n\n scrollChatToStart: function() {\n if (UC.utils.isMobileViewPort()) {\n $('.chat-bot-summary')[0].scrollIntoView({block: \"start\", inline: \"nearest\"});\n }\n },\n\n captureThreadConversation: function() {\n var messages = [];\n\n $('.chat-bot-conversation .row').each(function() {\n var role = $(this).hasClass('recipient') ? 'recipient' : 'sender';\n var message = $(this).find('.chat-item-content-message').text().trim();\n messages.push({ role: role, message: message });\n });\n\n return messages;\n },\n\n validate: function(dfd) {\n this.toggleSendMessageControlsAvailability(false);\n\n this.chatBotMessagesQueue.push(this.conversationConclusionMessageData)\n this.popChatBotMessage()\n .then(() => {\n // Wait for 5 seconds before resolving the deferred object\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 5000);\n });\n })\n .then(() => {\n this.toggleSendMessageControlsAvailability(false);\n\n // Resolve the deferred object after capturing the thread conversation\n dfd.resolve({ ai_live_chat: { thread_conversation: this.captureThreadConversation() } });\n })\n .catch(error => {\n this.toggleSendMessageControlsAvailability(true);\n console.error(\"Error while sending conclusion message:\", error);\n });\n },\n});\n","UC.modals.AttorneyJobFeedbackModal = Backbone.View.extend({\n className: 'modal',\n\n el: '#mdlAttorneyFeedback',\n\n events: {\n \"change input[name='feedback_response[AttorneyFeedback]']\" : 'onChangeAttorneyFeedback',\n \"change input[name='report_attorney_feedback[AttorneyFeedback]']\" : 'onChangeReportFeedback',\n 'submit #formAttorneyFeedback' : 'onSubmitAttorneyFeedback'\n },\n\n initialize: function() {\n this.$reportOptionsComments = this.$el.find('#reportOptionsComments');\n this.$feedbackComments = this.$el.find('#feedbackComments');\n this.$reportOptions = this.$el.find('#reportOptions');\n this.$formAttorneyFeedback = this.$el.find('#formAttorneyFeedback');\n this.$reportAttorneyFeedback = this.$el.find(\"#reportAttorneyFeedback\");\n\n return this;\n },\n\n render: function() {\n this.$el.modal();\n\n UC.utils.recordKissEvent('attorney_job_feedback_shown',\n { jobId: UC.job.id, attorneyId: UC.user.id, url: location.href }\n );\n },\n\n onChangeReportFeedback: function(e) {\n UC.utils.hideValidationErrors('js-report-options');\n if (e.target.value === 'other') {\n this.$reportOptionsComments.removeClass('hidden');\n } else {\n this.$reportOptionsComments.addClass('hidden');\n }\n },\n\n onChangeAttorneyFeedback: function(e) {\n if (e.target.value === 'report_job') {\n this.$feedbackComments.addClass('hidden');\n this.$reportOptions.removeClass('hidden');\n } else if (e.target.value === 'other') {\n this.$reportOptions.addClass('hidden');\n this.$feedbackComments.removeClass('hidden');\n } else {\n this.$reportOptions.addClass('hidden');\n this.$feedbackComments.addClass('hidden');\n }\n },\n\n preprocessData: function(data){\n data.referrer = document.referrer;\n if(data.feedback_response){\n if(data.feedback_response.AttorneyFeedback !== 'report_job') {\n delete data.report_attorney_feedback;\n } else if(data.feedback_response.AttorneyFeedback !== 'other'){\n delete data.feedback_response.Comments;\n\n if(data.feedback_response.AttorneyFeedback === 'report_job' && data.report_attorney_feedback.AttorneyFeedback !== 'other'){\n delete data.report_attorney_feedback.Comments;\n }\n }\n }\n\n return data;\n },\n\n validate: function(data){\n var errors = [];\n\n if(data.feedback_response && data.feedback_response.AttorneyFeedback === 'report_job'){\n if(data.report_attorney_feedback && _.isEmpty(data.report_attorney_feedback.AttorneyFeedback)){\n errors.push({element: this.$reportAttorneyFeedback, text: 'Please select a report reason'});\n }\n }\n\n if(errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'js-report-options'});\n return false;\n } else {\n return true;\n }\n },\n\n onSubmitAttorneyFeedback: function(e) {\n e.preventDefault();\n var data = this.$formAttorneyFeedback.serializeJSON();\n data = this.preprocessData(data);\n\n if(this.validate(data)) {\n UC.net.post(this.$formAttorneyFeedback.attr('action'), data, function () {\n this.$el.modal('hide');\n }.bind(this));\n }\n }\n});\n","UC.partials.Created = Backbone.View.extend({\n events: {\n 'click .fancy-tile-container' : 'selectionChanged'\n },\n\n initialize: function(options) {\n this.nextButtonCallback = options.nextButtonCallback;\n this.setElement('#js-createdForm');\n },\n\n selectionChanged: function(e) {\n var $target = $(e.target);\n this.$el.removeClass('has-error');\n this.$el.find('.fancy-tile-container').removeClass('selected');\n $target.closest('.fancy-tile-container').addClass('selected');\n\n this.nextButtonCallback.call();\n },\n\n validate: function(dfd) {\n var data = this.$el.serializeJSON();\n\n dfd.resolve(data);\n }\n});\n","UC.partials.FeesDetails = Backbone.View.extend({\n el: 'body',\n\n events: {\n 'click .jp-fee-details-btn': 'feeDetailsClickHandler',\n 'click .jp-fee-details ul': 'noEventAction',\n 'click .js-estimated-tooltip': 'toggleEstimatedToolTip',\n 'click' : 'hideFeeDetails'\n },\n\n feeDetailsClickHandler: function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $container = $(e.target).parentsUntil('.jp-bid', '.jp-fee-details');\n var isActive = $container.hasClass('active');\n var $proposalDiv;\n var proposalId;\n\n $('.jp-fee-details').removeClass('active');\n\n if (!isActive) {\n $proposalDiv = $(e.target).parents('.jp-single');\n if ($proposalDiv.length > 0) proposalId = $proposalDiv.data('bidId');\n\n var kissData = {\n pageName: UC.constants.pageName,\n userId: UC.user.id,\n proposalId: proposalId,\n location: location.href\n };\n UC.utils.recordKissEvent('fee_detail_dropdown_shown', kissData);\n $container.addClass('active');\n }\n },\n\n toggleEstimatedToolTip: function(e) {\n $('.tooltip-blurb').toggleClass('hidden');\n },\n\n noEventAction: function(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n\n hideFeeDetails: function(e) {\n $('.jp-fee-details').removeClass('active');\n }\n});\n","UC.partials.JobHeader = Backbone.View.extend({\n el: 'body',\n\n events: {\n 'click .decline-proposal-request' : 'onDeclineProposalReqClick',\n 'click .user-job-report' : 'onUserJobReportClick',\n 'click #jobActionsList a' : 'onJobActionListClick'\n },\n\n initialize: function() {\n new UC.partials.JobNavMenu();\n new UC.views.JobManageCog({ el: '.manage-job-cog' });\n if (this.$el.find('.decline-proposal-request').length > 0) {\n this.attorneyJobFeedbackModal = new UC.modals.AttorneyJobFeedbackModal();\n } else if (this.$el.find('.user-job-report').length > 0) {\n this.userJobReportModal = new UC.modals.UserJobReportModal();\n }\n\n this.setActiveTab();\n\n UC.utils.recordKissClickEvent('.ji-bid-btn', 'Attorney job portal - submit proposal / cta');\n UC.utils.recordKissClickEvent('.btnJobActions', 'Job Page: Manage Job Click');\n },\n\n onUserJobReportClick: function(e) {\n e.preventDefault();\n\n if(this.userJobReportModal) {\n this.userJobReportModal.render();\n }\n },\n\n onDeclineProposalReqClick: function(e) {\n e.preventDefault();\n\n if(this.attorneyJobFeedbackModal) {\n this.attorneyJobFeedbackModal.render();\n }\n },\n\n onJobActionListClick: function(e) {\n UC.utils.handleGenericClick(this.$el, 'Job Page: Mangage Item Click');\n },\n\n setActiveTab: function() {\n if (UC.constants.pageName) {\n $('.jn-{0}'.format(UC.constants.pageName)).addClass('active');\n $('.h-nav-{0}'.format(UC.constants.pageName)).addClass('active');\n }\n }\n});\n","UC.partials.JobScheduleCall = Backbone.View.extend({\n el: 'body',\n\n events: {\n 'click .jp-schedule-phone-call' : 'proposalScheduleCallClick',\n 'click .initiate-call' : 'initiateCallClick'\n },\n\n proposalScheduleCallClick: function(e) {\n e.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n new UC.modals.ModalPendingUser().render(\n 'Please confirm your email address before scheduling a call'\n );\n\n return false;\n }\n\n var $this = $(e.currentTarget);\n var attorneyId = $this.data('attorney-id');\n\n new UC.modals.ScheduledCallsNew({ attorney_id: attorneyId }).render();\n },\n\n initiateCallClick: function(e) {\n e.preventDefault();\n\n new UC.views.CallsModalInitiate({\n to: $(e.currentTarget).data('phone'), job_id: UC.constants.jobId\n }).render();\n }\n});\n","import { createConsumer } from \"@rails/actioncable\"\nimport TextLengthCounter from '../../../components/text_length_counter'\nimport { GeoLocation } from '../../../components/geo_location'\n\nconst DURATION_RANGES = {\n ONE_WEEK: 7,\n TWO_WEEKS: 14,\n ONE_MONTH: 30,\n THREE_MONTHS: 90,\n SIX_MONTHS: 180,\n ONE_YEAR: 365,\n MORE_THAN_ONE_YEAR: 999\n};\n\nconst DURATION_DROP_DOWN_VALUES = {\n ONE_WEEK: 1,\n TWO_WEEKS: 2,\n ONE_MONTH: 3,\n THREE_MONTHS: 4,\n SIX_MONTHS: 5,\n ONE_YEAR: 6,\n MORE_THAN_ONE_YEAR: 7\n};\n\nconst DURATION_DISPLAY_TEXT = {\n [DURATION_DROP_DOWN_VALUES.ONE_WEEK]: \"< 1 week\",\n [DURATION_DROP_DOWN_VALUES.TWO_WEEKS]: \"< 2 weeks\",\n [DURATION_DROP_DOWN_VALUES.ONE_MONTH]: \"< 1 month\",\n [DURATION_DROP_DOWN_VALUES.THREE_MONTHS]: \"< 3 months\",\n [DURATION_DROP_DOWN_VALUES.SIX_MONTHS]: \"< 6 months\",\n [DURATION_DROP_DOWN_VALUES.ONE_YEAR]: \"< 1 year\",\n [DURATION_DROP_DOWN_VALUES.MORE_THAN_ONE_YEAR]: \"> 1 year\"\n};\n\nUC.partials.LiveChat = Backbone.View.extend({\n liveChatMessageTemplate: UC.views.resolveHandlebarsTemplate('public/jobs/live_chat_message'),\n\n events: {\n 'click #preview-summary-link' : 'previewSummaryLinkClicked',\n 'click #hide-summary-link' : 'hideSummaryLinkClicked',\n 'click #send-message-button' : 'sendMessageButtonClicked',\n 'keypress #chat-message-input': 'handleEnterPress',\n 'change #job-duration-select': 'onDurationChange',\n 'change #job-zip-code': 'onZipCodeChanged',\n 'input #chat-message-input': 'autoResizeInputTextArea',\n },\n\n routes: {\n validZipCode: '/account/valid_zip_code/'\n },\n\n initialize: function() {\n const startMessage = \"Hi there, I'm Rachel, your legal e-assistant. I will assist you in collecting your job details and getting our most qualified attorneys to help you. Please share a basic description of your legal needs.\";\n\n this.pajContainer = $('#paj-container');\n this.pajContainer.css({\n 'transition': 'all 0.1s ease',\n 'width': '100%'\n });\n this.pajContainer.addClass('live-chat-container col-lg-12 col-md-12 col-sm-12');\n\n this.headerRow = $('#header-row');\n this.headerRow.css({\n 'position': 'relative'\n });\n\n const $affixPanels = $('.header-row .items');\n const affixAvailable = typeof $affixPanels.affix === 'function';\n if (affixAvailable) {\n const $chatPanel = $('.chat-bot-panel:visible');\n $affixPanels.css('width', $chatPanel.width());\n\n $affixPanels.affix({\n offset: {\n top: $chatPanel.offset().top,\n }\n });\n\n $(window).resize(function() {\n $affixPanels.css('width', $('.chat-bot-panel:visible').width());\n\n if (affixAvailable) {\n $affixPanels.affix('checkPosition');\n }\n\n if (!UC.browser.isMobile() && $('#job-summary-panel:visible').length) {\n this.hideSummaryLinkClicked()\n }\n }.bind(this));\n }\n\n this.appendMessage('typing');\n this.toggleSendMessageControlsAvailability(false);\n\n this.consumer = createConsumer();\n this.connected = false;\n this.jobSummary = null;\n this.jobLocation = null;\n this.chatBotMessagesQueue = [];\n this.firstMessageData = {\n message: startMessage,\n from: 'AI',\n summary: {},\n display_chat_message: true\n };\n\n this.durationRanges = DURATION_RANGES;\n this.durationDropDownValues = DURATION_DROP_DOWN_VALUES;\n this.durationDisplayText = DURATION_DISPLAY_TEXT;\n\n this.chatChannel = this.consumer.subscriptions.create({\n channel: \"JobChannel\",\n lead_id: UC.constants.jobLeadId,\n }, {\n connected: () => {\n console.log(\"Connected to the JobChannel\");\n if (!this.connected) {\n // to avoid greeting messages when re-connected\n this.connected = true;\n\n // Send first message from AI manually\n this.chatBotMessagesQueue.push(this.firstMessageData);\n this.popChatBotMessage();\n $('#chat-message-input').focus();\n }\n },\n received: (data) => {\n // Handle received data from AI\n if (data.message && data.display_chat_message) {\n this.chatBotMessagesQueue.push(data);\n this.popChatBotMessage();\n }\n if (data.summary && !data.display_chat_message) {\n this.updateSidebar(data.summary);\n }\n },\n disconnected: () => {\n // Add call to disconnected when save/next button is clicked and job_lead stage is updated to closed\n // Handle disconnection\n },\n\n sendMessage: function(message) {\n this.perform('receive', { message: message, assistant_type: 'v6' });\n }\n });\n\n this.updateQualityScore(0);\n\n this.descriptionLengthCounter = new TextLengthCounter({\n el: this.$el,\n errorContainer: '.form-group',\n textarea: '#job-description',\n counter: '.js-description-length'\n })\n\n this.$zipCode = $('#job-zip-code');\n\n // To show the summary from the intiialization point onwards\n this.showSummary();\n },\n\n onChatBotMessageTyped: function() {\n this.chatBotIsTyping = false;\n if (this.chatBotMessagesQueue.length == 0) {\n this.toggleSendMessageControlsAvailability(true);\n } else {\n this.popChatBotMessage();\n }\n },\n\n popChatBotMessage: function() {\n if (this.chatBotIsTyping || this.chatBotMessagesQueue.length == 0) {\n return;\n }\n this.chatBotIsTyping = true;\n const messageData = this.chatBotMessagesQueue.shift();\n this.appendMessage(messageData.message, messageData.from, true)\n .then(this.onChatBotMessageTyped.bind(this))\n .catch(this.onChatBotMessageTyped.bind(this));\n },\n\n appendMessage: function(message, from='AI', streamingEffect=false) {\n const chatConversation = $('.chat-bot-conversation');\n const lastMessage = chatConversation.find('.row:last-child');\n\n lastMessage.css('padding-bottom', '0');\n\n if (Array.isArray(message)) {\n message = message.join(); // OpenAI can send more than one message as a reply\n }\n if (message.match(/(<([^>]+)>)/i)) {\n streamingEffect = false;\n }\n\n const aiMessage = from.toLowerCase() === 'ai';\n const messageOriginator = aiMessage ? 'recipient' : 'sender'\n const senderName = aiMessage ? 'Rachel' : 'You'\n const imageUrl = aiMessage ? UC.constants.chatBotProfileUrl : UC.constants.userProfileUrl\n\n // remove 'typing' message\n this.$el.find('.typing-dots').closest('.row').remove();\n\n const $message = $(this.liveChatMessageTemplate({\n messageOriginator: messageOriginator,\n senderName: senderName,\n messageText: streamingEffect ? message.charAt(0) : message,\n userImageUrl: imageUrl,\n typingAnimation: message == 'typing'\n }));\n\n return new Promise(function(resolve, reject) {\n try {\n $('.chat-bot-conversation').append($message);\n if (streamingEffect) {\n this.typeTextMessage(message, $message.find('.chat-item-content-message')[0], 1, 0, resolve);\n this.autoResizeInputTextArea();\n } else {\n resolve();\n this.scrollChatToEnd();\n }\n } catch(e) {\n console.warn(e);\n reject();\n }\n }.bind(this));\n },\n\n typeTextMessage: function(message, streamingTextElement, currentIndex, lastHeight, resolve) {\n if (currentIndex >= message.length) {\n resolve(message);\n return;\n }\n\n let idx = message.indexOf(' ', currentIndex);\n if (idx < 0) {\n idx = message.length - 1;\n }\n\n streamingTextElement.textContent += message.substring(currentIndex, idx + 1);\n currentIndex = idx;\n const height = streamingTextElement.getBoundingClientRect().height;\n if (lastHeight == 0 || height > lastHeight) {\n this.scrollChatToEnd();\n }\n lastHeight = height;\n setTimeout(function() {\n this.typeTextMessage(message, streamingTextElement, currentIndex + 1, lastHeight, resolve);\n }.bind(this), 50); // Adjust the typing speed by changing the delay (in milliseconds)\n },\n\n autoResizeInputTextArea: function() {\n const textarea = $('#chat-message-input');\n const chatConversation = $('.chat-bot-conversation');\n const lastMessage = chatConversation.find('.row:last-child');\n\n // To calculate the actual content height\n textarea.css('height', 'auto');\n\n // 196px is the maximum height before scrolling starts\n let newHeight = Math.min(textarea.prop('scrollHeight'), 196);\n\n // Set the new height based on content size or the max height allowed\n textarea.css('height', `${newHeight}px`);\n\n // Calculate and adjust bottom padding based on the new height\n const minHeight = 28 + 10; // single line height + 10 to adjust for padding\n const currentHeightIncrease = newHeight - minHeight;\n const maximumHeightIncrease = 196 - minHeight;\n let marginBottom = 0;\n if (currentHeightIncrease > 0) {\n marginBottom = (currentHeightIncrease / maximumHeightIncrease) * 125; // Scale padding up to 125px\n }\n\n // Apply calculated padding to the last message to ensure spacing\n lastMessage.css('padding-bottom', `${marginBottom}px`);\n\n // Enable scrolling if textarea is more than one line\n if (newHeight >= minHeight) {\n textarea.css('overflow-y', 'auto');\n }\n\n if (newHeight === minHeight) {\n textarea.css('overflow-y', 'hidden');\n }\n\n this.scrollChatToEnd();\n },\n\n toggleSendMessageControlsAvailability: function(available) {\n $('.chat-bot-text-area').find('button').prop('disabled', available ? null : 'disabled')\n },\n\n sendUserMessage: function(message) {\n this.appendMessage(message, 'User');\n this.appendMessage('typing')\n this.chatChannel.sendMessage(message);\n },\n\n sendMessageButtonClicked: function(e) {\n e.preventDefault();\n const $input = $('#chat-message-input');\n if (!$input.val().length) {\n return;\n }\n this.sendUserMessage($input.val().trim());\n $input.val('');\n this.autoResizeInputTextArea();\n this.scrollChatToEnd();\n this.toggleSendMessageControlsAvailability(false);\n },\n\n handleEnterPress: function(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (!$('#send-message-button').prop('disabled')) {\n this.sendMessageButtonClicked(event);\n this.$('#send-message-button').click();\n }\n }\n },\n\n valueDefined: function(value) {\n return value &&\n value.toLowerCase() !== \"unspecified\" &&\n value.toLowerCase() !== \"undefined\" &&\n value.toLowerCase() !== \"unprovided\" &&\n value.length > 0;\n },\n\n daysToDurationDropDownValue: function(days) {\n days = parseInt(days, 10);\n if (days < this.durationRanges.ONE_WEEK) return this.durationDropDownValues.ONE_WEEK;\n if (days < this.durationRanges.TWO_WEEKS) return this.durationDropDownValues.TWO_WEEKS;\n if (days < this.durationRanges.ONE_MONTH) return this.durationDropDownValues.ONE_MONTH;\n if (days < this.durationRanges.THREE_MONTHS) return this.durationDropDownValues.THREE_MONTHS;\n if (days < this.durationRanges.SIX_MONTHS) return this.durationDropDownValues.SIX_MONTHS;\n if (days < this.durationRanges.ONE_YEAR) return this.durationDropDownValues.ONE_YEAR;\n return this.durationDropDownValues.MORE_THAN_ONE_YEAR;\n},\n\n onDurationChange: function(event) {\n var value = $(event.currentTarget).val();\n var displayText = this.durationDisplayText[value];\n\n if (this.jobSummary) {\n this.jobSummary.timeline_text = displayText;\n }\n },\n\n updateSidebar: function(summary) {\n this.jobSummary = summary;\n\n if (summary.score) {\n this.updateQualityScore(summary.score);\n }\n\n if (summary.progress) {\n $('#job-progress').css('width', summary.progress + '%');\n $('#job-progress-value').html(summary.progress + '%');\n }\n\n if (summary.progress > 40 && summary.progress < 59) {\n $('#job-progress-label').html('Few more details needed')\n } else if (summary.progress > 59 && summary.progress < 65) {\n $('#job-progress-label').html('Halfway there')\n } else if (summary.progress > 66 && summary.progress < 89) {\n $('#job-progress-label').html('Nearly there')\n } else if (summary.progress > 92) {\n $('#job-progress-label').html('Preview & Post a Job')\n }\n\n if (this.valueDefined(summary.zip_code) && this.jobLocation != summary.zip_code) {\n this.jobLocation = summary.zip_code;\n const validationPath = '{0}{1}'.format(this.routes.validZipCode, summary.zip_code);\n const validationParams = {job_lead_id: UC.constants.jobLeadId};\n if (this.valueDefined(summary.legal_subject)) {\n validationParams.legal_subject = summary.legal_subject;\n }\n\n UC.net.get(validationPath, validationParams, function(res) {\n this.$zipCode.val(summary.zip_code).parent().removeClass('hidden');\n\n $('#job-location').text(`${res.zip.CityName}, ${res.zip.StateAbbr}`).removeClass('hidden');\n this.$zipCode.closest('.has-error').removeClass('has-error');\n if (res.suggested_attorneys) {\n $('.row.face-piles').replaceWith(res.suggested_attorneys);\n }\n }.bind(this)).fail(function(res) {\n res.handled = true;\n this.$zipCode.val(summary.zip_code).parent().removeClass('hidden');\n UC.utils.showValidationErrors(\n [\n {\n element: this.$zipCode,\n text: res.responseJSON ? res.responseJSON.message : 'Failed to validate the Zip Code'\n }\n ], { className: \"form-group\" }\n );\n }.bind(this));\n }\n\n if (this.valueDefined(summary.title)) {\n $('#job-title').html(summary.title);\n } else if (this.valueDefined(summary.legal_subject)) {\n $('#job-title').html(summary.legal_subject);\n }\n if (this.valueDefined(summary.description)) {\n $('#job-description').html(summary.description);\n $('#job-description').val(summary.description);\n this.descriptionLengthCounter.update();\n this.activateChatBotSummary();\n }\n\n if (this.valueDefined(summary.timeline) && parseInt(summary.timeline) > 0) {\n const timelineValue = this.daysToDurationDropDownValue(parseInt(summary.timeline));\n $('#job-duration-select').val(timelineValue).parent().removeClass('hidden');\n\n this.onDurationChange({currentTarget: $('#job-duration-select')});\n }\n\n if (this.valueDefined(summary.legal_area)) {\n $('#job-legal-area').html(summary.legal_area).removeClass('hidden');\n }\n if (this.valueDefined(summary.legal_subject)) {\n $('#job-legal-subject').html(summary.legal_subject).removeClass('hidden');\n }\n if (this.jobSummaryAvailable()) {\n this.showSummary();\n }\n },\n\n jobSummaryAvailable: function() {\n return this.jobSummary != null &&\n this.valueDefined(this.jobSummary.description) &&\n this.valueDefined(this.jobSummary.title) &&\n this.valueDefined(this.jobSummary.zip_code);\n },\n\n previewSummaryLinkClicked: function(e) {\n e.preventDefault();\n\n $('#job-summary-panel').removeClass('hidden-xs hidden-sm');\n $('#chat-bot-panel').addClass('hidden');\n\n this.scrollChatToEnd();\n },\n\n hideSummaryLinkClicked: function(e) {\n if (e) {\n e.preventDefault();\n }\n\n $('#job-summary-panel').addClass('hidden-xs hidden-sm');\n $('#chat-bot-panel').removeClass('hidden');\n\n this.scrollChatToEnd();\n this.autoResizeInputTextArea();\n },\n\n activateChatBotSummary: function() {\n $('#summary-button-group').addClass('active');\n $('#nextButton').removeClass('btn-default').addClass('btn-success');\n },\n\n scrollChatToEnd: function() {\n if (UC.utils.isMobileViewPort()) {\n $('#chat-bot-panel')[0].scrollIntoView({block: \"end\", inline: \"nearest\"});\n } else {\n const chatContainer = $('.chat-bot-conversation');\n chatContainer.stop().animate({\n scrollTop: chatContainer.prop('scrollHeight')\n }, 500);\n }\n },\n\n scrollChatToStart: function() {\n if (UC.utils.isMobileViewPort()) {\n $('.chat-bot-summary')[0].scrollIntoView({block: \"start\", inline: \"nearest\"});\n }\n },\n\n showSummary: function() {\n $('#chat-bot-panel').removeClass('col-md-offset-2 col-lg-offset-2', 500, function() {\n $('#job-summary-panel').removeClass('hidden');\n $('#preview-summary-link').parent().removeClass('hidden');\n });\n },\n\n updateQualityScore: function(score) {\n const $svg = $('.chat-bot-summary svg');\n $svg.find('#star_1').attr('fill', `url(#${this.updateSingleQualityScoreStar(1, score)})`);\n $svg.find('#star_2').attr('fill', `url(#${this.updateSingleQualityScoreStar(2, score)})`);\n $svg.find('#star_3').attr('fill', `url(#${this.updateSingleQualityScoreStar(3, score)})`);\n $svg.find('#star_4').attr('fill', `url(#${this.updateSingleQualityScoreStar(4, score)})`);\n $svg.find('#star_5').attr('fill', `url(#${this.updateSingleQualityScoreStar(5, score)})`);\n },\n\n updateSingleQualityScoreStar: function(segment, scoreValue) {\n if (scoreValue % 1 >= 0.75) {\n scoreValue = Math.round(scoreValue);\n }\n if (scoreValue >= segment - 0.5) {\n return (scoreValue >= segment) ? 'full' : 'half'\n }\n return 'empty';\n },\n\n captureThreadConversation: function() {\n var messages = [];\n\n $('.chat-bot-conversation .row').each(function() {\n var role = $(this).hasClass('recipient') ? 'recipient' : 'sender';\n var message = $(this).find('.chat-item-content-message').text().trim();\n messages.push({ role: role, message: message });\n });\n\n return messages;\n },\n\n validate: function(dfd) {\n this.$el.find('.has-error').removeClass('has-error');\n\n var errors = [];\n\n const data = {\n live_chat: {\n zip_code: this.$zipCode.val(),\n description: $('#job-description').val(),\n timeline: $('#job-duration-select option:selected').text(),\n thread_conversation: this.captureThreadConversation(),\n }\n }\n\n if (!this.descriptionLengthCounter.hasValidTextLength()) {\n errors.push(this.descriptionLengthCounter.getError());\n }\n\n if (errors.length === 0) {\n if (!data.live_chat.zip_code || data.live_chat.zip_code.length === 0) {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n } else if (UC.utils.validateZipCode(data.live_chat.zip_code)) {\n this.checkZipCodeValid(data, dfd);\n return;\n } else {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n }\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: \"form-group\" });\n dfd.reject();\n } else {\n if (this.jobSummary) {\n this.jobSummary.timeline = data.live_chat.timeline;\n this.jobSummary.zip_code = data.live_chat.zip_code;\n this.jobSummary.description = data.live_chat.description;\n this.jobSummary.thread_conversation = data.live_chat.thread_conversation;\n }\n\n dfd.resolve({ live_chat: this.jobSummary });\n }\n },\n\n onZipCodeChanged: function(e) {\n let errors = [];\n\n this.$zipCode.closest('.has-error').removeClass('has-error');\n\n $('#job-location').addClass('hidden');\n\n if (UC.utils.validateZipCode(this.$zipCode.val())) {\n this.checkZipCodeValid({ live_chat: { zip_code: this.$zipCode.val() } }, new $.Deferred());\n } else {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n }\n },\n\n checkZipCodeValid: function (data, dfd) {\n const path = '{0}{1}'.format(this.routes.validZipCode, data.live_chat.zip_code);\n\n UC.net.get(path, {job_lead_id: UC.constants.jobLeadId}, function(res) {\n $('#job-location').text(`${res.zip.CityName}, ${res.zip.StateAbbr}`).removeClass('hidden');\n if (res.suggested_attorneys) {\n $('.row.face-piles').replaceWith(res.suggested_attorneys);\n }\n new GeoLocation().storeUserChoice(data.live_chat.zip_code);\n dfd.resolve(data);\n }).fail(function(res) {\n res.handled = true;\n UC.utils.showValidationErrors(\n [\n {\n element: this.$zipCode,\n text: res.responseJSON ? res.responseJSON.message : 'Failed to validate the Zip Code'\n }\n ], { className: \"form-group\" }\n );\n dfd.reject();\n }.bind(this));\n },\n});\n","import { GeoLocation } from '../../../components/geo_location'\nimport { GeoLocationPajWidjet } from '../../../components/geo_location_paj_widget'\n\nUC.partials.LocationSearch = Backbone.View.extend({\n\n events: {\n 'click #toggleZipCodePanel': 'toggleZipCodePanel',\n 'click #toggleInternationalPanel': 'toggleInternationalPanel',\n },\n\n elements: {\n 'internationalPanel' : null,\n 'zipCodePanel' : null,\n 'selectCountry' : null,\n 'cityField' : null,\n 'zipCodeField' : null,\n 'locationType' : null,\n 'newJobLocationRow' : null\n },\n\n routes: {\n validZipCode: '/account/valid_zip_code/'\n },\n\n initialize: function(options) {\n UC.utils.setSelectors(this.elements);\n this.jobLeadId = options.jobLeadId;\n\n this.renderPanel();\n },\n\n renderPanel: function() {\n if (this.elements.zipCodePanel.is(':visible')) {\n this.showZipCodePanel();\n\n if (this.$('.js-geo-location').length && this.$('#zipCodeField').val() === \"\") {\n new GeoLocationPajWidjet({\n el: this.$('.js-geo-location'),\n input: this.$('#zipCodeField'),\n triggeredLink: $('#nextButton')\n });\n }\n } else {\n this.showInternationalPanel();\n }\n },\n\n toggleZipCodePanel: function(e) {\n e.preventDefault();\n this.showZipCodePanel();\n\n UC.utils.recordPajEvent({\n eventName: 'us-address-shown',\n stageName: 'new_job',\n jobLeadId: this.jobLeadId\n });\n },\n\n showZipCodePanel: function () {\n UC.utils.hidePanel(this.elements.internationalPanel);\n UC.utils.showPanel(this.elements.zipCodePanel);\n this.elements.internationalPanel.find('input, select').prop('disabled', true);\n this.elements.zipCodePanel.find('input, select').prop('disabled', false);\n this.elements.locationType.val('zip');\n },\n\n toggleInternationalPanel: function(e) {\n e.preventDefault();\n this.showInternationalPanel();\n\n UC.utils.recordPajEvent({\n eventName: 'international-address-shown',\n stageName: 'new_job',\n jobLeadId: this.jobLeadId\n });\n },\n\n showInternationalPanel: function() {\n UC.utils.hidePanel(this.elements.zipCodePanel);\n UC.utils.showPanel(this.elements.internationalPanel);\n this.elements.internationalPanel.find('input, select').prop('disabled', false);\n this.elements.zipCodePanel.find('input, select').prop('disabled', true);\n this.elements.selectCountry.select2({width: '100%'});\n this.elements.locationType.val('international');\n },\n\n validate: function(dfd) {\n this.$el.find('.has-error').removeClass('has-error');\n\n var errors = [];\n var data = this.$el.serializeJSON();\n\n if (this.elements.locationType.val() === 'international') {\n\n if (!data.location.City) {\n errors.push({element: this.elements.cityField, text: 'Please enter a city.'});\n }\n\n if (!data.location.CountryCode || data.location.CountryCode === '##') {\n errors.push({element: this.elements.selectCountry, text: 'Please enter a country.'});\n }\n\n } else {\n\n if (!data.location.ZipCode) {\n UC.utils.hidePanel(this.elements.newJobLocationRow, {transition: 'fade'});\n errors.push({element: this.elements.zipCodeField, text: 'Please enter a valid zip code.'});\n } else if (UC.utils.validateZipCode(data.location.ZipCode)) {\n this.checkZipCodeValid(data, dfd);\n return; // return here so that lower dfd.resolve() is not called\n } else {\n UC.utils.hidePanel(this.elements.newJobLocationRow, {transition: 'fade'});\n errors.push({element: this.elements.zipCodeField, text: 'Please enter a valid zip code.'});\n }\n\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n dfd.reject();\n } else {\n dfd.resolve(data);\n }\n },\n\n checkZipCodeValid: function (data, dfd) {\n var path = '{0}{1}'.format(this.routes.validZipCode, data.location.ZipCode);\n\n UC.net.get(path, {}, function() {\n new GeoLocation().storeUserChoice(data.location.ZipCode);\n dfd.resolve(data);\n }).fail(function(res) {\n res.handled = true;\n UC.utils.hidePanel(this.elements.newJobLocationRow, {transition: 'fade'});\n UC.utils.showValidationErrors(\n [\n {\n element: this.elements.zipCodeField,\n text: res.responseJSON ? res.responseJSON.message : 'Failed to validate the Zip Code'\n }\n ]\n );\n dfd.reject();\n }.bind(this));\n }\n\n});\n","!function() {\n\n UC.partials.JobsModalJobIntro = Backbone.View.extend({\n\n events: {\n 'click #job-intro-done': 'done',\n 'hidden.bs.modal': 'hidden'\n },\n\n initialize: function() {\n UC.utils.recordKissEvent('Show Modal: #modalJobIntro', {\n title: this.$('.modal-title').text()\n });\n\n return this;\n },\n\n render: function() {\n this.$el.modal();\n },\n\n done: function() {\n UC.utils.recordKissEvent('Done Clicked: #modalJobIntro', {\n title: this.$('.modal-title').text()\n });\n },\n\n hidden: function() {\n UC.utils.recordKissEvent('Hide Modal: #modalJobIntro', {\n title: this.$('.modal-title').text()\n });\n }\n });\n\n}();\n","UC.modals.ModalNewInvoice = Backbone.View.extend({\n className: 'modal',\n\n el: 'body',\n\n events: {\n 'click #modalNewInvoice a' : 'clickInvoiceModalAction'\n },\n\n render: function() {\n this.$('#modalNewInvoice').modal('show');\n\n this.$chk = this.$('#chkDontShowAgain');\n this.$chk.fancyCheck({label: this.$chk.attr('label')});\n },\n\n clickInvoiceModalAction: function(e) {\n e.preventDefault();\n\n var targetUrl = $(e.target).attr('href');\n\n if (this.$chk.hasClass('checked')) {\n var invoice_id = this.$chk.data('invoice-id');\n var path = '/invoices/{0}/update_new_notification'.format(invoice_id);\n\n UC.net.post(\n path,\n { HideNewNotification: true },\n function() {\n this.hideModal(targetUrl);\n }.bind(this)\n )\n } else{\n this.hideModal(targetUrl);\n }\n },\n\n hideModal: function(targetUrl) {\n this.$('#modalNewInvoice').modal('hide');\n\n if (targetUrl && targetUrl !== '#') {\n location.href = targetUrl;\n }\n }\n});\n","UC.modals.ModalPendingUser = Backbone.View.extend({\n el: '#modalPendingUser',\n\n render: function(message) {\n if (message) this.$el.find('h4.modal-title').text(message);\n\n this.$el.modal();\n }\n});\n","!function() {\n\n UC.partials.JobsModalRequestInvite = Backbone.View.extend({\n\n className: 'modal',\n\n template: UC.views.resolveHandlebarsTemplate('public/jobs/modal_request_invite'),\n\n events: {\n 'submit form': 'inviteAttorney',\n 'hidden.bs.modal': 'remove'\n },\n\n routes: {\n invite_job_bids: '/jobs/{0}/proposals/invite'\n },\n\n initialize: function(options) {\n options = options || {};\n\n this.attorney_id = options.attorney_id;\n this.attorney_first_name = options.attorney_first_name;\n this.callback = options.callback;\n },\n\n render: function() {\n\n this.$el.html(this.template({\n attorney_first_name: this.attorney_first_name,\n client_full_name: UC.user.name,\n job_title: UC.job.jobTitle\n })).modal();\n\n this.loader = this.$('#send_invite').buttonLoader();\n\n return this;\n },\n\n inviteAttorney: function(e) {\n e.preventDefault();\n\n var data = {\n attorney_id: this.attorney_id,\n message: this.$('#invite_message').val()\n };\n\n this.loader.showLoader();\n\n UC.net.post(this.routes.invite_job_bids.format(UC.job.id), data).done(function() {\n this.$el.modal('hide');\n\n if (typeof this.callback === 'function') {\n this.callback(data);\n }\n }.bind(this)).fail(function() {\n this.loader.hideLoader();\n }.bind(this));\n }\n });\n}();\n","UC.partials.OverviewForPaidConsultation = Backbone.View.extend({\n events: {\n 'click .js-schedule': 'showPaymentOptionsOrSchedule',\n 'click #js-consultation-add-credit-card': 'showCreditCardForm',\n 'click #js-cancel-add-credit': 'cancelAddCreditCard',\n 'click #js-show-schedule-call': 'showScheduleCall',\n 'click #js-exit-schedule-call': 'exitScheduleCall',\n 'click #js-schedule-call': 'scheduleCall'\n },\n\n initialize: function() {\n var data = $('#js-schedule-call-panel').data();\n this.isCallScheduled = data.scheduled;\n this.isCallPending = data.pending;\n this.callTime = moment(data.callTime, 'MM/DD/YY h:mma z');\n this.hasPaymentMethod = data.payment;\n this.attorneyId = data.attorneyId;\n this.bidId = data.bidId;\n this.isHired = data.hired;\n this.$getStartedButtonLoader = $('.js-schedule').buttonLoader();\n\n UC.utils.initRatingDimensions('.js-attorney-rating');\n\n new UC.components.PaymentInfo({\n el: $('body'),\n showDefaultButtonLoader: true,\n bankAccountSuccessCallback: function() {\n this.hasPaymentMethod = true;\n this.hireAttorney();\n }.bind(this)\n });\n\n if(this.$el.find('.js-schedule-call-instant').length > 0) {\n this.scheduleCallForm = new UC.partials.ScheduledCallsFormReply({\n isModal: false,\n instant: true,\n submitButton: $('#js-schedule-call'),\n attorneyId: this.attorneyId,\n jobId: UC.constants.jobId,\n removeAlternativeTimeOptions: true,\n onReply: function (result) {\n // if call scheduled vs call requested\n if (result.data) {\n $('#js-scheduled_call-date-time').text(result.data.scheduled_dt_fancy);\n\n this.isCallScheduled = true;\n\n this.showCallConfirmation();\n } else {\n this.showCallRequestedConfirmation();\n }\n\n this.scrollTo();\n }.bind(this),\n });\n } else {\n new UC.partials.ScheduledCallsFormRequest({\n el: this.$el,\n onRequest: this.onNonInstantCallSchedule.bind(this),\n jobId: UC.constants.jobId\n });\n }\n\n this.initialView();\n },\n\n onNonInstantCallSchedule: function(_result) {\n this.$(\"#js-submit-step\").toggleClass(\"hidden\");\n this.$(\"#js-availability-step\").toggleClass(\"hidden\");\n this.showCallRequestedConfirmation();\n this.scrollTo();\n },\n\n scrollTo: function() {\n var currentScreenPosition = $(document).scrollTop();\n\n var scrollTo = $('.js-PaidConsultationOverview').offset().top;\n\n if (currentScreenPosition > scrollTo) {\n $('html, body').animate({ scrollTop: scrollTo }, 500);\n }\n },\n\n initialView: function() {\n if (this.isCallScheduled) {\n var now = moment();\n\n if (now.isAfter(this.callTime)) {\n this.showAfterCallStep();\n } else {\n this.showCallConfirmation();\n }\n } else {\n if(this.isCallPending) {\n this.showCallRequestedConfirmation();\n } else {\n this.showIntro();\n }\n }\n },\n\n showIntro: function() {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-consultation-intro-container').removeClass('hidden');\n },\n\n exitScheduleCall: function() {\n this.initialView();\n this.scrollTo();\n },\n\n showPaymentOptionsOrSchedule: function() {\n if(this.hasPaymentMethod) {\n if (this.isHired) {\n this.showScheduleCall();\n } else {\n this.hireAttorney(this.$getStartedButtonLoader);\n }\n } else {\n this.showPaymentOptions();\n }\n },\n\n hireAttorney: function(buttonLoader) {\n var options = {};\n if (buttonLoader) {\n buttonLoader.showLoader();\n options = { loaders: [buttonLoader] }\n }\n\n UC.net.post('/jobs/{0}/proposals/{1}/accept'.format(UC.constants.jobId, this.bidId), { remove_success_flash: true }, null, options)\n .done(function() {\n this.isHired = true;\n this.showScheduleCall();\n }.bind(this));\n },\n\n showPaymentOptions: function() {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-consultation-add-payment-container').removeClass('hidden');\n this.scrollTo();\n\n UC.utils.sendNesEvent('start_opportunity_to_pay', {\n attorney_id: this.attorneyId\n });\n },\n\n showCreditCardForm: function() {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-consultation-credit-card-container').removeClass('hidden');\n $('#js-consultation-credit-card-container').find('select').select2({ width: '100%' });\n $('.fancy-check').fancyCheck();\n\n this.scrollTo();\n\n new UC.views.AccountNewCreditCard({\n el: '#js-consultation-credit-card-container',\n saveCreditCardSuccessCallback: function() {\n this.hasPaymentMethod = true;\n this.hireAttorney();\n }.bind(this)\n });\n },\n\n cancelAddCreditCard: function() {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-consultation-add-payment-container').removeClass('hidden');\n\n this.scrollTo();\n },\n\n showScheduleCall: function(e) {\n if (e) e.preventDefault();\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-schedule-call-container').removeClass('hidden');\n\n this.scrollTo();\n },\n\n scheduleCall: function(e) {\n this.scheduleCallForm.reply(e);\n },\n\n showCallConfirmation: function() {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-call-confirmation-container').removeClass('hidden');\n },\n\n showCallRequestedConfirmation: function() {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-call-requested-confirmation-container').removeClass('hidden');\n },\n\n showAfterCallStep: function () {\n $('.js-schedule-call-flow-container').addClass('hidden');\n $('#js-about-attorney').addClass('hidden');\n\n $('#js-after-call-container').removeClass('hidden');\n $('#js-after-call-questions').removeClass('hidden');\n }\n});\n","UC.partials.PackageSelection = Backbone.View.extend({\n\n events: {\n 'click .js-selectOptionBtn' : 'handleSelectOption',\n },\n\n initialize: function(options) {\n UC.utils.initRatingDimensions('.js-reviews');\n\n this.nextButtonCallback = options.nextButtonCallback;\n\n this.stylePanel();\n },\n\n stylePanel: function() {\n var $panel = this.$el.find('#panelCustomProposalsDescription, .js-panel-description');\n\n $panel.find('ul').addClass('list');\n $panel.find('li').\n prepend('').\n not(':last').addClass('marg-b-10');\n },\n\n validate: function(dfd) {\n var data = this.$el.serializeJSON();\n\n if (this.selectOptionData) {\n $.extend(data, this.selectOptionData);\n } else if(isDeclinedPackage(data.package_selection)) {\n $.extend(data.package_selection, { decline: true })\n }\n\n dfd.resolve(data);\n\n function isDeclinedPackage(package_selection_data) {\n return(\n Object.keys(package_selection_data).some(function(key){\n return package_selection_data[key] === 'decline';\n })\n );\n }\n },\n\n handleSelectOption: function(e) {\n e.preventDefault();\n\n var data = $(e.target).data();\n\n if ($.isEmptyObject(data)) {\n this.selectOptionData = { \"package_selection\" : \"\" };\n } else {\n this.selectOptionData = data;\n }\n\n this.nextButtonCallback.call();\n }\n});\n","UC.partials.PageNameProposal = Backbone.View.extend({\n events: {\n 'click .reopen-job-button' : 'onBtnReopenClick'\n },\n\n initialize: function() {\n $('[data-toggle=\"tooltip\"]').tooltip();\n $('.page.content').confirmUnload();\n\n if ($('#showFaqs').length) {\n UC.utils.recordKissClickEvent('#showFaqs', 'Job page click faqs link');\n }\n\n this.checkBankAccountStatus();\n UC.utils.initRatingDimensions();\n },\n\n onBtnReopenClick: function(e) {\n e.preventDefault();\n\n var $reopenButton = $(e.currentTarget)\n var url = $reopenButton.attr('href')\n var $buttonLoader = $reopenButton.buttonLoader();\n var requestAdditionalProposals = $reopenButton.data('requestAdditionalProposals');\n\n $buttonLoader.showLoader();\n\n UC.net.post(\n url,\n { currentPage: UC.constants.pageName, requestAdditionalProposals: requestAdditionalProposals },\n function(err, res) {\n if (err) {\n $buttonLoader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n }\n );\n },\n\n checkBankAccountStatus: function() {\n if (!UC.user.is_admin) {\n if (!UC.constants.hasPayout) {\n $('#modalNoBankAccount').modal({ keyboard: false, backdrop: 'static' });\n }\n else if (UC.constants.unverifiedAccount){\n $('#modalUnverifiedAccount').modal({ keyboard: false, backdrop: 'static' });\n }\n }\n }\n});\n","import TextLengthCounter from '../../../components/text_length_counter'\n\nUC.partials.PAJQuestion = Backbone.View.extend({\n\n events: {\n 'change input, select' : 'selectionChanged',\n 'click .fancy-tile-container' : 'selectionChanged',\n 'submit' : 'submitHandler'\n },\n\n initialize: function(options) {\n this.submitOnChange = this.$el.data('submit-on-change');\n this.nextButtonCallback = options.nextButtonCallback;\n this.required = this.$el.data('required');\n this.type = this.$el.data('type');\n this.questionId = this.$el.data('id');\n this.validationType = this.$el.data('validation-type');\n this.$el.find('select').select2({placeholder: 'Select...'});\n this.questionAnsweredClass = \"js-question-answered\";\n\n var baseSelector = \".job-question[data-type='{0}']:not(.vertical):visible\";\n var radioSelector = baseSelector.format(UC.constants.QuestionableType.RadioButton);\n var checkboxSelector = baseSelector.format(UC.constants.QuestionableType.CheckBox);\n var $questions = $(radioSelector + \", \" + checkboxSelector);\n this.makeShortQuestionsHorizontal($questions);\n\n this.elements = {\n chkNonDirectHire: $('#chkNonDirectHire'),\n sortableQuestion: this.$el.find(\"#js-sortable\")\n };\n\n var $sortableQuestion = this.elements.sortableQuestion;\n if ($sortableQuestion.length) {\n this.sortableHandler($sortableQuestion.get(0));\n }\n\n if (this.elements.chkNonDirectHire.length > 0) {\n this.elements.chkNonDirectHire.fancyCheck({\n label: this.elements.chkNonDirectHire.attr('label'),\n checked: UC.constants.otherProposals\n });\n }\n\n if (this.questionId === UC.constants.jobDescriptionQuestionId) {\n this.descriptionLengthCounter = new TextLengthCounter({\n el: this.$el,\n errorContainer: '.row',\n textarea: 'textarea.js-description-textarea',\n counter: '.js-description-length'\n })\n }\n\n this.applyStashedData();\n },\n\n isDescriptionQuestion: function() {\n return this.questionId === UC.constants.jobDescriptionQuestionId;\n },\n\n sortableHandler: function(sortableElement) {\n // Utilizes external Sortable library instead of JQuery UI because it accounts\n // for touch events on mobile and allows for drag and drop.\n Sortable.create(sortableElement, {\n sort: true,\n ghostClass: \"sortable__placeholder\",\n forceFallback: true,\n fallbackClass: \"sortable__fallback\",\n onUpdate: this.markQuestionAnswered.bind(this)\n });\n },\n\n markQuestionAnswered: function() {\n if (!this.$el.hasClass(this.questionAnsweredClass)) {\n this.$el.addClass(this.questionAnsweredClass);\n }\n },\n\n submitHandler: function(e) {\n e.preventDefault();\n\n this.nextButtonCallback.call();\n },\n\n makeShortQuestionsHorizontal: function($questions){\n $questions.each(function(){\n var $question = $(this),\n maxWidth = $question.find('ul').innerWidth(),\n sum = 0.0,\n $answers = $question.find('li');\n\n $answers.each(function(){\n sum += Math.ceil(this.getBoundingClientRect().width);\n });\n\n if (sum > maxWidth){\n $question.addClass('vertical');\n } else {\n var balance = maxWidth - sum,\n padding = Math.floor(Math.floor((balance/$answers.length)*10)/10);\n $answers.find('label').css('padding-right', '+={0}'.format(padding));\n }\n });\n },\n\n selectionChanged: function(e) {\n if (this.type === UC.constants.QuestionableType.Tile) {\n var $target = $(e.target);\n this.$el.removeClass('has-error');\n this.$el.find('.fancy-tile-container').removeClass('selected');\n $target.closest('.fancy-tile-container').addClass('selected');\n }\n\n if (this.submitOnChange) {\n this.nextButtonCallback.call();\n }\n },\n\n renderConfirmationModal: function(callback) {\n var title = \"Are you sure?\";\n var text = \"You have not made any changes to these items. Are you sure you want to proceed?\";\n var options = { noText: \"Cancel\", yesText: \"Confirm\" };\n\n UC.utils.showConfirmModal(title, text, callback, options);\n },\n\n sendUnansweredQuestionTrackingEvent: function(action) {\n var trackingEventName = \"paj_unanswered_question_prompt\";\n var trackingAttributes = { job_lead_id: UC.constants.jobLeadId, action: action };\n\n UC.utils.recordKissEvent(trackingEventName, trackingAttributes);\n },\n\n handleUnansweredQuestion: function(question, dfd, data) {\n question.sendUnansweredQuestionTrackingEvent(\"shown\")\n\n var callback = function(accept) {\n if (accept) {\n question.sendUnansweredQuestionTrackingEvent(\"confirmed\")\n\n dfd.resolve(data);\n } else {\n question.markQuestionAnswered();\n question.sendUnansweredQuestionTrackingEvent(\"canceled\")\n\n dfd.reject();\n }\n }\n\n this.renderConfirmationModal(callback);\n },\n\n stashData: function() {\n if (!this.isDescriptionQuestion()) {\n return\n }\n\n this.putLocalStorageValue($('textarea.js-description-textarea').val());\n },\n\n applyStashedData: function() {\n if (!this.isDescriptionQuestion()) {\n return\n }\n\n const stashedValue = this.fetchLocalStorageValue();\n if (stashedValue) {\n $('textarea.js-description-textarea').val(stashedValue);\n this.descriptionLengthCounter.update();\n }\n },\n\n putLocalStorageValue: function(value) {\n try {\n localStorage.setItem(this.questionId, value)\n } catch(e) {\n console.warn('Failed to write data to localStorage', e);\n }\n return undefined;\n },\n\n fetchLocalStorageValue: function() {\n try {\n const value = localStorage.getItem(this.questionId) || \"\";\n localStorage.removeItem(this.questionId)\n return value;\n } catch(e) {\n console.warn('Failed to read data from localStorage', e);\n }\n return undefined;\n },\n\n validate: function(dfd) {\n this.$el.removeClass('has-error');\n\n var errors = [];\n var data = this.$el.serializeJSON();\n var val = Object.keys(data).length > 0 ? data.questionnaire[this.questionId] : null;\n if ('string' == typeof val) val = val.trim();\n var answered = false;\n\n if (this.elements.chkNonDirectHire.length > 0) {\n data.OtherAttorneyProposals = this.elements.chkNonDirectHire.hasClass('checked');\n }\n\n if (val && val.length > 0) { answered = true }\n\n if (this.required && !answered) {\n errors.push({element: this.$el, text: 'Required Question'});\n } else if (answered) {\n // only support single answer values right now\n var value = Array.isArray(val) ? val[0] : val;\n\n switch(this.validationType) {\n case 'phone_number':\n\n if (!UC.utils.validatePhone(value)) {\n errors.push({element: this.$el, text: 'Please enter a valid phone number'});\n }\n break;\n }\n } else {\n // need to send an empty value for skips\n data.questionnaire = {};\n data.questionnaire[this.questionId] = null;\n }\n\n if (this.questionId === UC.constants.jobDescriptionQuestionId && !this.descriptionLengthCounter.hasValidTextLength()) {\n errors.push(this.descriptionLengthCounter.getError());\n }\n\n var isSortableQuestion = this.elements.sortableQuestion.length\n var isAnswered = this.$el.hasClass(this.questionAnsweredClass)\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n dfd.reject();\n } else if (isSortableQuestion && !isAnswered) {\n this.handleUnansweredQuestion(this, dfd, data);\n } else {\n dfd.resolve(data);\n }\n }\n\n});\n","UC.partials.RegisterUser = Backbone.View.extend({\n\n events: {\n 'click #btnGoogle': 'onGoogleClick',\n 'click #btnLinkedIn': 'onLinkedinClick',\n },\n\n elements: {\n 'txtEmail': null,\n 'txtFirstName': null,\n 'txtLastName': null,\n 'btnGoogle': null,\n 'btnLinkedIn': null,\n 'divLoginOptions': null,\n },\n\n routes: {\n emailExists: '/account/email_exists'\n },\n\n initialize: function(options) {\n UC.utils.setSelectors(this.elements);\n\n this.data = {};\n\n this.components = {\n authentication: new UC.components.Authentication()\n };\n\n this.loggedInCallback = options.loggedInCallback;\n this.logonErrorCallback = options.logonErrorCallback;\n this.components.linkedInLoader = this.elements.btnLinkedIn.buttonLoader();\n },\n\n onLinkedinClick: function(e) {\n e.preventDefault();\n this.components.authentication.logonLinkedIn(\n {\n callback: this.onOauthAuthorize.bind(this),\n }\n );\n },\n\n onGoogleClick: function(e) {\n e.preventDefault();\n this.components.authentication.logonGoogle(\n {\n context: 'signup',\n backdrop: true,\n callback: this.onOauthAuthorize.bind(this),\n }\n );\n },\n\n validate: function(dfd) {\n this.$el.find('.has-error').removeClass('has-error');\n\n var errors = [];\n var data = this.$el.serializeJSON();\n\n if (!data.user.FirstName) {\n errors.push({element: this.elements.txtFirstName, text: 'Please provide your first name'});\n };\n\n if (!data.user.LastName) {\n errors.push({element: this.elements.txtLastName, text: 'Please provide your last name'});\n };\n\n if (!data.user.Email || !UC.utils.validateEmail(data.user.Email)) {\n errors.push({element: this.elements.txtEmail, text: 'Please provide a valid email'});\n };\n\n if (this.data.omniauth && Object.keys(this.data.omniauth).length > 0) {\n data.omniauth = this.data.omniauth;\n };\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n this.hideLoaders();\n dfd.reject();\n } else {\n this.checkEmailAvailability(data, dfd);\n }\n },\n\n checkEmailAvailability: function(data, dfd) {\n UC.net.post(this.routes.emailExists, {email: data.user.Email}, function(res) {\n if (res.exists) {\n\n UC.utils.showValidationErrors([\n {\n element: this.elements.txtEmail,\n text: 'This email address is already in use.'\n }\n ]);\n\n this.hideLoaders();\n dfd.reject();\n } else {\n dfd.resolve(data);\n }\n }.bind(this)).fail(function() {\n this.hideLoaders();\n dfd.reject();\n }.bind(this));\n },\n\n onOauthAuthorize: function(data) {\n if (data.status === 'unregistered') {\n this.showLoaders(data.provider);\n this.data.omniauth = data.auth;\n this.elements.txtFirstName.val(this.data.omniauth.info.first_name);\n this.elements.txtLastName.val(this.data.omniauth.info.last_name);\n this.elements.txtEmail.val(this.data.omniauth.info.email);\n this.$el.find('#nextButton').trigger('click');\n } else if (data.status === 'authenticated') {\n this.showLoaders(data.provider);\n this.loggedInCallback(null, data);\n } else if (data.status === 'signup_not_displayed' || data.status === 'signin_not_displayed') {\n this.logonErrorCallback(data.googleErrorMessage || data.status);\n } else if (data.status !== 'signup_skipped') {\n this.logonErrorCallback(data.status);\n }\n },\n\n showLoaders: function(provider) {\n if (provider === 'linkedin') {\n this.components.linkedInLoader.showLoader();\n }\n },\n\n hideLoaders: function() {\n this.components.linkedInLoader.hideLoader();\n }\n\n});\n","import TextLengthCounter from '../../../components/text_length_counter'\nimport { GeoLocation } from '../../../components/geo_location'\n\nUC.partials.SummaryConfirmation = Backbone.View.extend({\n\n events: {\n 'input #budgetSlider': 'onBudgetValueChanged',\n 'input #timelineSlider': 'onTimelineValueChanged',\n 'change #job_lead_ZipCode': 'onZipCodeChanged',\n },\n\n routes: {\n validZipCode: '/account/valid_zip_code/'\n },\n\n initialize: function(options) {\n this.descriptionLengthCounter = new TextLengthCounter({\n el: this.$el,\n errorContainer: '.form-group',\n textarea: '#job_lead_Description',\n counter: '.js-description-length'\n })\n\n this.$zipCode = $('#job_lead_ZipCode');\n },\n\n onBudgetValueChanged: function(e) {\n $('#budgetValue').text('$' + $(e.currentTarget).val());\n },\n\n onTimelineValueChanged: function(e) {\n $('#timelineValue').text($(e.currentTarget).val() + ' days');\n },\n\n validate: function(dfd) {\n this.$el.find('.has-error').removeClass('has-error');\n\n let errors = [];\n const job_lead = this.$el.serializeJSON().job_lead;\n const data = {\n summary_confirmation: {\n title: job_lead.Title,\n description: job_lead.Description,\n phone: job_lead.Phone,\n timeline: job_lead.Timeline,\n budget: job_lead.Budget,\n zip_code: job_lead.ZipCode\n }\n }\n\n // if (!data.summary_confirmation.title || data.summary_confirmation.title.length === 0) {\n // errors.push({element: $('#job_lead_Title'), text: 'Please enter a title'});\n // }\n\n if (!this.descriptionLengthCounter.hasValidTextLength()) {\n errors.push(this.descriptionLengthCounter.getError());\n }\n\n if (data.summary_confirmation.phone && data.summary_confirmation.phone.length > 0 &&\n !UC.utils.validatePhone(data.summary_confirmation.phone)) {\n errors.push({element: $('#job_lead_Phone'), text: 'Please enter a valid phone number'});\n }\n\n if (errors.length === 0) {\n if (!data.summary_confirmation.zip_code) {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n } else if (UC.utils.validateZipCode(data.summary_confirmation.zip_code)) {\n this.checkZipCodeValid(data, dfd);\n return; // return here so that lower dfd.resolve() is not called\n } else {\n errors.push({element: this.$zipCode, text: 'Please enter a valid zip code.'});\n }\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: \"form-group\" });\n dfd.reject();\n } else {\n dfd.resolve(data);\n }\n },\n\n onZipCodeChanged: function(e) {\n this.$zipCode.closest('.has-error').removeClass('has-error');\n\n if (UC.utils.validateZipCode(this.$zipCode.val())) {\n this.checkZipCodeValid({ summary_confirmation: { zip_code: this.$zipCode.val() } }, new $.Deferred());\n } else {\n UC.utils.showValidationErrors(\n [{element: this.$zipCode, text: 'Please enter a valid zip code.'}],\n {className: 'form-group'}\n );\n }\n },\n\n checkZipCodeValid: function (data, dfd) {\n const path = '{0}{1}'.format(this.routes.validZipCode, data.summary_confirmation.zip_code);\n\n UC.net.get(path, {job_lead_id: UC.constants.jobLeadId}, function(res) {\n $('.new-job-location').text(`${res.zip.CityName}, ${res.zip.StateAbbr}`);\n if (res.suggested_attorneys) {\n $('.row.face-piles').replaceWith(res.suggested_attorneys);\n }\n new GeoLocation().storeUserChoice(data.summary_confirmation.zip_code);\n dfd.resolve(data);\n }).fail(function(res) {\n res.handled = true;\n UC.utils.showValidationErrors(\n [\n {\n element: this.$zipCode,\n text: res.responseJSON ? res.responseJSON.message : 'Failed to validate the Zip Code'\n }\n ], { className: \"form-group\" }\n );\n dfd.reject();\n }.bind(this));\n }\n\n});\n\n","var SUMMARY_RESOLUTION_CHECK_INTERVAL_MS = 2000;\n\nUC.partials.SummaryResolution = Backbone.View.extend({\n routes: {\n checkSummaryResolutionStatus: '/job_leads/{0}/resolve/{1}'\n },\n\n initialize: function(options) {\n const path = this.routes.checkSummaryResolutionStatus.format(\n UC.constants.jobLeadId, UC.constants.jobLeadSummaryResolutionKey\n );\n\n const resolutionInterval = setInterval(function () {\n UC.net.get(path, {}, function (res) {\n if (res.completed) {\n clearInterval(resolutionInterval);\n\n if (res.error) {\n window.location = res.nextUrl;\n } else if (options.resolvedCallback) {\n options.resolvedCallback();\n }\n }\n }).fail(function (res) {\n clearInterval(resolutionInterval);\n UC.closeTheLoop.handleFailure(res, false);\n });\n }, SUMMARY_RESOLUTION_CHECK_INTERVAL_MS);\n },\n});\n\n","UC.partials.JobsTaskSelector = Backbone.View.extend({\n\n el: '#task-selector',\n\n events: {\n 'click .task-selector-toggle-type': 'toggleManualSelection',\n 'click .fancy-tile-container': 'onLegalTileSelect',\n 'click .legal-tile-radio': 'onLegalTileSubjectClick',\n 'change #task-selector-legal-subject': 'onLegalSubjectSelect'\n },\n\n routes: {\n legal_tiles: '/legal_tiles/{0}'\n },\n\n initialize: function(options) {\n this.options = options;\n this.originalType = this.selectionType = this.$el.data('selection-type');\n this.$legal_subject = this.$el.find('#task-selector-legal-subject');\n this.$legal_subject.select2({width: '100%', placeholder: 'Select...'});\n },\n\n getLegalSubjectId: function() {\n var selection_id;\n var $selected = this.$legal_subject.find('option:selected');\n\n if ($selected.length > 0) {\n selection_id = $selected.val().trim();\n }\n\n return selection_id;\n },\n\n toggleManualSelection: function(e) {\n e.preventDefault();\n this.changeSelectionType('manual');\n },\n\n changeSelectionType: function(type) {\n var $tiles = this.$el.find('#task-selector-tiles');\n var $manual = this.$el.find('#task-selector-manual');\n\n this.$legal_subject.val('');\n\n $tiles.addClass('hidden');\n $manual.addClass('hidden');\n\n switch(type) {\n case 'manual':\n $manual.removeClass('hidden');\n break;\n case 'tiles':\n // make sure tiles are visible and task list starts as hidden\n this.$el.find('#task-selector-tiles-subjects').empty().addClass('hidden');\n this.$el.find('#task-selector-legal-tiles').removeClass('hidden');\n $tiles.removeClass('hidden');\n break;\n default:\n throw 'The selection type {0} does not exist'.format(type);\n break;\n }\n\n // keep track of current selection type\n this.selectionType = type;\n\n if (typeof this.options.onChangeSelectionType === 'function') {\n this.options.onChangeSelectionType(this.selectionType);\n }\n },\n\n onLegalSubjectSelect: function(e) {\n var selection_id = this.getLegalSubjectId();\n\n // empty selection\n if (!selection_id) return;\n\n if (typeof this.options.onLegalSubjectSelect === 'function') {\n this.options.onLegalSubjectSelect(this.selectionType, selection_id);\n }\n },\n\n onLegalTileSelect: function(e) {\n var dfd = new $.Deferred();\n\n if (typeof this.options.onBeforeLegalTileSelect === 'function') {\n this.options.onBeforeLegalTileSelect(dfd);\n } else {\n dfd.resolve();\n }\n\n $.when(dfd).done(function() {\n var $tile = $(e.currentTarget);\n var tile_id = $tile.data('id');\n\n if ($tile.data('other') === true) {\n this.changeSelectionType('manual');\n UC.utils.scrollToTop();\n return;\n } else {\n this.renderLegalTileSubjects(tile_id);\n }\n }.bind(this));\n },\n\n renderLegalTileSubjects: function(tile_id) {\n\n // prevent double click junk\n if (this.loading_tiles) return;\n\n this.loading_tiles = true;\n\n UC.net.get(this.routes.legal_tiles.format(tile_id), function(result) {\n this.loading_tiles = false;\n\n if (result.legal_subjects.length <= 1) {\n // no choice needed since there aren't multiple options\n var selection = result.legal_subjects[0];\n this.setLegalSubjectId(selection._id);\n } else {\n // multiple choices, let's show the radio buttons\n this.$el.find('#task-selector-legal-tiles').addClass('hidden');\n this.$el.find('#task-selector-tiles-subjects').html(result.html).removeClass('hidden');\n UC.utils.scrollToTop();\n }\n\n if (typeof this.options.onLegalTileSelect === 'function') {\n this.options.onLegalTileSelect(tile_id, result.legal_subjects);\n }\n }.bind(this));\n },\n\n setLegalSubjectId: function(selection_id) {\n this.$legal_subject.val(selection_id);\n this.$legal_subject.change(); \n },\n\n onLegalTileSubjectClick: function(e) {\n var selection_id = $(e.currentTarget).val();\n this.setLegalSubjectId(selection_id);\n },\n\n clearErrors: function() {\n UC.utils.clearValidationErrors('form-group', this.$el);\n UC.utils.clearValidationErrors('job-question', this.$el);\n },\n\n errors: function() {\n this.clearErrors();\n\n var errors = [];\n var legal_subject = this.$legal_subject.val();\n var subject_missing = !legal_subject || legal_subject === '--';\n\n switch(this.selectionType) {\n case 'manual':\n\n if (subject_missing) {\n errors.push({ element: this.$legal_subject, text: 'Please select a subcategory', className: 'form-group' });\n }\n break;\n case 'tiles':\n\n if (subject_missing) {\n var $el = this.$el.find('#task-selector-tiles-subjects.form-options');\n errors.push({ element: $el, text: 'Please select a legal need', className: 'job-question' });\n }\n break;\n default:\n throw 'The selection type {0} does not exist'.format(type);\n break;\n }\n\n return errors;\n }\n});\n","UC.partials.takeATour = Backbone.View.extend({\n initialize: function(_) {\n if ($('#jobNav').hasClass('selected')) $('.jn-toggle').click();\n\n var $fake_step = $('
    visible
    ');\n $('body').append($fake_step);\n\n window.intro = UC.utils.initIntroJs(this.steps($fake_step));\n\n intro\n .onchange(this.onChangeHandler)\n .onbeforechange(this.onBeforeChangeHandler)\n .onafterchange(this.onAfterChangeHandler)\n .onexit(this.onExitHandler.bind(this))\n .oncomplete(this.onCompleteHandler.bind(this));\n\n UC.utils.recordKissEvent('Product tour started', {\n 'page-path': window.location.pathname\n });\n },\n\n onCompleteHandler: function() {\n this.reset();\n\n UC.utils.recordKissEvent('Product tour completed', {\n 'page-path': window.location.pathname\n });\n },\n\n onExitHandler: function() {\n this.reset();\n\n UC.utils.recordKissEvent('Product tour exited', {\n 'page-path': window.location.pathname\n });\n },\n\n onAfterChangeHandler: function(el) {\n var $el = $(el);\n var step = $el.data('step');\n\n switch(step) {\n case 4:\n intro.exit();\n $('body').append('
    ');\n break;\n }\n },\n\n onBeforeChangeHandler: function(el) {\n var step = $(el).data('step');\n\n if (step === 2) {\n $('.job-nav').removeClass('selected');\n } else if (step === 3) {\n // timeout allows click event to occur\n // https://stackoverflow.com/a/25732108\n setTimeout(function () {\n $('.jn-toggle').click();\n });\n }\n },\n\n onChangeHandler: function(el) {\n var $el = $(el);\n var step = $el.data('step');\n\n switch (step) {\n case 3:\n $el.attr('href', '{0}#intro'.format($el.attr('href')));\n break;\n case 4:\n // fake keeping the overlay open\n $('.introjs-overlay').addClass('no-transition');\n window.location = '/dashboard#intro';\n break;\n }\n\n UC.utils.recordKissEvent('Product tour next step', {\n 'step': step,\n 'page-path': window.location.pathname\n });\n },\n\n reset: function() {\n var $dl = $('.jn-dashboard');\n if ($dl.length > 0) {\n $dl.attr('href', $dl.attr('href').split('#')[0]);\n }\n },\n\n steps: function($fake_step) {\n return ([\n {\n element: $('#jobNav'),\n text: 'Use the tabs on the navigation panel to view proposals, send messages to attorneys, and upload relevant documents.',\n position: 'bottom-middle-aligned'\n },\n {\n element: $('#what-happens-next'),\n text: 'The Job Overview tab will update as you receive proposals and will provide instructions on how to proceed.',\n position: 'top'\n },\n {\n element: UC.utils.isMobileViewPort() ? $('.jn-dashboard-mobile') : $('.jn-dashboard'),\n text: 'Click this button to visit your Dashboard and continue the tour.',\n position: 'bottom'\n },\n {\n element: $fake_step,\n text: 'Redirecting to Dashboard...'\n }\n ]);\n }\n});\n","UC.partials.UserInfo = Backbone.View.extend({\n routes: {\n emailExists: '/account/email_exists'\n },\n\n initialize: function(options) {\n this.$el.find('select').select2({ placeholder: 'Select...' });\n this.btnLoader = options.btnLoader;\n },\n\n validate: function(dfd) {\n this.$el.find('.has-error').removeClass('has-error');\n\n var data = this.$el.serializeJSON();\n var errors = [];\n\n if (!data.user_info_stage.FirstName) {\n var txtFirstName = this.$el.find('#user_info_stage_FirstName');\n\n errors.push({element: txtFirstName, text: 'Please provide your first name'});\n };\n\n if (!data.user_info_stage.LastName) {\n var txtLastName = this.$el.find('#user_info_stage_LastName');\n\n errors.push({element: txtLastName, text: 'Please provide your last name'});\n };\n\n if (!data.user_info_stage.CompanyName) {\n var txtCompanyName = this.$el.find('#user_info_stage_CompanyName');\n\n errors.push({element: txtCompanyName, text: 'Please provide your company name'});\n };\n\n if (!data.user_info_stage.NumberOfEmployees) {\n var txtNumberOfEmployees = this.$el.find('#user_info_stage_NumberOfEmployees');\n\n errors.push({element: txtNumberOfEmployees, text: 'Please provide number of employees'});\n };\n\n var txtEmail = this.$el.find('#user_info_stage_Email');\n\n if (!data.user_info_stage.Email || !UC.utils.validateEmail(data.user_info_stage.Email)) {\n errors.push({element: txtEmail, text: 'Please provide a valid email'});\n };\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: 'js-inputContainer' });\n dfd.reject();\n } else {\n this.checkEmailAvailability(data, dfd, txtEmail);\n }\n },\n\n checkEmailAvailability: function(data, dfd, element, callback) {\n UC.net.post(this.routes.emailExists, {email: data.user_info_stage.Email}, function(res) {\n if (res.exists) {\n\n this.renderLoginAlert(element);\n this.btnLoader.hideLoader();\n dfd.reject();\n } else {\n dfd.resolve(data);\n }\n }.bind(this)).fail(function() {\n this.btnLoader.hideLoader();\n dfd.reject();\n });\n },\n\n renderLoginAlert: function(element) {\n this.$el.find('.js-login-link').remove();\n\n if (!element.parent().find('.alert').length) {\n element.parent().append(\n '
    ' +\n '' +\n 'An account already exists for this email, ' +\n '' +\n 'please log in' +\n '
    '\n )\n }\n },\n\n logonCallback: function(err) {\n if (err) {\n this.logonForm.hideLogonLoaders();\n this.logonError(err);\n } else {\n this.updateAndLoadNextStage({logon: true, nextStage: true, user_info_stage: {} });\n }\n }\n});\n","UC.modals.UserJobReportModal = Backbone.View.extend({\n className: 'modal',\n\n el: '#mdlUserReportJob',\n\n events: {\n \"change input[name='feedback_response[AttorneyFeedback]']\" : 'onChangeAttorneyFeedback',\n 'submit #formUserReportJob' : 'onSubmitUserReportJob'\n },\n\n initialize: function() {\n this.$feedbackComments = this.$el.find('#feedbackComments');\n this.$formUserReportJob = this.$el.find('#formUserReportJob');\n this.$reportAttorneyFeedback = this.$el.find(\"#reportAttorneyFeedback\");\n\n return this;\n },\n\n render: function() {\n this.$el.modal();\n\n UC.utils.recordKissEvent('user_job_report_shown',\n { jobId: UC.job.id, attorneyId: UC.user.id, url: location.href }\n );\n },\n\n onChangeAttorneyFeedback: function(e) {\n UC.utils.hideValidationErrors('js-report-options');\n if (e.target.value === 'other') {\n this.$feedbackComments.removeClass('hidden');\n } else {\n this.$feedbackComments.addClass('hidden');\n }\n },\n\n preprocessData: function(data){\n data.referrer = document.referrer;\n\n if(data.feedback_response && data.feedback_response.AttorneyFeedback !== 'other') {\n delete data.feedback_response.Comments;\n }\n\n return data;\n },\n\n validate: function(data){\n var errors = [];\n\n if(data.feedback_response && _.isEmpty(data.feedback_response.AttorneyFeedback)){\n errors.push({element: this.$reportAttorneyFeedback, text: 'Please select a report reason'});\n }\n\n if(errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'js-report-options'});\n return false;\n } else {\n return true;\n }\n },\n\n onSubmitUserReportJob: function(e) {\n e.preventDefault();\n\n var data = this.$formUserReportJob.serializeJSON();\n data = this.preprocessData(data);\n\n if(this.validate(data)) {\n UC.net.post(this.$formUserReportJob.attr('action'), data, function () {\n this.$el.modal('hide');\n }.bind(this));\n }\n }\n});\n","import { renderTwoFactorRequestModal } from '../multi_factor_auth/functions'\n\nUC.partials.V4PAJ = Backbone.View.extend({\n\n events: {\n 'click #nextButton' : 'nextButtonClicked',\n 'click .js-nextButton' : 'nextButtonClicked',\n 'click #backButton' : 'backButtonClicked',\n 'click .js-lnkNewJobLogin' : 'openNewJobLogin',\n 'click #lnkNewJobLogin': 'openNewJobLogin'\n },\n\n routes: {\n update: '/job_leads/{0}'\n },\n\n initialize: function(options) {\n try {\n this.removePageLocationQueryParam();\n } catch(e) {\n console.error(\n \"Failed to clear query param for job_lead: \\\"{0}\\\"\".format(UC.constants.jobLeadId)\n );\n }\n\n this.elements = {\n paj_stage_wrapper: this.$el.find('#paj_stage_wrapper')\n };\n\n if (UC.user) {\n this.isUserRestricted();\n } else {\n this.elements.modalNewJobLogin = $('#modalNewJobLogin');\n this.elements.loginPartial = $('#loginPartial');\n\n this.logonForm = new UC.partials.SessionsForm({\n logonCallback: this.logonCallback.bind(this),\n oauthCallback: this.onOauthLogon.bind(this),\n modal: true\n });\n }\n\n this.jobLeadId = UC.constants.jobLeadId;\n this.currentStage = UC.constants.jobLeadStage;\n this.routes.update = this.routes.update.format(this.jobLeadId);\n this.initializeStageJS();\n\n this.addTracking();\n\n // outside $el because header nav is detached\n $('.header-logon').click(this.openNewJobLogin.bind(this));\n },\n\n removePageLocationQueryParam: function() {\n var queryParam = UC.utils.queryStringParams()\n\n if (queryParam) {\n if (queryParam.page_location) {\n delete queryParam.page_location;\n\n if ($.isEmptyObject(queryParam)) {\n window.history.replaceState({},\"\", window.location.pathname);\n } else {\n window.history.replaceState({},\"\", window.location.pathname + \"?\" + $.param(queryParam));\n }\n }\n }\n },\n\n initializeStageJS: function() {\n this.activeSteps = [];\n var stageFunctionName = this.currentStage + \"Stage\";\n var eventParams = {\n eventName: '{0}_stage_shown'.format(this.currentStage),\n stageName: this.currentStage,\n jobLeadId: this.jobLeadId\n };\n\n if (this.$('.package_selection').length > 0) {\n eventParams.jobPackage = this.$('.package_selection').data();\n }\n\n this.buttonLoader = this.$el.find('#nextButton').buttonLoader();\n if (typeof this[stageFunctionName] === 'function') {\n this[stageFunctionName](eventParams);\n }\n UC.utils.recordPajEvent(eventParams);\n },\n\n addTracking: function() {\n if (UC.constants.add_tracking != undefined) {\n UC.utils.recordKissEvent(\n UC.constants.event_name, UC.constants.track\n )\n }\n },\n\n createdStage: function(eventParams) {\n this.activeSteps.push(new UC.partials.Created({\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n },\n\n questionnaireStage: function(eventParams) {\n this.activeSteps.push(new UC.partials.PAJQuestion({\n el: '.job-question',\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n\n eventParams.questionId = $('.job-question').data('id');\n },\n\n user_infoStage: function(eventParams) {\n this.activeSteps.push(new UC.partials.UserInfo({\n el: '#js-userInfoForm',\n btnLoader: this.buttonLoader\n }));\n\n this.logonForm.logonCallback =\n UC.partials.UserInfo.prototype.logonCallback.bind(this)\n },\n\n register_userStage: function(eventParams) {\n this.activeSteps.push(new UC.partials.RegisterUser({\n el: '#registerForm',\n loggedInCallback: this.logonCallback.bind(this),\n logonErrorCallback: this.logonError.bind(this)\n }));\n },\n\n package_selectionStage: function(eventParams) {\n this.activeSteps.push(new UC.partials.PackageSelection({\n el: '.js-package-selection',\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n },\n\n addressStage: function(eventParams) {\n this.activeSteps.push(new UC.partials.LocationSearch({\n el: '#location_search',\n jobLeadId: this.jobLeadId\n }));\n },\n\n logonError: function(err) {\n if (err === 'suspended' || err === 'Your account is suspended') {\n UC.utils.showNotification(\"Your account has been suspended.\", UC.constants.results.failure);\n } else if (err === 'pending' || err === 'Your account is pending') {\n UC.utils.showNotification(\"Your account is pending. Please check your email for activation link.\", UC.constants.results.failure);\n } else if (err === 'unregistered' || (err && err.indexOf('LinkedIn account not found') > -1)) {\n UC.utils.showNotification(\"Your account was not found.\", UC.constants.results.failure);\n } else {\n err = err || \"An unknown error occurred.\";\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n },\n\n logonCallback: function(err, result) {\n if (!err && result && result.two_factor_request_modal) {\n renderTwoFactorRequestModal(result.two_factor_request_modal, this.logonCallback.bind(this))\n return;\n }\n\n if (err) {\n this.logonForm.hideLogonLoaders();\n this.logonError(err);\n } else {\n this.updateAndLoadNextStage({ logon: true, nextStage: true });\n }\n },\n\n onOauthLogon: function(res) {\n if (res.status === 'pending' || res.status === 'suspended' || res.status === 'unregistered') {\n this.logonCallback(res.status);\n } else {\n this.logonCallback();\n }\n },\n\n nextButtonClicked: function(e) {\n if (e) e.preventDefault();\n if (this.submitting) return;\n this.submitting = true;\n\n this.buttonLoader.showLoader();\n\n UC.utils.recordPajEvent({\n eventName: 'next_button_clicked',\n stageName: this.currentStage,\n jobLeadId: this.jobLeadId\n });\n\n var dfds = [];\n var data = {};\n\n for (var i = 0; i < this.activeSteps.length; i++) {\n var dfd = new $.Deferred();\n dfds.push(dfd);\n this.activeSteps[i].validate(dfd);\n }\n\n this.waitForValidationAndSubmit(dfds, data);\n },\n\n backButtonClicked: function(e) {\n e.preventDefault();\n if (this.submitting) return;\n this.submitting = true;\n\n UC.utils.recordPajEvent({\n eventName: 'back_button_clicked',\n stageName: this.currentStage,\n jobLeadId: this.jobLeadId\n });\n\n this.updateAndLoadNextStage({revert_stage: true});\n },\n\n waitForValidationAndSubmit: function(dfds, data) {\n $.when.apply(this, dfds).done(function() {\n for (var i = 0; i < this.activeSteps.length; i++) {\n $.extend(data, arguments[i]);\n }\n\n this.updateAndLoadNextStage(data);\n\n }.bind(this)).fail(function() {\n\n this.buttonLoader.hideLoader();\n this.submitting = false;\n\n }.bind(this));\n },\n\n updateAndLoadNextStage: function(data) {\n UC.net.put(this.routes.update, data, function(res) {\n\n if (res.jsUser && !UC.user) {\n UC.user = res.jsUser;\n }\n\n if (UC.user) {\n var isUserRestricted = this.isUserRestricted();\n }\n\n if (!isUserRestricted && data.logon && data.nextStage) {\n this.handleLogOnUpdate(res);\n this.handleStageUpdate(res);\n } else if (!isUserRestricted && data.logon) {\n this.handleLogOnUpdate(res);\n } else {\n this.handleStageUpdate(res);\n }\n\n }.bind(this)).fail(function(res) {\n\n this.buttonLoader.hideLoader();\n UC.closeTheLoop.handleFailure(res, false);\n\n }.bind(this)).always(function() {\n\n this.submitting = false;\n\n }.bind(this));\n },\n\n openNewJobLogin: function(e) {\n e.preventDefault();\n\n this.elements.modalNewJobLogin.modal();\n if ($('body').hasClass('mobile-nav-open')) {\n $('#menu-toggle').trigger('click'); // close mobile menu\n }\n\n _.each(this.activeSteps, function(step) {\n if (typeof step.stashData === 'function') {\n step.stashData();\n }\n })\n },\n\n handleLogOnUpdate: function(res) {\n if (this.elements.modalNewJobLogin.is(\":visible\")) {\n this.elements.modalNewJobLogin.modal('hide');\n };\n\n this.elements.loginPartial.empty().append(res.loginPartialHtml);\n this.elements.loginPartial.find('.popdown').popdown();\n\n if (res.trackingUrl) {\n UC.utils.createTrackingImage(res.trackingUrl);\n }\n\n if ($('.mobile-nav-open #mobile-nav .logon').length > 0) {\n $('#mobile-nav .logon').html('Logout');\n }\n\n new UC.components.Notifications(); // init popdown\n },\n\n handleStageUpdate: function(res) {\n this.elements.paj_stage_wrapper.html(res.html);\n this.currentStage = res.current_stage;\n this.initializeStageJS();\n UC.utils.scrollToTop();\n },\n\n isUserRestricted: function() {\n return UC.PajHelpers.isUserRestricted();\n }\n\n});\n","UC.partials.V5PAJ = UC.partials.V4PAJ.extend({\n summary_resolutionStage: function(_eventParams) {\n this.activeSteps.push(new UC.partials.SummaryResolution({\n resolvedCallback: function() {\n this.updateAndLoadNextStage({ summary_resolution: true, nextStage: true});\n }.bind(this)\n }));\n },\n\n summary_confirmationStage: function(_eventParams) {\n this.activeSteps.push(new UC.partials.SummaryConfirmation({\n el: '#summaryConfirmationForm',\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n },\n});\n\n","UC.partials.V6PAJ = UC.partials.V4PAJ.extend({\n live_chatStage: function(_eventParams) {\n this.activeSteps.push(new UC.partials.LiveChat({\n el: this.$el,\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n },\n});\n\n","UC.partials.V7PAJ = UC.partials.V4PAJ.extend({\n ai_formStage: function(_eventParams) {\n this.activeSteps.push(new UC.partials.AiForm({\n el: '#v7AiForm',\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n },\n\n ai_live_chatStage: function(_eventParams) {\n this.activeSteps.push(new UC.partials.AiLiveChat({\n el: this.$el,\n nextButtonCallback: this.nextButtonClicked.bind(this)\n }));\n },\n});\n","!function() {\n\n UC.views.JobsAddProject = Backbone.View.extend({\n\n events: {\n 'submit #frmAddProject': 'create',\n 'change #UserId': 'fetchAttorneyClient',\n 'change #task-selector-legal-subject': 'populateProjectTitle',\n 'change #ProjectTitle': 'onChangeProjectTitle',\n 'change #OngoingProject': 'changeBidType',\n 'click .add-project-back': 'prevStep',\n 'click .add-project-next': 'nextStep'\n },\n\n initialize: function() {\n this.current_step = this.$el.find('.add-project-step:visible').data('step');\n this.total_steps = this.$el.find('.add-project-step').length;\n this.$form = this.$el.find('#frmAddProject');\n this.$attorneyFee = this.$('#js-attorney-fee-notice');\n\n this.projectTitleAutoPopulated = false;\n\n this.task_selector = new UC.partials.JobsTaskSelector({\n onChangeSelectionType: this.onChangeSelectionType.bind(this)\n });\n this.quote_form = new UC.partials.ProposalsFormQuote();\n\n this.$el.find('#UserId').select2();\n this.$el.find('.datepicker').datepicker(UC.constants.datepickerOptions);\n this.$el.find('.icon-calendar').click(function(e) {\n $(e.target).closest('.input-with-icon-right').find('input').focus();\n });\n\n this.$el.find('.add-project-submit').each(function() {\n $(this).buttonLoader();\n });\n\n // this needs to come before confirmUnload\n this.$el.find('#UserId').trigger('change');\n this.confirm_unload = this.$el.find('#content-body').confirmUnload();\n\n if (!UC.constants.hasPayout && !UC.constants.adminProposal) {\n this.$el.find('#modalNoBankAccount').modal({ keyboard: false, backdrop: 'static' });\n } else if(UC.constants.unverifiedAccount && !UC.constants.adminProposal){\n this.$el.find('#modalUnverifiedAccount').modal({ keyboard: false, backdrop: 'static' });\n }\n\n $('[data-toggle=\"tooltip\"]').tooltip();\n },\n\n changeBidType: function (event) {\n event.preventDefault();\n\n if (event.target.checked) {\n this.quote_form.showHourlyFee();\n\n if (this.attorney_client && this.attorney_client.HourlyRate) {\n this.$el.find('#txtServiceFees').val(UC.utils.formatCurrency(this.attorney_client.latest_hourly_rate || 0));\n } else if (this.attorney_client && this.attorney_client.HourlyRate) {\n this.$el.find('#txtServiceFees').val(UC.utils.formatCurrency(this.attorney_client.latest_hourly_rate || 0));\n }\n\n UC.utils.recordKissEvent('selected_ongoing_project', {attorneyClientId: this.attorney_client.id, attorneyId: UC.user.id});\n } else {\n this.quote_form.showFixedFee();\n }\n },\n\n onChangeSelectionType: function(type) {\n UC.utils.recordKissEvent('add project - selection type changed', {\n selectionType: type,\n followUpInvoiceId: UC.constants.followUpInvoiceId\n });\n },\n\n // hack because fancy check currently doesn't use a \"shadow input\"\n setHiddenCallInput: function(e, checked) {\n this.$offer_call.val(checked);\n },\n\n fetchAttorneyClient: function(e) {\n var $selected = $(e.currentTarget).find('option:selected');\n var client_id = $selected.data('attorney-client-id');\n\n if (client_id) {\n var path = '/clients/{0}.json'.format(client_id);\n\n UC.net.get(path, function(attorney_client) {\n this.onFetchAttorneyClient(attorney_client);\n }.bind(this));\n }\n },\n\n onFetchAttorneyClient: function(attorney_client) {\n this.attorney_client = attorney_client;\n\n this.$('#forUserTitle').text(\"for \" + this.attorney_client.FirstName + \" \" + this.attorney_client.LastName);\n this.$('#hourlyClientName').text(this.attorney_client.FirstName + \" \" + this.attorney_client.LastName);\n var hourly_rate = 0;\n if (this.attorney_client.HourlyRate) {\n hourly_rate = this.attorney_client.HourlyRate;\n } else if (this.attorney_client.latest_hourly_rate) {\n hourly_rate = this.attorney_client.latest_hourly_rate;\n } else {\n hourly_rate = 0;\n }\n this.$('#txtServiceFees').val(UC.utils.formatCurrency(0));\n this.$('#txtFilingFees').val(UC.utils.formatCurrency(0));\n this.$('#txtEstimatedHours').val(UC.utils.formatCurrency(0));\n\n if (this.attorney_client.User.Collections === true) {\n this.showClientInCollections();\n }\n\n if (this.attorney_client.transaction_type === \"USC\") {\n this.$el.find('.repeat-usc-client-only').removeClass('hidden');\n }\n\n this.quote_form.render({\n payment_profile: this.attorney_client.payment_profile,\n transaction_type: this.attorney_client.transaction_type,\n hourly_rate: hourly_rate,\n client_id: this.attorney_client.UserId,\n has_invoices: this.attorney_client.has_invoices\n });\n\n this.$el.find('#OngoingProject').trigger('change');\n },\n\n populateProjectTitle: function(event) {\n var $projectTitleField = this.$el.find('#ProjectTitle');\n var projectTitle = $projectTitleField.val();\n var legalSubjectName = this.$el.find('#task-selector-legal-subject option:selected').text();\n\n if ((!projectTitle || this.projectTitleAutoPopulated) && legalSubjectName) {\n $projectTitleField.val(legalSubjectName);\n this.projectTitleAutoPopulated = true;\n }\n },\n\n onChangeProjectTitle: function(event) {\n this.projectTitleAutoPopulated = false;\n },\n\n showClientInCollections: function(e) {\n var text = \"This client's account is not currently in good standing with UpCounsel. While you are certainly welcome to continue work with the client, we cannot guarantee any ensuing payments until the account is settled. If you do wish to proceed, we recommend that you request a significant portion of the payment upfront.\";\n\n function onConfirm(response) {\n if (response) {\n UC.utils.recordKissEvent('collections_client_notification_clicked_project_page', {\n attorneyId: UC.user.id,\n followUpInvoiceId: UC.constants.followUpInvoiceId,\n clientId: this.attorney_client.UserId\n });\n }\n }\n\n UC.utils.recordKissEvent('collections_client_notification_shown_project_page', {\n attorneyId: UC.user.id,\n followUpInvoiceId: UC.constants.followUpInvoiceId,\n clientId: this.attorney_client.UserId\n });\n\n UC.utils.showConfirmModal('Are You Sure?', text, onConfirm.bind(this), {\n yesText: 'Ok',\n noText: 'Cancel'\n });\n },\n\n prevStep: function(e) {\n e.preventDefault();\n this.showStep(this.current_step - 1);\n },\n\n nextStep: function(e) {\n if (e) e.preventDefault();\n\n if (this.validate()) {\n this.resetValidations();\n this.showStep(this.current_step + 1);\n }\n },\n\n toggleAttorneyFeeNotice: function () {\n var paymentProfile = this.attorney_client.payment_profile;\n\n if (paymentProfile.attorney_fee_disclaimer && this.current_step == 2) {\n this.$attorneyFee.text(\"** \" + paymentProfile.attorney_fee_disclaimer);\n this.$attorneyFee.removeClass('hide')\n } else {\n this.$attorneyFee.addClass('hide')\n }\n },\n\n showStep: function(step) {\n this.current_step = step;\n this.$current_step = this.$el.find('.add-project-step[data-step={0}]'.format(this.current_step));\n\n this.$el.find('.add-project-step').removeClass('active');\n this.$current_step.addClass('active');\n\n UC.utils.scrollToTop();\n\n UC.utils.recordKissEvent('Create project - Step shown', {\n step: this.current_step,\n title: this.$current_step.find('h3').text(),\n followUpInvoiceId: UC.constants.followUpInvoiceId\n });\n\n this.toggleAttorneyFeeNotice()\n },\n\n resetValidations: function() {\n UC.utils.clearValidationErrors('form-group', this.$el);\n },\n\n validate: function(all_steps) {\n this.resetValidations();\n\n var errors = [];\n\n // add any errors from the task selector\n errors = errors.concat(this.task_selector.errors());\n\n var $client_id = this.$el.find('#UserId');\n if (!$client_id.val()) {\n errors.push({ element: $client_id, text: 'Please select a client' });\n }\n\n var $project_title = this.$el.find('#ProjectTitle');\n if (!$project_title.val().trim()) {\n errors.push({ element: $project_title, text: 'Please provide a project title' });\n }\n\n var $project_description = this.$el.find('#ProjectDescription');\n if (!$project_description.val().trim()) {\n errors.push({ element: $project_description, text: 'Please provide a project description' });\n }\n\n // add any errors from the quote form\n errors = errors.concat(this.quote_form.errors());\n\n UC.utils.showValidationErrors(errors, { className: 'form-group' });\n\n if (errors.length > 0 && (all_steps || this.errorsVisible())) {\n UC.utils.scrollToElement(errors[0].element);\n return false;\n } else {\n return true;\n }\n },\n\n errorsVisible: function() {\n return this.$form.find('.has-error:visible').length > 0;\n },\n\n create: function(e) {\n e.preventDefault();\n\n if (this.current_step < this.total_steps) {\n this.nextStep();\n return;\n }\n\n if (this.validate(true)) {\n\n this.confirm_unload.resetChanged();\n this.showLoaders();\n\n UC.net.post('/job/submit_project', this.$form.serializeJSON()).fail(function() {\n this.hideLoaders();\n }.bind(this));\n }\n },\n\n showLoaders: function() {\n this.$el.find('.add-project-submit').each(function() {\n $(this).data('button-loader').showLoader();\n });\n },\n\n hideLoaders: function() {\n this.$el.find('.add-project-submit').each(function() {\n $(this).data('button-loader').hideLoader();\n });\n }\n });\n}();\n","UC.partials.JobsAttorneyNavigation = Backbone.View.extend({\n\n events: {\n 'click .js-bookmark': 'toggleJobBookmark',\n 'click .js-hide': 'toggleJobVisibility'\n },\n\n toggleJobBookmark: function(e) {\n var $target = $(e.currentTarget);\n var jobId = UC.job.id;\n var isBookmarked = $target.hasClass('bookmarked');\n\n UC.utils.sendNesEvent('bookmark_job_clicked', {job_id: jobId, bookmark: !isBookmarked});\n UC.net.post('/job/bookmark/{0}'.format(jobId), { bookmark: !isBookmarked }, function() {\n if (isBookmarked) {\n $target.removeClass('bookmarked');\n } else {\n $target.addClass('bookmarked');\n }\n });\n },\n\n toggleJobVisibility: function(e) {\n var $target = $(e.currentTarget);\n var jobId = UC.job.id;\n var isHidden = $target.hasClass('js-hidden');\n var $tooltip = $target.find('.js-hide-title');\n var $icon = $target.find('.glyphicon');\n $tooltip.tooltip('hide');\n\n UC.net.post('/job/marketplace_visibility/{0}'.format(jobId), { visible: isHidden }, function() {\n if (isHidden) {\n $tooltip.attr('data-original-title', $tooltip.attr('data-tooltip-hide'));\n $icon.addClass('glyphicon-eye-close').removeClass('glyphicon-eye-open');\n $target.removeClass('js-hidden');\n } else {\n $tooltip.attr('data-original-title', $tooltip.attr('data-tooltip-show'));\n $icon.addClass('glyphicon-eye-open').removeClass('glyphicon-eye-close');\n $target.addClass('js-hidden');\n history.back();\n }\n });\n }\n});\n","UC.views.JobsAttorneyProposal = Backbone.View.extend({\n events: {\n 'click #aRetractProposal': 'retractProposalLinkHandler',\n 'click #btnRetractProposal': 'retractProposalBtnHandler'\n },\n\n initialize: function() {\n new UC.partials.FeesDetails();\n\n UC.utils.initRatingDimensions('.jp-reviews');\n\n new UC.components.FeesPopover({ el: '.jp-single' });\n },\n\n onProposalUnDecline: function(err, message) {\n if (err) {\n this.showNotification(err, false);\n }\n else {\n this.showNotification(message, true);\n UC.utils.recordKissEvent('Job Page: Bid Actions - Show Bid Click');\n }\n },\n\n showNotification: function(message, success) {\n this.$('#panelNotification').removeClass('red green').addClass(success ? 'green' : 'red').find('div').html(message);\n UC.utils.showPanel(this.$('#panelNotification'));\n UC.utils.scrollToElement(this.$('#panelNotification'));\n },\n\n retractProposalLinkHandler: function(e) {\n e.preventDefault();\n\n this.$('#modalRetractProposal').modal();\n },\n\n retractProposalBtnHandler: function(e) {\n var $reasonField = this.$('#txtRetractReason');\n var reason = $reasonField.val();\n this.btnRetractProposalLoader = this.$('#btnRetractProposal').buttonLoader();\n\n $reasonField.closest('.row').removeClass('has-error');\n\n if (reason === '') {\n $reasonField.closest('.row').addClass('has-error');\n }\n else {\n this.btnRetractProposalLoader.hideLoader();\n this.retractProposal(reason, this.onRetractProposal.bind(this));\n }\n },\n\n retractProposal: function(reason, callback) {\n UC.net.post('/job/retract_proposal/{0}'.format(UC.constants.jobId), {reason: reason}, callback);\n },\n\n onRetractProposal: function (err, message) {\n this.$('#btnSubmitProposalLoader').buttonLoader().hideLoader();\n this.$('#modalRetractProposal').modal('hide');\n\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n else {\n UC.utils.showNotification(message, UC.constants.results.success);\n $('.jp-single').addClass('retracted').removeClass('submitted');\n this.$('#txtRetractReason').val('');\n }\n }\n});\n","UC.views.JobsDetails = Backbone.View.extend({\n events: {\n 'click .ji-nav-tab' : 'handleSidebarTabClick'\n },\n\n initialize: function() {\n UC.utils.showComponent(this.$('#boxJobDetails'))\n UC.utils.recordKissClickEvent('.ji-msg-link', 'Job Details - Send Message Click');\n },\n\n handleSidebarTabClick: function(e) {\n e.preventDefault();\n\n var $target = $(e.target)\n var $boxJobDetails = this.$('#boxJobDetails');\n var $boxClientProfile = this.$('#boxClientProfile');\n\n UC.utils.hideComponents([$boxClientProfile, $boxJobDetails]);\n\n this.$('.ji-nav-tab').removeClass('active');\n $target.addClass('active');\n\n if ($target.data('val') === \"ji-client-profile\") {\n UC.utils.showComponent($boxClientProfile);\n } else {\n UC.utils.showComponent($boxJobDetails);\n }\n }\n});\n","import '../user_documents/index'\nimport '../user_documents/show'\nimport '../user_documents/history'\n\n!function() {\n\n UC.views.JobsDocuments = Backbone.View.extend({\n initialize: function() {\n new UC.views.UserDocumentsIndex({el: this.$el})\n },\n });\n\n UC.views.JobsDocumentsShow = Backbone.View.extend({\n initialize: function() {\n new UC.views.UserDocumentsShow({el: this.$el})\n },\n });\n\n UC.views.JobsDocumentsHistory = Backbone.View.extend({\n initialize: function() {\n new UC.views.UserDocumentsHistory({el: this.$el})\n },\n });\n}();\n","import TextLengthCounter from '../../../components/text_length_counter'\n\nUC.views.JobsEdit = Backbone.View.extend({\n events: {\n 'change #job_Description' : 'handleDescriptionChange',\n 'click #btnEditSubmit' : 'handleEditClick'\n },\n\n initialize: function() {\n this.dataChanged = false;\n this.editSubmitBtnLoader = this.$('#btnEditSubmit').buttonLoader();\n this.$('#job_LegalSubjectId').select2();\n\n this.descriptionLengthCounter = new TextLengthCounter({\n el: this.$el,\n errorContainer: '.form-group',\n textarea: 'textarea.js-description-textarea',\n counter: '.js-description-length'\n })\n },\n\n handleEditClick: function(e) {\n e.preventDefault();\n\n if (UC.constants.reopen && !this.dataChanged){\n UC.utils.showValidationErrors(\n [{element: this.$el.find('#job_Description'), text: 'Please update the description'}],\n {className: 'form-group'}\n );\n } else { this.updateJob(); }\n },\n\n handleDescriptionChange: function(e) {\n if(UC.constants.reopen) { this.dataChanged = true }\n },\n\n updateJob: function() {\n var errors = [];\n var data = this.$('#edit_job_' + UC.job.id).serializeJSON();\n\n UC.utils.clearValidationErrors('form-group');\n\n if (!data.job.JobTitle) {\n errors.push({ element: this.$('#job_JobTitle'), text: 'Job title is required'});\n }\n\n if (!this.descriptionLengthCounter.hasValidTextLength()) {\n errors.push(this.descriptionLengthCounter.getError());\n }\n\n if (!data.job.JobTitle) {\n errors.push({ element: this.$('#job_LegalSubjectId'), text: 'Legal subject is required'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n } else {\n UC.utils.hideComponent(this.$('#btnCancelEditJob'));\n this.editSubmitBtnLoader.showLoader();\n if (UC.constants.reopen) data.reopen = true;\n\n UC.net.post('/job/update/' + UC.constants.jobId, data, function (response) {\n var defaultPath = '/jobs/' + UC.constants.jobId + '/proposals';\n location.href = UC.utils.getParameterByName(\"back\") || response.nextUrl || defaultPath;\n }).fail(function(res) {\n UC.utils.showComponent(this.$('#btnCancelEditJob'));\n this.editSubmitBtnLoader.hideLoader();\n UC.closeTheLoop.handleFailure(res, false);\n }.bind(this));\n }\n }\n});\n","UC.views.JobsIndex = Backbone.View.extend({\n\n events: {\n 'change #type': 'changeFilter',\n 'keypress #q': 'searchOnKeyPress',\n 'blur #q': 'searchOnFocusChange',\n },\n\n initialize: function() {\n this.$filter = this.$el.find('form#jobFilter');\n this.$filter.find('#type').select2({width: '100%'});\n this.$filter.submit(this.changeFilter.bind(this));\n\n this.jobsList = new UC.views.JobsList({\n el: '#job-list-container',\n eventNamePrefix: 'Jobs',\n updateUrl: '/jobs',\n filterParams: this.filterParams.bind(this),\n beforePaginate: this.pushState.bind(this)\n });\n\n this.$el.find('#learn-about-colors').tooltip({\n html: true,\n title: this.$el.find('#jobs-list-legend').html()\n }).click(function(e) {\n e.preventDefault();\n });\n\n if (window.history) {\n window.onpopstate = this.popState.bind(this);\n };\n\n this.jobsList.setPage(UC.utils.queryStringParams().page || 1);\n this.setState()\n },\n\n searchOnFocusChange: function(e) {\n this.changeFilter(e);\n },\n\n searchOnKeyPress: function(e) {\n if (e.key === 'Enter') {\n this.changeFilter(e);\n }\n },\n\n changeFilter: function(e) {\n e.preventDefault();\n this.jobsList.setPage(1);\n this.pushState();\n this.jobsList.render();\n },\n\n popState: function(e) {\n if (e.state) {\n this.jobsList.setPage(e.state.page);\n this.$filter.find(\"[name='q']\").val(e.state.q);\n this.$filter.find(\"[name='UserId']\").val(e.state.UserId);\n this.$filter.find(\"[name='type']\").val(e.state.type).trigger('change.select2');\n }\n\n this.jobsList.render();\n },\n \n pushState: function() {\n if (!window.history) return;\n var state = this.createState();\n window.history.pushState(state, '', state.url);\n },\n\n setState: function() {\n if (!window.history) return;\n var state = this.createState();\n window.history.replaceState(state, '', state.url);\n },\n\n createState: function() {\n var state = this.$filter.serializeJSON();\n state.page = this.jobsList.getPage();\n state.url = window.location.href;\n\n var encoded = encodeURIComponent(state.q).replace(/%20/g, '+');\n state.url = UC.utils.updateQueryStringParam(state.url, 'q', encoded);\n state.url = UC.utils.updateQueryStringParam(state.url, 'type', state.type);\n state.url = UC.utils.updateQueryStringParam(state.url, 'UserId', state.UserId);\n state.url = UC.utils.updateQueryStringParam(state.url, 'page', state.page);\n\n return state;\n },\n\n filterParams: function() {\n return this.$filter.serializeJSON(); \n }\n \n})\n","UC.views.JobsJobAdmin = Backbone.View.extend({\n events: {\n 'click #btnAddAdminNote' : 'btnAddAdminNoteClick'\n },\n\n initialize: function() {\n this.btnAddAdminNoteLoader = this.$('#btnAddAdminNote').buttonLoader();\n },\n\n btnAddAdminNoteClick: function(e) {\n var note = this.$('#txtAdminNotes').val();\n\n if (note === '') {\n alert('please provide a note');\n } else {\n this.btnAddAdminNoteLoader.showLoader();\n this.lastNote = note;\n this.postAdminNote(note, this.onAddAdminNote.bind(this));\n }\n },\n\n onAddAdminNote: function (res) {\n if (UC.constants.pageName === 'admin') {\n this.$('#adminNotes').prepend(noteLineItem({ forAdmin: true, note: this.lastNote }));\n this.$('#adminNotes').removeClass('hidden');\n\n this.$('#jo-messages').find('.jo-empty-msg').addClass('hidden');\n this.$('#jo-messages').scrollTop(0);\n }\n else {\n this.$('#adminNotes').append(noteLineItem({ note: this.lastNote }));\n }\n\n this.$('#txtAdminNotes').val('');\n this.showNotification(res.message, true);\n\n this.btnAddAdminNoteLoader.hideLoader();\n this.lastNote = '';\n\n function noteLineItem(opt) {\n if (opt.forAdmin) {\n var html = '
  • [{0}] {1}{2}
  • '\n return html.format(UC.user.name, moment().format('MM/DD/YYYY h:m:ss A'), opt.note);\n } else {\n var html = '

    {0}
    {1}

    '\n return html.format(moment().format('MM/DD/YYYY h:m:ss A'), opt.note);\n }\n }\n },\n\n postAdminNote: function (note, callback) {\n UC.net.post('/radmin/admin/jobs/{0}/add_note'.format(UC.constants.jobId), { note: note }, callback);\n },\n\n showNotification: function (message, success) {\n this.$('#panelNotification')\n .removeClass('red green')\n .addClass(success ? 'green' : 'red')\n .find('div')\n .html(message);\n\n UC.utils.showPanel(this.$('#panelNotification'));\n UC.utils.scrollToElement(this.$('#panelNotification'));\n }\n});\n","var _cancelScheduledCalls = function(id) {\n return UC.net.post('/scheduled_calls/{0}/cancel'.format(id));\n};\n\nvar _indexScheduledCalls = function() {\n return UC.net.get('/scheduled_calls?job_id={0}'.format(UC.job.id))\n}\n\nUC.views.JobOverviewScheduledCalls = Backbone.View.extend({\n template: UC.views.resolveHandlebarsTemplate(\"components/job_overview_scheduled_calls\"),\n\n events: {\n 'click .js-call-cancel': 'handleCancel',\n 'click .js-call-reschedule': 'handleReschedule'\n },\n\n routes: {\n proposalsPageLink: '/jobs/{0}/proposals',\n messagesPageLink: '/job/messagelist/{0}'\n },\n\n handleCancel: function(e) {\n var id = $(e.target).data('id')\n new UC.partials.ScheduledCallsCancel({\n scheduledCallId: id,\n callback: function(isConfirmed) {\n if (isConfirmed) {\n _cancelScheduledCalls(id).then(function(res) {\n this.refreshScheduledCallsList();\n }.bind(this))\n }\n }.bind(this)\n })\n },\n\n handleReschedule: function(e) {\n var dataset = e.target.dataset;\n var scheduledCallId = dataset.id;\n var jobId = dataset.jobId;\n var bidId = dataset.bidId;\n var attorneyId = dataset.attorneyId;\n var instantAvailable = dataset.instantAvailable === 'true';\n UC.CallHelpers.rescheduleCall(scheduledCallId, jobId, bidId, attorneyId, instantAvailable, this.handleSuccessfulReschedule.bind(this, scheduledCallId));\n },\n\n handleSuccessfulReschedule: function(scheduledCallId) {\n _cancelScheduledCalls(scheduledCallId).then(function(res) {\n location.reload();\n }.bind(this))\n },\n\n initialize: function(opts) {\n this.$el = opts.el;\n this.refreshScheduledCallsList();\n var jobId = UC.job.id;\n this.proposalsPageLink = this.routes.proposalsPageLink.format(jobId)\n this.messagesPageLink = this.routes.messagesPageLink.format(jobId)\n },\n\n _formatData: function(scheduledCall) {\n scheduledCall.isScheduled = scheduledCall.Status === 'scheduled'\n scheduledCall.isPending = scheduledCall.Status === 'pending'\n return scheduledCall\n },\n\n refreshScheduledCallsList: function() {\n return _indexScheduledCalls()\n .done(function(res) {\n this.scheduledCalls = res.scheduled_calls.map(this._formatData);\n this.isEmptyState = this.scheduledCalls.length === 0;\n this.render();\n }.bind(this))\n .fail(function() {\n this.render();\n }.bind(this));\n },\n\n render: function() {\n this.$el.html(this.template(this));\n return this;\n }\n});\n","!function() {\n\n UC.views.JobManageCog = Backbone.View.extend({\n\n templateContactAttorneyModal: UC.views.resolveHandlebarsTemplate('public/jobs/modal_message_attorney'),\n\n events: {\n 'click #btnStopProposals': 'btnStopProposalsClick',\n 'click #btnCancelJob': 'btnCancelJobClick',\n 'click #btnRemoveJob': 'btnRemoveJobClick',\n 'click #btnMessageMyAttorney': 'btnMessageMyAttorneyClick',\n 'click #btnEditJobTitle': 'btnEditJobTitle',\n 'click #btnInviteNow': 'btnInviteNow',\n 'click #btnMoveReady': 'btnMoveReady',\n 'click #btnSkip': 'btnSkip'\n },\n\n initialize: function(options) {\n this.data = {};\n this.jobId = options.jobId || this.$el.data('id');\n this.jobStatus = options.jobStatus || this.$el.data('status');\n this.onBtnEditJobTitle = options.onBtnEditJobTitle;\n this.onBtnInviteNow = options.onBtnInviteNow;\n this.onBtnMoveReady = options.onBtnMoveReady;\n this.onBtnSkip = options.onBtnSkip;\n\n this.statusChangeView = new UC.views.JobsModalChangeStatus({\n jobId: this.jobId,\n jobStatus: this.jobStatus,\n redirectAfterSave: options.redirectAfterSave,\n statusChangeCallback: options.statusChangeCallback\n });\n\n if (UC.constants.showCancelJobModalOnPageLoad) {\n this.openCancelJobModal();\n }\n\n $('body').on('userCancelJobClick', this.openCancelJobModal.bind(this));\n },\n\n btnEditJobTitle: function(e) {\n this.onBtnEditJobTitle(e);\n },\n\n btnInviteNow: function(e) {\n this.onBtnInviteNow(e);\n },\n\n btnMoveReady: function(e) {\n this.onBtnMoveReady(e);\n },\n\n btnSkip: function(e) {\n this.onBtnSkip(e);\n },\n\n btnStopProposalsClick: function (e) {\n e.preventDefault();\n\n if (this.jobStatus != UC.constants.JobStatus.Open) {\n UC.utils.showNotification('Only Open jobs can be changed to the Bidding Closed status. This job is not eligible to be updated as Bidding Closed.', UC.constants.results.failure);\n } else {\n this.statusChangeView.markBiddingClosed();\n }\n },\n\n btnCancelJobClick: function(e) {\n e.preventDefault();\n this.openCancelJobModal();\n },\n\n openCancelJobModal: function() {\n if (this.jobStatus == UC.constants.JobStatus.Open || this.jobStatus == UC.constants.JobStatus.BiddingClosed || UC.user.is_admin) {\n this.statusChangeView.markCanceled();\n } else {\n UC.utils.showNotification('Only Open jobs can be changed to the Abandoned status. This job is not eligible to be updated as Abandoned.', false);\n }\n },\n\n btnRemoveJobClick: function(e) {\n e.preventDefault();\n\n if (this.jobStatus != UC.constants.JobStatus.Removed && UC.user.is_admin) {\n this.statusChangeView.markRemoved();\n } else {\n UC.utils.showNotification('This job may not be removed.', false);\n }\n },\n\n btnMessageMyAttorneyClick: function(e) {\n e.preventDefault();\n this.data.jobAttorneyId = $(e.target).data('aid');\n\n if (this.data.jobAttorneyId) {\n var $modal = $('#modalMessageAttorney');\n if (!$modal.length) {\n $('body').append(this.templateContactAttorneyModal());\n $modal = $('#modalMessageAttorney');\n $modal.find('#btnSendContactMessage').on('click', function(e) {\n this.btnSendContactMessageClick(e);\n }.bind(this));\n }\n\n $modal.modal('show');\n }\n\n UC.utils.recordKissEvent('Job Page: Bid Actions - Send Message Click');\n },\n\n btnSendContactMessageClick: function(e) {\n var $modal = $('#modalMessageAttorney');\n var message = $modal.find('#txtContactMessage').val();\n var loader = $modal.find('#btnSendContactMessage').buttonLoader();\n\n if (message !== '') {\n loader.showLoader();\n this.sendAttorneyMessage(message, function(result) {\n UC.utils.showNotification(result.message, UC.constants.results.success);\n $modal.modal('hide');\n $modal.find('#txtContactMessage').val('');\n loader.hideLoader();\n }.bind(this)).fail(function() { loader.hideLoader(); });\n }\n },\n\n sendAttorneyMessage: function(message, callback) {\n var data = {\n message: {\n JobId: this.jobId,\n Message: message\n }\n };\n\n return UC.net.post('/attorney/contact/{0}'.format(this.data.jobAttorneyId), data, callback);\n }\n });\n}();\n","!function() {\n\n UC.views.JobsMatchAttorneys = Backbone.View.extend({\n\n initialize: function() {\n this.$title = this.$('#match-attorneys-title');\n this.$slides = this.$('.match-attorneys-slide');\n\n this.prepareAnimation();\n },\n\n prepareAnimation: function() {\n\n // turn into real array\n var slides = $.map(this.$slides.toArray(), function(slide) {\n // turn raw dom element back into jQuery object\n return $(slide);\n });\n\n var first_slide = slides[0];\n\n if (first_slide.get(0).complete) {\n this.startAnimation(slides);\n } else {\n first_slide.on('load', function() {\n this.startAnimation(slides);\n }.bind(this));\n }\n },\n\n startAnimation: function(slides) {\n\n // show the first slide\n slides[0].removeClass('hide');\n\n // need a zero timeout here to function properly\n setTimeout(function() {\n this.animateSlides(slides, function() {\n // finished\n var route = '/job/find_intro/{0}'.format(UC.constants.jobId);\n\n UC.net.get(route, function(data) { window.location.href = data.nextUrl })\n });\n }.bind(this), 0);\n },\n\n animateSlides: function(slides, callback) {\n var $slide = slides.shift();\n\n if ($slide && $slide.length > 0) {\n var title = $slide.attr('alt');\n\n // update page title\n if (title) {\n this.$title.text($slide.attr('alt'));\n }\n\n // hide all slides\n this.$slides.addClass('hide');\n\n // show next slide\n $slide.removeClass('hide');\n\n setTimeout(function() {\n this.animateSlides(slides, callback);\n }.bind(this), $slide.data('timeout'));\n } else {\n callback();\n }\n }\n });\n\n}();\n","import '../proposals/accept_proposal'\n\nUC.views.JobsMessageThread = Backbone.View.extend({\n events: {\n 'click #js-schedule-call' : 'scheduleCall',\n 'click .cancel-sched-call' : 'cancelCall',\n 'click .btn-schedule-call-reply' : 'replyCall',\n 'click .jp-send-message' : 'sendMessage',\n 'click .js-copy-share-btn': 'handleCopyShare'\n },\n\n initialize: function() {\n new UC.partials.MessagesCreate({\n jobOwnerId: UC.constants.jobOwnerId,\n attorneyId: UC.constants.attorneyId,\n jobId: UC.constants.jobId\n });\n\n UC.acceptJobProposal.init({\n acceptProposalButtonSelector: '#btnHire',\n jobId: UC.constants.jobId,\n hideHireHelpModal: UC.constants.hideHireHelpModal\n });\n\n UC.utils.sendNesEvent('message_thread_viewed', {\n location: 'job_portal',\n thread_id: UC.constants.threadId,\n unread: UC.constants.unread\n });\n\n new UC.components.FeesPopover({ el: this.$el });\n\n this.$('#btnSendReply').buttonLoader();\n\n this.queryParamsForScheduledCallReply();\n\n this.scrollToElement(location.hash);\n },\n\n sendMessage: function(e) {\n e.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n new UC.modals.ModalPendingUser().render(\n 'Please confirm your email address before sending a message'\n );\n\n return false;\n }\n\n var attorneyId = $(e.currentTarget).data('attorney-id');\n this.openMessageModal(attorneyId);\n },\n\n handleCopyShare: function() {\n document.querySelector('.copy-share-calendar-url').select();\n document.execCommand('copy');\n\n UC.utils.sendNesEvent('attorney_calendar_copy_url_clicked', { attorney_id: UC.user.id });\n\n this.$('.js-copy-share-btn').fadeOut(function() {\n $(this).text('Copied').addClass('text-green').fadeIn('slow');\n });\n },\n\n openMessageModal: function(attorneyId) {\n this.$('#lblAttorneyName').text('attorney');\n\n UC.utils.showModal(this.$('#modalContactAttorney'));\n },\n\n scrollToElement: function(scrollLocation) {\n if (scrollLocation === '#reply') {\n UC.utils.scrollToElement(this.$('#panelReply'));\n\n this.$('#txtReplyMessage').focus();\n }\n },\n\n queryParamsForScheduledCallReply: function() {\n var action = UC.utils.getParameterByName('a');\n\n if (UC.utils.getParameterByName('scheduled_call_reply') || action === 'scheduled_call_reply') {\n var id = this.$('.btn-schedule-call-reply:enabled').last().data('id');\n\n if (id) {\n new UC.modals.ScheduledCallsShow({\n scheduled_call_id: id, callback: this.renderScheduledCallMessage\n }).render();\n }\n }\n },\n\n replyCall: function(e) {\n e.preventDefault();\n\n new UC.modals.ScheduledCallsShow({\n scheduled_call_id: $(e.target).data('id'),\n callback: this.renderScheduledCallMessage\n }).render();\n },\n\n renderScheduledCallMessage: function(result) {\n var summary = \"Sent via 'Schedule phone call'\";\n var messages = new UC.partials.MessagesCreate();\n var template = messages.addMessageToThread(result.message, null, 'sender');\n\n template.find('.message-sent-wrapper').html(summary);\n },\n\n scheduleCall: function (event) {\n event.preventDefault();\n\n var data = event.target.dataset;\n\n var attorneyId = data.attorneyId;\n var jobId = data.jobId;\n var bidId = data.bidId;\n var instantAvailable = data.instantAvailable === \"true\";\n\n if (instantAvailable) {\n new UC.partials.ScheduledCallsInstant({\n attorneyId: attorneyId,\n jobId: jobId,\n bidId: bidId,\n onSuccessfulSchedule: this.onSuccessfulSchedule\n }).goHam();\n } else {\n new UC.modals.ScheduledCallsNew({\n attorney_id: attorneyId, onRequest: this.onSuccessfulSchedule\n }).render();\n }\n },\n\n cancelCall: function (event) {\n event.preventDefault();\n\n var scheduledCallId = event.target.dataset['scheduledCallId'];\n new UC.partials.ScheduledCallsCancel({ scheduledCallId: scheduledCallId });\n },\n\n onSuccessfulSchedule: function () {\n location.reload();\n }\n});\n","!function () {\n\n UC.views.JobsModalChangeStatus = Backbone.View.extend({\n\n templateStatusChangeModal: UC.views.resolveHandlebarsTemplate('public/jobs/modal_change_status'),\n\n initialize: function (options) {\n this.jobId = options.jobId;\n this.jobStatus = options.jobStatus;\n this.redirectAfterSave = options.redirectAfterSave;\n this.statusChangeCallback = options.statusChangeCallback;\n },\n\n markBiddingClosed: function () {\n this.showStatusChangeModal({\n title: 'Change Bidding Options?',\n subtitle: 'Limit project to current proposals.',\n btnText: 'Okay, Close Bidding',\n status: UC.constants.JobStatus.BiddingClosed\n });\n\n this.$statusModal.find('#showMarkCanceled').click(function (e) {\n e.preventDefault();\n this.markCanceled();\n }.bind(this));\n },\n\n markCanceled: function () {\n this.showStatusChangeModal({\n title: 'Cancel Your Job',\n subtitle: 'Cancel your job if you do not plan to hire an attorney.',\n reasonsLabel: 'Why are you cancelling your job?',\n reasons: UC.constants.jobAbandonReasons,\n btnText: 'Okay, Cancel This Job',\n status: UC.constants.JobStatus.Abandoned\n });\n },\n\n markRemoved: function () {\n this.showStatusChangeModal({\n title: 'Remove Job',\n btnText: 'Okay, Remove This Job',\n reasonsLabel: 'Why are you removing this job?',\n reasons: UC.constants.jobRemoveReasons,\n status: UC.constants.JobStatus.Removed\n });\n },\n\n showStatusChangeModal: function (options) {\n var that = this;\n\n options.admin = UC.user.is_admin;\n options.cancel = (options.status == UC.constants.JobStatus.Abandoned);\n options.remove = (options.status == UC.constants.JobStatus.Removed);\n options.closeBidding = (options.status == UC.constants.JobStatus.BiddingClosed);\n options.reopenCheck = (UC.user.is_admin && this.jobStatus != UC.constants.JobStatus.WorkInProgress && this.jobStatus != UC.constants.JobStatus.PaymentRequested);\n\n this.$statusModal = $(this.templateStatusChangeModal(options));\n this.$statusModal.find('#btnChangeJobStatus').on('click', function (e) {\n that.btnChangeStatusClick(e);\n });\n if (options.cancel) {\n this.$statusModal.find('#selectReason').on('change', function (e) {\n that.toggleReasonExplain(e);\n });\n } else if (options.remove) {\n this.$statusModal.find('#selectReason').on('change', function (e) {\n that.enforceClientReopenability(e);\n });\n }\n\n this.loader = this.$statusModal.find('#btnChangeJobStatus').buttonLoader();\n\n // remove the modal completely when we're done\n this.$statusModal.modal();\n this.$statusModal.on('hidden.bs.modal', function () {\n $(this).remove();\n });\n\n if (options.admin && options.remove) {\n this.$statusModal.find('#rowReasonExplain').removeClass('hidden');\n }\n },\n\n btnChangeStatusClick: function (e) {\n e.preventDefault();\n\n var status = this.$statusModal.find('#btnChangeJobStatus').data('status'),\n reason_id = null,\n reason_text = null,\n require_reason = false,\n $selectReason = this.$statusModal.find('#selectReason');\n\n switch (status) {\n case UC.constants.JobStatus.Abandoned:\n reason_id = $selectReason.val();\n break;\n case UC.constants.JobStatus.Removed: // currently admins only\n reason_id = $selectReason.val();\n require_reason = true;\n break;\n }\n\n reason_text = this.$statusModal.find('#txtReasonExplain').val();\n var $errorMsg = this.$statusModal.find('#selectReasonErrorMsg');\n if (require_reason && !reason_id) {\n $errorMsg.text('Please select a reason.');\n $errorMsg.closest('.form-group').addClass('has-error');\n return false;\n } else {\n $errorMsg.text('');\n $errorMsg.closest('.form-group').removeClass('has-error');\n }\n\n this.changeStatus(status, {\n id: reason_id,\n text: reason_text\n });\n },\n\n changeStatus: function (status, reason_obj) {\n var url = '/job/change_status/{0}'.format(this.jobId),\n $cancel = this.$statusModal.find('.jqmClose'),\n $chkSendEmail = this.$statusModal.find('#chkSendEmail'),\n $chkReopenable = this.$statusModal.find('#chkReopenable');\n\n var data = {\n status: status,\n reason: reason_obj,\n send_email: false,\n reopenable: true\n };\n\n if ($chkSendEmail.length > 0) {\n data.send_email = $chkSendEmail.is(':checked');\n }\n\n if ($chkReopenable.length > 0) {\n data.reopenable = $chkReopenable.is(':checked');\n } else if (this.jobStatus == UC.constants.JobStatus.WorkInProgress || this.jobStatus == UC.constants.JobStatus.PaymentRequested) {\n data.reopenable = false;\n }\n\n this.loader.showLoader();\n\n UC.net.post(url, data, $.proxy(function (err, data) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n $cancel.modal();\n this.loader.hideLoader();\n } else {\n\n if (this.redirectAfterSave === false) {\n UC.utils.showNotification(data.message, UC.constants.results.success);\n this.$statusModal.modal('hide');\n if (typeof this.statusChangeCallback === 'function') {\n this.statusChangeCallback(data);\n }\n } else {\n window.location.href = data.url;\n }\n }\n }, this));\n },\n\n enforceClientReopenability: function (e) {\n var $el = $(e.target),\n isReopenable = $el.find('option:selected').data('reopenable'),\n reopenableCheckbox = this.$statusModal.find('#chkReopenable');\n\n reopenableCheckbox.prop('checked', isReopenable);\n reopenableCheckbox.prop('disabled', !isReopenable);\n },\n\n toggleReasonExplain: function (e) {\n var $el = $(e.target);\n\n if ($el.find('option:selected').text() == 'Other') {\n this.$statusModal.find('#rowReasonExplain').removeClass('hidden');\n } else {\n this.$statusModal.find('#rowReasonExplain').addClass('hidden');\n }\n }\n });\n\n}();\n","UC.views.JobsNew = Backbone.View.extend({\n\n initialize: function() {\n const viewOptions = {el: '#content'};\n if (UC.constants.pajVersion === 'v7') {\n new UC.partials.V7PAJ(viewOptions);\n } else if (UC.constants.pajVersion === 'v6') {\n new UC.partials.V6PAJ(viewOptions);\n } else if (UC.constants.pajVersion === 'v5') {\n new UC.partials.V5PAJ(viewOptions);\n } else {\n new UC.partials.V4PAJ(viewOptions);\n }\n }\n\n});\n","UC.views.JobsOverview = Backbone.View.extend({\n events: {\n 'click #reveal-email-address' : 'showEmailAddress',\n 'click #open-job-to-pub-mktplce-btn': 'openJobToPubMktplceBtnClick',\n 'click #close-job': 'closeJobClick',\n 'click #btnContactAttorney': 'contactAttorneyClickHandler',\n 'click #btnContactAttorneyCancel': 'contactAttorneyCancelClickHandler',\n 'click #btnContactAttorneySend': 'contactAttorneySendClickHandler',\n 'click .take-a-tour': 'takeATourClickHandler',\n 'click .reopen-job-button': 'reopenJobClickHandler'\n },\n\n initialize: function() {\n if(this.$el.find('.js-PaidConsultationOverview').length) {\n new UC.partials.OverviewForPaidConsultation({ el: '.js-PaidConsultationOverview' });\n } else {\n this.openJobToPubMktplceBtnLoader = $('#open-job-to-pub-mktplce-btn').buttonLoader();\n $('[data-toggle=\"popover\"]').popover();\n }\n\n $(\".jo-box:nth-child(odd)\").addClass('jo-box-odd');\n\n var JobOverviewScheduledCallsElement = this.$('.js-overview-calls')\n if (JobOverviewScheduledCallsElement.length) {\n new UC.views.JobOverviewScheduledCalls({\n el: JobOverviewScheduledCallsElement\n })\n }\n\n this.initializeRatingDimensions();\n },\n\n reopenJobClickHandler: function(e) {\n e.preventDefault();\n\n var $reopenButton = $(e.currentTarget);\n var url = $reopenButton.attr('href');\n var requestAdditionalProposals = $reopenButton.data('requestAdditionalProposals');\n var $buttonLoader = $reopenButton.buttonLoader();\n\n $buttonLoader.showLoader();\n\n UC.net.post(\n url,\n { currentPage: UC.constants.pageName, requestAdditionalProposals: requestAdditionalProposals },\n function(err, res) {\n if (err) {\n $buttonLoader.hideLoader();\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n }\n );\n },\n\n initializeRatingDimensions: function() {\n if (this.$('#ratingDimensions').length > 0) {\n new UC.partials.ReviewsForm({ el: '#jobBoxReview' });\n } else {\n UC.utils.initRatingDimensions();\n $('.rate-star').starate();\n }\n },\n\n takeATourClickHandler: function(e) {\n e.preventDefault();\n\n this.$('#modalJobIntro').modal('hide');\n\n new UC.partials.takeATour();\n },\n\n contactAttorneyClickHandler: function(e) {\n e.preventDefault();\n\n this.$('#jobBoxAttorneyInfo').addClass('active');\n },\n\n contactAttorneyCancelClickHandler: function(e) {\n e.preventDefault();\n\n this.hideContactAttorneyNotificationPanel();\n this.$('#jobBoxAttorneyInfo').removeClass('active');\n },\n\n contactAttorneySendClickHandler: function(e) {\n e.preventDefault();\n\n this.hideContactAttorneyNotificationPanel();\n var message = this.$('#txtContactAttorney').val();\n\n if (message === '') {\n this.showContactAttorneyNotificationPanel('Please provide a message', false);\n } else {\n sendMessage(message, function(data) {\n this.showContactAttorneyNotificationPanel(data.message, true);\n this.$('#jobBoxAttorneyInfo').removeClass('active');\n }.bind(this));\n }\n\n function sendMessage(message, callback) {\n var attorneyId = this.$('.jo-contact-form').attr('id');\n var data = { message: { JobId: UC.constants.jobId, Message: message } };\n\n UC.net.post('/attorney/contact/{0}'.format(attorneyId), data, callback);\n }\n },\n\n showContactAttorneyNotificationPanel: function(message, isSuccess) {\n var $notificationPanel = this.$('#panelContactAttorneyNotification');\n\n $notificationPanel\n .removeClass('red green')\n .addClass(isSuccess ? 'green' : 'red')\n .find('p')\n .html(message);\n\n UC.utils.showPanel($notificationPanel);\n },\n\n hideContactAttorneyNotificationPanel: function() {\n var $notificationPanel = this.$('#panelContactAttorneyNotification');\n $notificationPanel.removeClass('red green').find('p').html('');\n UC.utils.hidePanel($notificationPanel);\n },\n\n showEmailAddress: function(e) {\n e.preventDefault();\n $('#attorney-email-address').removeClass('hidden');\n $('#reveal-email-address').addClass('hidden');\n },\n\n openJobToPubMktplceBtnClick: function(e) {\n e.preventDefault();\n this.convertJobToPublicMarketplace();\n },\n\n convertJobToPublicMarketplace: function() {\n this.openJobToPubMktplceBtnLoader.showLoader();\n UC.net.post('/job/convert_to_public_marketplace/{0}'.format(UC.job.id))\n .done(function() {\n location.reload();\n })\n .fail(function() {\n this.openJobToPubMktplceBtnLoader.hideLoader();\n });\n },\n\n closeJobClick: function(e) {\n e.preventDefault();\n $(e.currentTarget).trigger('userCancelJobClick');\n }\n});\n","!function() {\n\n UC.views.JobsProposals = Backbone.View.extend({\n\n events: {\n 'click #no-props-close-job' : 'onClickedNoPropsCloseJob',\n 'click #request-more-bids' : 'onRequestMoreBidsClick',\n 'click #proposals-tabs .btn': 'toggleProposalsTab',\n 'click .jp-invite-btn': 'openInviteModal'\n },\n\n initialize: function() {\n this.requestMoreBidsButtonLoader = $('#request-more-bids').buttonLoader();\n $('body').on('proposalDeclined', this.onProposalDeclined.bind(this));\n if (UC.constants.showImmediateBiddingRetractNotification) this.showImmediateBiddingRetractNotification();\n UC.utils.initRatingDimensions('.jp-reviews');\n\n $('.jp-invite-btn').tooltip({\n trigger: 'hover',\n title: 'Ask this lawyer to submit a proposal for your project. You may request proposals from more than one lawyer.'\n });\n\n $('#proposals-tabs a[href=\"#suggested\"]').tooltip({\n trigger: 'hover',\n container: 'body',\n placement: 'bottom',\n title: 'Lawyers who have completed projects like yours.'\n });\n\n $('#proposals-tabs a[href=\"#proposals\"]').tooltip({\n trigger: 'hover',\n container: 'body',\n placement: 'bottom',\n title: 'Proposals from lawyers who want to work with you.'\n });\n\n this.initProposalRows();\n },\n\n toggleProposalsTab: function(e) {\n e.preventDefault();\n var $btn = $(e.currentTarget);\n $btn.parent().find('.active').removeClass('active');\n $btn.addClass('active');\n\n UC.utils.recordKissEvent('suggested_attorneys_tab_changed', {\n tab: $btn.text().trim()\n });\n },\n\n openInviteModal: function(e) {\n e.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n var $modal = $('#modalPendingUser');\n var message = 'Please confirm your email address before requesting a proposal';\n $modal.find('h4.modal-title').text(message);\n $modal.modal();\n return false;\n }\n\n var $btn = $(e.currentTarget);\n var $proposal = $btn.closest('.jp-single');\n var attorney_id = $btn.data('attorney-id');\n\n new UC.partials.JobsModalRequestInvite({\n attorney_id: attorney_id,\n attorney_first_name: $btn.data('attorney-first-name'),\n callback: function() {\n $btn.parent().addClass('hide');\n $proposal.find('.jp-invited-btn').parent().removeClass('hide');\n }\n }).render();\n\n UC.utils.recordKissEvent('suggested_attorneys_request_clicked', {\n attorney_id: attorney_id\n });\n },\n\n onClickedNoPropsCloseJob: function(e) {\n e.preventDefault();\n $(e.currentTarget).trigger('userCancelJobClick');\n },\n\n onRequestMoreBidsClick: function(e) {\n e.preventDefault();\n this.requestMoreBidsButtonLoader.showLoader();\n\n UC.net.post('/job/{0}/immediate_bidding_request_proposals'.format(UC.job.id), {})\n .done(function() {\n // A redirect should be triggered by a global handler\n })\n .fail(function() {\n this.requestMoreBidsButtonLoader.hideLoader();\n }.bind(this));\n },\n\n onProposalDeclined: function(e) {\n if (!$('.jp-single').hasClass('submitted')) {\n $('#request-addl-proposals-container').removeClass('hidden');\n }\n },\n\n showImmediateBiddingRetractNotification: function() {\n UC.utils.showNotification(\"Some of the suggested lawyers are unable to work on your project. We have invited additional attorneys to submit proposals, and you will be able to review these proposals soon.\", null, 0);\n UC.utils.recordKissEvent('immediate_bidding_retract_notification_shown', {\n loc: 'job_proposals_page'\n });\n },\n\n initProposalRows: function() {\n this.$('.jp-single').each(function(i, elem) {\n new UC.partials.ProposalRow({\n el: elem,\n showMore: true\n })\n });\n }\n })\n\n}();\n","!function() {\n\n UC.views.JobsTimesheet = Backbone.View.extend({\n\n events: {\n 'click #js-current-timesheets-tab' : 'renderCurrentTab',\n 'click #js-invoiced-timesheets-tab' : 'renderInvoicedTab'\n },\n\n initialize: function() {\n this.tab = UC.utils.getParameterByName('tab') == UC.views.JobsTimesheet.invoicedTab ? UC.views.JobsTimesheet.invoicedTab : UC.views.JobsTimesheet.currentTab;\n this.retrieveData();\n },\n\n renderCurrentTab: function () {\n this.tab = UC.views.JobsTimesheet.currentTab;\n this.retrieveData();\n },\n\n renderInvoicedTab: function () {\n this.tab = UC.views.JobsTimesheet.invoicedTab;\n this.retrieveData();\n },\n\n isTabCurrentTimesheets: function () {\n return this.tab != UC.views.JobsTimesheet.invoicedTab;\n },\n\n retrieveData: function() {\n var options = { jobId: UC.job.id };\n if (this.isTabCurrentTimesheets()) {\n options.filterOptions = { current_line_items: true };\n } else {\n options.invoiced = true;\n }\n\n this.collection = new UC.timesheetComponent.TimesheetLineItems(null, options);\n\n this.renderTab();\n },\n\n renderTab: function() {\n history.pushState({}, 'ts_entries', '?tab=' + this.tab);\n\n this.timesheetTableView = new UC.timesheetComponent.TimesheetTableView({\n collection: this.collection,\n allowNewTimesheetLines: true,\n showDeleteColumn: true,\n showTypeSelect: true,\n allowNewTimesheetLines: this.isTabCurrentTimesheets(),\n showDeleteColumn: this.isTabCurrentTimesheets(),\n tab: this.tab\n });\n $('#timesheet-line-item-container').html(this.timesheetTableView.$el);\n\n this.timesheetTotalsView = new UC.timesheetComponent.TimesheetTotalsView({ collection: this.collection });\n this.timesheetTotalsView.render();\n $('#timesheet-totals-container').html(this.timesheetTotalsView.$el);\n\n if (this.isTabCurrentTimesheets()) {\n this.createTimesheetInvoiceButtonView = new UC.timesheetComponent.CreateTimesheetInvoiceButtonView({\n collection: this.collection\n });\n\n this.createTimesheetInvoiceButtonView.render();\n $('#create-ts-inv-btn-container').html(this.createTimesheetInvoiceButtonView.$el);\n } else {\n $('#create-ts-inv-btn-container').empty();\n }\n\n this.timesheetTabsView = new UC.timesheetComponent.TimesheetTabsView({ tab: this.tab, currentTab: UC.views.JobsTimesheet.currentTab });\n this.timesheetTabsView.render();\n $('#timesheet-tabs-container').html(this.timesheetTabsView.$el);\n\n this.collection.on('reset', this.render.bind(this));\n },\n\n introHtml: function() {\n return UC.views.resolveHandlebarsTemplate(\"components/timesheets/timesheet_intro\")();\n },\n \n render: function() {\n if (this.collection.showIntro) this.$('#timesheet-intro-container').html(this.introHtml());\n }\n },\n {\n currentTab: 'current',\n invoicedTab: 'invoiced'\n });\n}();\n","UC.views.JobsList = Backbone.View.extend({\n\n events: {\n 'click .js-job-item .job-item-bookmark': 'toggleBookmark',\n 'click .job-item-show-hide': 'toggleJobVisibility',\n 'click .archiveJob': 'archive',\n 'click .job-item-link': 'trackJobClick',\n 'click .js-job-item-link': 'trackJobClick',\n 'click .js-submit-first-proposal-link': 'trackJobClick',\n 'click .shown-min': 'trackShowMoreClick',\n 'click .editJob': 'visitEditJob',\n 'click .nav-tabs li a': 'changeTab',\n 'click .pagination a': 'paginate',\n 'mouseenter .detailed-job-item': 'showViewJobLink',\n 'mouseleave .detailed-job-item': 'hideViewJobLink'\n },\n\n initialize: function(options) {\n this.updateUrl = options.updateUrl;\n this.filterParams = options.filterParams;\n this.updateMethod = options.updateMethod;\n this.additionalRenderCallback = options.renderCallback;\n this.beforePaginate = options.beforePaginate;\n\n if (options.eventNamePrefix) {\n this.eventNamePrefix = options.eventNamePrefix\n } else {\n this.eventNamePrefix = UC.controller.charAt(0).toUpperCase() + UC.controller.slice(1);\n }\n\n this.current_type = options.currentType || this.$el.find('.nav-tabs li.active a').data('type');\n \n this.initThings();\n\n this.$el.find('#learn-about-colors').tooltip({\n html: true,\n title: this.$el.find('#jobs-list-legend').html()\n }).click(function(e) {\n e.preventDefault();\n });\n },\n\n initThings: function() {\n this.initJobCogs(this.$el.find('.job-item'));\n $('[data-toggle=\"tooltip\"]').tooltip();\n\n if (UC.utils.isDesktopViewPort()) {\n this.$('.js-desktop-tooltip').tooltip();\n }\n \n var archiveEventName = this.eventNamePrefix + ' - Archive Job Click';\n var manageCogEventName = this.eventNamePrefix + ' - Mangage Job Click';\n var manageItemEventName = this.eventNamePrefix + ' - Mangage Item Click';\n\n UC.utils.recordKissClickEvent('.archiveJob', archiveEventName, {type: UC.user.type});\n UC.utils.recordKissClickEvent('.btnJobActions', manageCogEventName, {type: UC.user.type});\n\n $('#jobActionsList a').click(function(e){\n UC.utils.handleGenericClick($(this), manageItemEventName);\n });\n\n var truncateLength = 280;\n if (!UC.utils.isDesktopViewPort()) {\n truncateLength = 180;\n $('.view-job-button').removeClass('hidden');\n }\n\n $(\".detailed-job-description\").truncateToggleMultiple({\n truncateLength: truncateLength,\n moreText: 'Read More',\n lessText: 'Read Less'\n });\n },\n\n visitEditJob: function(e) {\n e.preventDefault();\n location.href = $(e.currentTarget).attr('url');\n },\n\n trackJobClick: function(e) {\n var $jobItem = $(e.currentTarget);\n var jobItemData = $jobItem.data();\n var eventName = this.eventNamePrefix + ' - Job Item Click';\n\n UC.utils.recordKissEvent(eventName, {\n type: UC.user.type,\n tab: this.current_type,\n jobId: $jobItem.parent().data().jobId,\n topLabel: jobItemData.topLabel,\n invitedLabel: jobItemData.invitedLabel,\n recommendedLabel: jobItemData.recommendedLabel,\n repeatClientTest: jobItemData.repeatClientTest\n });\n },\n\n trackShowMoreClick: function(e) {\n var $jobItem = $(e.currentTarget);\n var jobItemData = $jobItem.parent().data();\n var eventName = this.eventNamePrefix + ' - Show More Description Click';\n var attrs = {\n type: UC.user.type,\n tab: this.current_type,\n jobId: jobItemData.jobId,\n topLabel: jobItemData.topLabel,\n invitedLabel: jobItemData.invitedLabel,\n recommendedLabel: jobItemData.recommendedLabel,\n repeatClientTest: jobItemData.repeatClientTest\n };\n\n UC.utils.recordKissEvent(eventName, attrs);\n },\n\n replaceJobItem: function(data) {\n var $existing = $('.job-item.{0}'.format(data.jobId));\n var $new_item = $(data.html);\n $existing.replaceWith($new_item);\n this.initJobCogs($new_item);\n },\n\n initJobCogs: function($items) {\n $items.find('.manage-job-cog').each(function(i, cog) {\n var $cog = $(cog);\n var view = new UC.views.JobManageCog({\n el: $cog,\n redirectAfterSave: false,\n statusChangeCallback: this.replaceJobItem.bind(this)\n });\n }.bind(this));\n },\n\n toggleBookmark: function(e) {\n e.preventDefault();\n\n var $el = $(e.currentTarget);\n var $item = $el.closest('.js-job-item');\n var job_id = $item.data('job-id');\n var is_bookmarked = $el.hasClass('icon-bookmark-1');\n\n $el.tooltip('hide');\n\n if (is_bookmarked) {\n $el.removeClass('icon-bookmark-1');\n $el.addClass('icon-bookmark-empty');\n $el.attr('data-original-title', 'Bookmark this job');\n } else {\n $el.removeClass('icon-bookmark-empty');\n $el.addClass('icon-bookmark-1');\n $el.attr('data-original-title', 'Unbookmark this job');\n }\n\n $el.tooltip('fixTitle');\n\n UC.net.post('job/bookmark/{0}'.format(job_id), { bookmark: !is_bookmarked });\n UC.utils.sendNesEvent('bookmark_job_clicked', {job_id: job_id, bookmark: !is_bookmarked});\n },\n\n toggleJobVisibility: function(e) {\n e.preventDefault();\n\n var $item = $(e.currentTarget).closest('.js-job-item');\n var jobId = $item.data('job-id');\n var $icon = $item.find('.job-item-show-hide');\n var isHidden = $icon.hasClass('glyphicon-eye-open');\n var self = this;\n var needsRender = this.filterParams()['open'] !== 'all';\n $icon.tooltip('hide');\n\n UC.net.post('/job/marketplace_visibility/{0}'.format(jobId), { visible: isHidden }, function() {\n if (isHidden) {\n $icon.attr('data-original-title', $icon.attr('data-tooltip-hide'));\n $icon.addClass('glyphicon-eye-close').removeClass('glyphicon-eye-open');\n } else {\n if (needsRender) {\n $item.remove();\n } else {\n $icon.attr('data-original-title', $icon.attr('data-tooltip-show'));\n $icon.addClass('glyphicon-eye-open').removeClass('glyphicon-eye-close');\n }\n }\n if (needsRender) {\n self.render();\n }\n });\n },\n\n toggleDescription: function(e) {\n e.preventDefault();\n\n var $el = $(e.currentTarget);\n var $text = $el.find('.detailed-job-description');\n\n $text.truncateToggle({\n truncateLength: 280,\n moreText: 'Read More',\n lessText: 'Read Less',\n toggleClass: 'truncated'\n });\n },\n\n showViewJobLink: function(e) {\n e.preventDefault();\n\n var $el = $(e.currentTarget);\n var $link = $el.find('.detailed-job-item-link');\n\n $link.removeClass('hidden');\n },\n\n hideViewJobLink: function(e) {\n e.preventDefault();\n\n if (!UC.utils.isDesktopViewPort()) {\n // always show on mobile/iPad\n return;\n }\n\n var $el = $(e.currentTarget);\n var $link = $el.find('.detailed-job-item-link');\n\n if ( $el.find('.detailed-job-description').hasClass('truncated') ) {\n $link.addClass('hidden');\n } else {\n // don't hide View Job because the description is expanded\n }\n\n },\n\n archive: function(e) {\n e.preventDefault();\n\n const $jobItem = $(e.currentTarget).closest('.job-item');\n const jobId = $jobItem.data('job-id');\n const jobTitle = $jobItem.find('.job-item-title').text();\n const archiveVal = $(e.currentTarget).data('archive');\n const view = this;\n\n UC.utils.showConfirmModal(\n 'Confirm',\n `Are you sure you want to ${archiveVal ? '' : 'un'}archive ${jobTitle} job?`,\n function (response) {\n if (response) {\n UC.net.post('/job/archive/{0}'.format(jobId), {archive: archiveVal}, function() {\n view.render();\n });\n }\n }\n );\n },\n\n paginate: function(e) {\n e.preventDefault();\n this.current_page = $(e.currentTarget).data('page');\n\n if (typeof this.beforePaginate === 'function') {\n this.beforePaginate();\n }\n\n this.render();\n },\n\n setJobListMessage: function(dots) {\n var message = \"
    Please wait while we search jobs for you\" + dots.join('') + \"
    \"\n\n this.$el.find('#job-list').html(message);\n },\n\n showUploadJobListMessage: function() {\n var iteration = 0;\n visibleSpan = \".\"\n hiddenSpan = \".\"\n var renderText = function() {\n switch (iteration) {\n case 0:\n this.setJobListMessage([visibleSpan, hiddenSpan, hiddenSpan]);\n iteration = 1;\n break;\n case 1:\n this.setJobListMessage([visibleSpan, visibleSpan, hiddenSpan]);\n iteration = 2;\n break;\n default:\n this.setJobListMessage([visibleSpan, visibleSpan, visibleSpan]);\n iteration = 0;\n }\n }\n\n this.uploadJobsListMessageTimer = setInterval(renderText.bind(this), 600);\n },\n\n render: function() {\n if (typeof this.filterParams === 'function') {\n var data = this.filterParams();\n } else {\n var data = {};\n }\n\n if (!('type' in data)) {\n data.type = this.current_type;\n } else {\n this.current_type = data.type;\n }\n data.page = this.current_page;\n data.v9 = this.$el.find('.js-job-list-v9').length > 0;\n\n clearInterval(this.uploadJobsListMessageTimer);\n\n if (this.updateMethod === 'post') {\n UC.net.post(this.updateUrl, data, this.renderCallback.bind(this));\n } else {\n UC.net.get(this.updateUrl, data, this.renderCallback.bind(this));\n }\n\n this.showUploadJobListMessage()\n },\n\n renderCallback: function(res) {\n this.$el.find('#job-list').html(res);\n\n clearInterval(this.uploadJobsListMessageTimer)\n\n this.initThings();\n\n this.$el.find('#learn-about-colors').tooltip({\n html: true,\n title: this.$el.find('#jobs-list-legend').html()\n }).click(function(e) {\n e.preventDefault();\n });\n\n if (typeof this.additionalRenderCallback === 'function') {\n this.additionalRenderCallback();\n }\n },\n\n setPage: function(pageNumber) {\n this.current_page = pageNumber;\n },\n\n getPage: function() {\n return this.current_page;\n },\n\n changeTab: function(e) {\n e.preventDefault();\n var type = $(e.currentTarget).data('type');\n\n this.current_type = type;\n this.current_page = 1;\n\n this.render();\n\n var eventName = this.eventNamePrefix + ' - Job List Tab Click';\n UC.utils.recordKissEvent(eventName, {\n type: UC.user.type, tab: type\n });\n },\n\n getCurrentType: function() {\n return this.current_type;\n }\n\n});\n","!function() {\n\n UC.views.LegalAreaPages = Backbone.View.extend({\n\n initialize: function() {\n this.initNavScrollSpyStuff();\n this.initTabScrolling();\n },\n\n initNavScrollSpyStuff: function() {\n var $body = $('body');\n var cta_btn = $(\".main-cta-btn\").length > 0 ? $(\".main-cta-btn\").offset().top : 150;\n var nav = $('.section-nav');\n var nav_wrap = nav.closest('.section-nav-wrap');\n var sticky = nav.hasClass('sticky');\n var footer = $('.sticky-footer');\n\n $(window).scroll(function() {\n var scrollTop = $(document).scrollTop();\n\n if (scrollTop >= cta_btn) {\n footer.addClass('active');\n } else {\n footer.removeClass('active');\n }\n\n if (!UC.utils.isMobileViewPort() && scrollTop >= nav_wrap.offset().top) {\n nav.addClass('fixed');\n\n $('.nav-section').each(function(i) {\n\n if ($(this).position().top <= scrollTop + 100) {\n $('.section-nav-tab.active').removeClass('active');\n $('.section-nav-tab').eq(i).addClass('active');\n }\n });\n } else {\n nav.removeClass('fixed');\n $('.section-nav-tab.active').removeClass('active');\n $('.section-nav-tab:first').addClass('active');\n }\n }).scroll();\n },\n\n initTabScrolling: function() {\n\n $('.section-nav-tab').click(function(e) {\n var $this = $(this),\n id = $this.attr('href') || $this.find('a').attr('href'),\n hasHash = (id && id.substr(0,1) == '#');\n\n if (hasHash) {\n e.preventDefault();\n UC.utils.scrollToElement($(id), { offset: 100 });\n }\n });\n }\n });\n}();\n","UC.partials.MessagesCreate = Backbone.View.extend({\n el: 'body',\n\n initialize: function(options) {\n if (!UC.user) return;\n\n this.options = options || {};\n\n var namespaces = {\n notify: 'notify',\n error: 'error',\n redirect: 'redirect'\n }\n\n this.window_focus = true\n this.registerSelectors();\n this.registerEvents();\n this.processingMessage = false;\n this.sentTimeInterval;\n\n var sourceType = this.options.pageName === 'proposal' ?\n UC.constants.UserDocumentSourceType.ProposalMessageAttachment :\n UC.constants.UserDocumentSourceType.ChatAttachment;\n\n if (this.$txtReplyMessage.length > 0) {\n attachments = this.$txtReplyMessage.attachmentTextarea({\n jobId: this.options.jobId,\n attorneyId: this.options.attorneyId,\n userId: this.options.userId,\n source_type: sourceType\n });\n }\n },\n\n log: function() {\n if (this.options.debug) console.log(arguments);\n },\n\n registerSelectors: function() {\n this.$txtReplyMessage = this.$el.find('#txtReplyMessage');\n this.$chkEnterToSend = this.$el.find('#chkEnterToSend');\n this.$btnSendReply = this.$el.find('#btnSendReply');\n this.$messagesRow = this.$el.find('#messagesRow');\n this.$sentTimeAgo = this.$el.find('.sent-time-ago');\n this.$panelProposalContact = this.$el.find('#panelProposalContact');\n this.$panelExchangedMessages = this.$el.find('#panelExchangedMessages');\n this.$proposalContactButton = this.$el.find('.jp-contact-btn');\n this.attorneyCalendarUrl = this.$('.copy-share-calendar-url').val();\n\n this.$btnSendReplyLoader = this.$btnSendReply.buttonLoader();\n },\n\n registerEvents: function() {\n $(window).focus(function () {\n this.window_focus = true;\n }).blur(function () {\n this.window_focus = false;\n });\n this.$chkEnterToSend.change(this.onChkEnterToSendChange);\n this.$btnSendReply.click(this.onSendMessageClick.bind(this));\n },\n\n addMessageToThread: function(message, channel, by, documents) {\n var templateClass = '.template-{0}'.format(by),\n template = $(templateClass).clone(),\n time = new Date().getTime() / 1000;\n\n template.removeClass('hidden template-sender template-recipient').removeAttr('id');\n template.find('.chat-item-content-message').html(message);\n template.find('.chat-item-time').data('time', time).text('Just now');\n\n if (channel) {\n template.addClass('channel-{0}'.format(channel));\n template.find('.sent-channel').text(channel);\n }\n\n if (documents) {\n var $documents = $('
    ');\n\n _.each(documents, function(doc) {\n var link_url = '/job/{0}/documents/{1}'.format(UC.job.id, doc._id);\n var link = ' {1}'.format(\n link_url, doc.FileName\n );\n $documents.append('{0}'.format(link));\n });\n\n template.find('.chat-item-content-message').after($documents);\n }\n\n var oldTop = $(window).scrollTop(),\n oldReplyY = this.$btnSendReply.offset().top,\n newReplyY,\n diff;\n\n this.$messagesRow.append(template);\n newReplyY = this.$btnSendReply.offset().top;\n diff = newReplyY - oldReplyY;\n $(window).scrollTop(oldTop + diff);\n\n var messageSentCallbacks = this.options.messageSentCallbacks || []\n\n if (messageSentCallbacks && messageSentCallbacks.length > 0) {\n for (var i = 0; i < messageSentCallbacks.length; i++) {\n messageSentCallbacks[i]();\n }\n }\n\n this.startUpdateTimeAgo();\n\n return template;\n },\n\n showNotification: function(message) {\n UC.utils.showNotification(message, UC.constants.results.info, 0);\n },\n\n updateSentTimeAgo: function() {\n var $sentTimeAgo = $('.sent-time-ago');\n\n $sentTimeAgo.each(function() {\n var $el = $(this);\n var time = $el.data('time');\n\n if (time) {\n var timeObj = moment(time, 'X');\n var timeAgo = timeObj.fromNow(true);\n\n $el.text('{0} ago'.format(timeAgo));\n }\n });\n },\n\n startUpdateTimeAgo: function() {\n if (this.sentTimeInterval) {\n clearInterval(this.sentTimeInterval);\n }\n\n this.sentTimeInterval = setInterval(this.updateSentTimeAgo, 60000);\n },\n\n sendMessage: function(recipient, message, job, callback) {\n var data = {\n recipient: recipient,\n messageInput: message,\n job: job,\n AttachmentIds: attachments.getDocumentIds()\n };\n\n if (recipient && message) {\n UC.net.post('/messages', data, callback).fail(function() {\n this.$btnSendReplyLoader.showLoader();\n }.bind(this)).fail(function() {\n this.processingMessage = false;\n this.$btnSendReplyLoader.hideLoader();\n }.bind(this));\n }\n },\n\n onChkEnterToSendChange: function() {\n if (this.$chkEnterToSend.is(':checked') || this.options.sendMessageOnEnter) {\n UC.utils.registerEnterKey(this.$txtReplyMessage, this.onSendMessageClick);\n }\n else {\n UC.utils.unRegisterEnterKey(this.$txtReplyMessage);\n }\n },\n\n onMessageSend: function(err, data) {\n attachments.reset();\n this.$btnSendReplyLoader.hideLoader();\n this.processingMessage = false;\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n else {\n if(this.$txtReplyMessage.val().indexOf(this.attorneyCalendarUrl) !== -1) {\n UC.utils.sendNesEvent('attorney_calendar_copy_url_clicked', { attorney_id: UC.user.id });\n }\n \n this.$txtReplyMessage.val('');\n if (data['channel'] == 'email') {\n UC.utils.showNotification('Message sent via email', UC.constants.results.success);\n }\n if(this.options.pageName == 'proposal'){\n UC.utils.hideComponent(this.$panelProposalContact);\n UC.utils.showComponent(this.$panelExchangedMessages);\n this.$proposalContactButton.attr('href', this.$proposalContactButton.data('url'));\n }\n else{\n this.addMessageToThread(data.message, data.channel, 'sender', data.documents);\n }\n }\n },\n\n onSendMessageClick: function(e) {\n if (e) {\n e.preventDefault();\n }\n\n if(!this.processingMessage){\n this.processingMessage = true;\n var message = this.$txtReplyMessage.val(),\n messageWrapper = this.$txtReplyMessage.parent();\n\n messageWrapper.removeClass('has-error');\n\n if (!/.+/.test(message)) {\n messageWrapper.addClass('has-error');\n this.processingMessage = false;\n } else {\n this.$btnSendReplyLoader.showLoader();\n var recipient = UC.user.id == this.options.jobOwnerId ? this.options.attorneyId : this.options.jobOwnerId;\n\n if (attachments.uploader.uploading) {\n $.when(attachments.uploader.uploading).done(function() {\n this.sendMessage(recipient, message, this.options.jobId, this.onMessageSend.bind(this));\n }.bind(this));\n } else {\n this.sendMessage(recipient, message, this.options.jobId, this.onMessageSend.bind(this));\n }\n }\n }\n },\n\n onNotify: function(data) {\n if (typeof data == 'string') {\n showNotification(data);\n }\n else if (typeof data == 'object' && data.message) {\n showNotification(data.message);\n }\n else {\n showNotification(JSON.stringify(data));\n }\n },\n\n onError: function(data) {\n log(data);\n },\n\n onMessage: function(message) {\n if (message && message.ns) {\n switch (message.ns) {\n case this.namespaces.notify:\n onNotify(message.data);\n break;\n case this.namespaces.redirect:\n location.href = message.data;\n break;\n case this.namespaces.error:\n log(message);\n onError(message.data);\n break;\n default:\n log('Unknown namespace {0}'.format(message.ns));\n break;\n }\n }\n },\n\n initCentralMessages: function(newOptions) {\n $.extend(this.options, newOptions);\n\n this.registerSelectors();\n this.registerEvents();\n this.startUpdateTimeAgo();\n\n this.$txtReplyMessage.focus();\n\n attachments = this.$txtReplyMessage.attachmentTextarea({\n jobId: this.options.jobId,\n userId: this.options.userId,\n attorneyId: this.options.attorneyId,\n source_type: UC.constants.UserDocumentSourceType.ChatAttachment\n });\n },\n});\n","import { TextareaAutoSize } from 'textarea-autosize'\n\n!function() {\n\n UC.views.MessagesIndex = Backbone.View.extend({\n\n events: {\n 'click .thread-item': 'clickThreadItem',\n 'click .btn-filter': 'filter',\n 'click .messages_search_clear' : 'clearSearch',\n 'submit #formMessageSearch' : 'search',\n 'click #btnLoadMore' : 'loadMore',\n 'click .btn-schedule-call-reply': 'scheduleCallReply',\n 'click .cancel-sched-call' : 'openCancelSchedCallModal'\n },\n\n initialize: function() {\n this.activeThreadId;\n this.page = 1;\n\n this.messagesCreate =\n new UC.partials.MessagesCreate({\n messageSentCallbacks: [this.messageSentCallback.bind(this)]\n });\n },\n\n messageSentCallback: function() {\n $('.thread-content').scrollTop($('.thread-content')[0].scrollHeight);\n var $thread = $(\".thread-list [data-thread-id={0}]\".format(this.activeThreadId));\n var time = new Date().getTime() / 1000;\n $thread.parent().prepend($thread);\n $thread.find('.last-message-words').data('time', time).text('Just now');\n $('.thread-list').scrollTop(0);\n $('#txtReplyMessage').height($('#txtReplyMessage').data('original-height'));\n },\n\n clickThreadItem: function(e) {\n if ($(e.currentTarget).hasClass('active')) {\n return false;\n } else {\n var threadId = $(e.currentTarget).data('thread-id'),\n $thread = $(\".thread-item[data-thread-id='{0}']\".format(threadId));\n\n $('.thread-item').removeClass('active');\n\n var eventProperties = {\n location: 'inbox',\n thread_id: threadId\n };\n\n if ($thread.hasClass('unread')) {\n if (!UC.user.impersonate) {\n $thread.removeClass('unread');\n $thread.find('.unread-count').remove();\n }\n eventProperties.unread = true;\n } else {\n eventProperties.unread = false;\n }\n\n $thread.addClass('active');\n UC.utils.sendNesEvent('message_thread_viewed', eventProperties);\n\n UC.net.get('messages/threads/{0}'.format(threadId), null, function(err, res){\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n $('.thread-container').html(res.html);\n\n if ($(window).width() < 992 && !$('.thread-container').is(':visible')){\n $('.messages-left').hide();\n $('.thread-container').show();\n $('.thread-header .glyphicon-menu-left').click(function(){\n $('.messages-left').show();\n $('.thread-container').hide();\n $('.thread-item').removeClass('active');\n })\n }\n\n this.messagesCreate.initCentralMessages(res.messageConstants);\n\n $('.thread-content').scrollTop($('.thread-content')[0].scrollHeight);\n if (!$(window).isMobileWidth()){\n $('#txtReplyMessage').focus();\n }\n this.activeThreadId = threadId;\n\n new TextareaAutoSize(document.getElementById('txtReplyMessage'));\n\n UC.job = res.job;\n\n $('.notification-pulldown-wrapper').replaceWith(res.notificationHtml);\n new UC.components.Notifications();\n\n if (res.unreadCount > 0) {\n $('.chat-filters .unread-count-circle').text(res.unreadCount);\n } else {\n $('.chat-filters .unread-count-circle').remove();\n }\n }\n }.bind(this));\n }\n },\n\n filter: function(e) {\n if ($(e.currentTarget).hasClass('active')) {\n return false;\n } else {\n var filter = $(e.currentTarget).data('filter');\n $('.btn-filter').removeClass('active');\n $(e.currentTarget).addClass('active');\n this.page = 1;\n this.getData();\n }\n },\n\n search: function(e) {\n e.preventDefault();\n this.page = 1;\n\n var q = $('#txtMessageSearch').val().trim();\n if (q && q !== '') {\n this.$el.find('.messages_search_clear').removeClass('hide');\n this.$el.find('.messages_search_icon').addClass('hide');\n }\n\n this.getData();\n },\n\n clearSearch: function(e) {\n $('#txtMessageSearch').val('');\n this.$el.find('.messages_search_clear').addClass('hide');\n this.$el.find('.messages_search_icon').removeClass('hide');\n this.search(e);\n },\n\n loadMore: function(e) {\n e.preventDefault();\n this.page++;\n this.getData();\n },\n\n getData: function() {\n var data = {\n filter: $('.btn-filter.active').data('filter'),\n q: $('#txtMessageSearch').val().trim(),\n page: this.page\n };\n\n UC.net.get(location.href, data, function(res) {\n if (this.page == 1) {\n $('.thread-list').replaceWith(res.html);\n } else {\n $('.thread-list').append($(res.html).html());\n }\n\n if (res.showMore) {\n $('.thread-list-container').addClass('load-more');\n } else {\n $('.thread-list-container').removeClass('load-more');\n }\n\n if (data.q!= '') {\n var count = res.total_entries,\n suffix = (count == 1 ? '' : 's'),\n infoText= \"{0} result{1} for \\\"{2}\\\" in your inbox\".format(count, suffix, data.q);\n $('.thread-list-container').addClass('search-results');\n $('.search-results-count-container').text(infoText).removeClass('hidden');\n } else {\n $('.thread-list-container').addClass('search-results');\n $('.search-results-count-container').text(infoText).addClass('hidden');\n }\n\n if ($('.thread-item').length > 0) {\n $('.thread-list-container').removeClass('threads-none');\n } else {\n $('.thread-list-container').addClass('threads-none');\n }\n }.bind(this));\n\n },\n\n scheduleCallReply: function(e) {\n e.preventDefault();\n\n new UC.modals.ScheduledCallsShow({\n scheduled_call_id: $(e.target).data('id')\n }).render();\n },\n\n openCancelSchedCallModal: function(e) {\n e.preventDefault();\n var scheduledCallId = $(e.currentTarget).data('scheduled-call-id');\n new UC.partials.ScheduledCallsCancel({scheduledCallId: scheduledCallId});\n }\n\n });\n}();\n","import { validateOTPCodeFormat, validateRecoveryCodeFormat } from './functions'\n\nexport default Backbone.View.extend({\n initialize: function(options) {\n this.options = options || {};\n this.codeInputSelector = this.options.codeInputSelector || 'input#verification-code';\n this.submitButtonSelector = this.options.submitButtonSelector || '#verify-mfa-button';\n $(`#${options.formId || 'two-factor-request-form'}`).on('submit', this.onSubmit.bind(this))\n setTimeout(function () {\n $(this.codeInputSelector).focus();\n }.bind(this), 500)\n },\n\n onSubmit: function(e) {\n e.preventDefault();\n const btnLoader = this.$el.find(this.submitButtonSelector).buttonLoader();\n const $verificationCode = this.$el.find(this.codeInputSelector);\n const successCallback = this.options.successCallback;\n const failureCallback = this.options.failureCallback;\n const url = this.options.formUrl || '/sessions/two-factor';\n const params = this.options.requestParams || {};\n params.code = $verificationCode.val();\n const validationFunction = this.options.recovery ? validateRecoveryCodeFormat : validateOTPCodeFormat;\n\n if (validationFunction($verificationCode)) {\n btnLoader.showLoader();\n\n UC.net.post(\n url,\n params,\n function (response) {\n btnLoader.hideLoader();\n if (successCallback) {\n successCallback(response);\n }\n }\n ).fail(function () {\n btnLoader.hideLoader();\n $verificationCode.val('');\n $verificationCode.focus();\n if (failureCallback) {\n failureCallback();\n }\n });\n } else {\n $verificationCode.focus();\n }\n },\n});\n","import { validateOTPCodeFormat } from './functions'\n\nUC.views.MultiFactorAuthConfigure = Backbone.View.extend({\n events: {\n 'click #show-manual-code' : 'showCode',\n 'submit #mfa-configuration-form': 'onSubmit',\n 'keyup #verification-code': 'onVerificationCodeKeyUp',\n },\n\n initialize: function() {\n this.$verificationCode = this.$el.find('input#verification-code');\n this.$secretCode = this.$el.find('input#secret-code');\n this.btnLoader = this.$el.find('#enable-mfa').buttonLoader();\n\n new UC.components.InputWithCopyButton({inputId: 'secret-code'})\n },\n\n showCode: function(e) {\n e.preventDefault();\n\n $('#show-manual-code').addClass('hidden');\n $('#manual-code-block').removeClass('hidden');\n },\n\n onSubmit: function(e) {\n e.preventDefault();\n\n if (validateOTPCodeFormat(this.$verificationCode)) {\n this.btnLoader.showLoader();\n const self = this;\n\n UC.net.post(\n '/account/mfa/enable',\n {\n secret: self.$secretCode.val(),\n code: self.$verificationCode.val()\n },\n function (response) {\n self.btnLoader.hideLoader();\n window.location = response.url || '/account/edit';\n }\n ).fail(function () {\n self.btnLoader.hideLoader();\n self.$verificationCode.val('');\n });\n }\n },\n\n onVerificationCodeKeyUp: function(e) {\n if (e.keyCode === 13) {\n this.onSubmit(e);\n }\n },\n});\n","import { default as MultiFactorRequestFrom } from './_request_form'\n\nexport function validateOTPCodeFormat(input) {\n UC.utils.clearValidationErrors('form-group');\n\n const errors = [];\n const verificationCode = input.val();\n\n if (!verificationCode) {\n errors.push({\n className: 'form-group',\n element: input,\n text: 'Verification code is required'\n });\n console.warn('Verification code is required')\n } else if (verificationCode.length !== 6) {\n errors.push({\n className: 'form-group',\n element: input,\n text: 'Must be a six-digits code'\n });\n console.warn('Must be a six-digits code')\n }\n\n UC.utils.showValidationErrors(errors);\n return errors.length === 0;\n}\n\nexport function validateRecoveryCodeFormat(input) {\n UC.utils.clearValidationErrors('form-group');\n\n const errors = [];\n const verificationCode = input.val();\n\n if (!verificationCode) {\n errors.push({\n className: 'form-group',\n element: input,\n text: 'Recovery code is required'\n });\n console.warn('Recovery code is required')\n } else if (!verificationCode.match(/[a-z0-9]{5}-[a-z0-9]{5}/i)) {\n errors.push({\n className: 'form-group',\n element: input,\n text: 'Invalid recovery code'\n });\n console.warn('Invalid recovery code')\n }\n\n UC.utils.showValidationErrors(errors);\n return errors.length === 0;\n}\n\nexport function renderTwoFactorRequestModal(modalHtml, successCallback) {\n if (!modalHtml) {\n return;\n }\n\n const $twoFactorRequestModal = $(modalHtml);\n $('body').append($twoFactorRequestModal);\n\n const toggleAuthForms = function(e) {\n e.preventDefault();\n\n $twoFactorRequestModal.find('.otp-code-form').toggleClass('hidden');\n $twoFactorRequestModal.find('.recovery-code-form').toggleClass('hidden');\n }\n\n const onSuccessVerification = function() {\n $twoFactorRequestModal.modal('hide');\n if (successCallback) {\n successCallback();\n }\n }\n\n new MultiFactorRequestFrom({\n el: $twoFactorRequestModal.find('.otp-code-form')[0],\n formId: 'two-factor-request-modal-form',\n formUrl: '/sessions/two-factor',\n successCallback: onSuccessVerification.bind(this)\n });\n\n new MultiFactorRequestFrom({\n el: $twoFactorRequestModal.find('.recovery-code-form')[0],\n formId: 'two-factor-recovery-modal-form',\n codeInputSelector: 'input#recovery-code',\n submitButtonSelector: '#recover-mfa-button',\n recovery: true,\n requestParams: {\n recover: true\n },\n successCallback: onSuccessVerification.bind(this)\n });\n\n $('.modal.in').modal('hide'); // hide any existing modal shown\n\n $twoFactorRequestModal.find('#use-recovery-code-link').on('click', toggleAuthForms);\n $twoFactorRequestModal.find('#use-otp-code-link').on('click', toggleAuthForms);\n $twoFactorRequestModal.modal('show');\n}","UC.views.MultiFactorAuthPrintRecoveryCodes = Backbone.View.extend({\n events: {\n 'click #print': 'printCodes',\n },\n\n initialize: function() {\n const sudo = new UC.partials.SessionSudoForm({el: this.$el})\n\n if (!sudo.isActive()) {\n window.onafterprint = function () {\n window.close()\n };\n this.printCodes();\n }\n },\n\n printCodes: function() {\n window.print();\n },\n});\n","UC.views.MultiFactorAuthRecoveryCodes = Backbone.View.extend({\n events: {\n 'click #generate-new-recovery-codes': 'generateNewRecoveryCodes',\n },\n\n initialize: function() {\n new UC.partials.SessionSudoForm({el: this.$el})\n },\n\n generateNewRecoveryCodes: function(e) {\n e.preventDefault();\n\n UC.components.confirmModal({\n title: 'Confirm',\n text: 'When you generate new recovery codes, your old codes won\\'t work anymore.
    Are you sure?',\n callback: function (confirmed) {\n if (confirmed) {\n UC.net.put('/account/mfa/recovery-codes', null, function (response) {\n location.href = response.url;\n });\n }\n },\n yesText: 'Yes, generate new codes',\n noText: 'Cancel'\n });\n },\n});\n","UC.views.MultiFactorAuthRequestDisable = Backbone.View.extend({\n initialize: function() {\n new UC.partials.SessionSudoForm({el: this.$el})\n }\n});\n","!function() {\n\n UC.views.OffersIndex = Backbone.View.extend({\n\n initialize: function() {\n this.components = {\n FollowUpOffers: new UC.components.FollowUpOffers({\n el: '#follow-up-offers-container'\n })\n };\n }\n\n });\n\n}();\n","UC.views.PaymentsNew = Backbone.View.extend({\n\n initialize: function() {\n\n this.components = {\n payment_info: new UC.components.PaymentInfo({el: $('body')}),\n billingSummary: new UC.components.BillingSummary({el: $('#billing-summary')})\n };\n\n UC.utils.sendNesEvent('start_opportunity_to_pay', {\n attorney_id: UC.invoice.attorneyId\n });\n }\n});\n","UC.views.PaymentsShow = Backbone.View.extend({\n\n initialize: function() {\n UC.utils.recordKissEvent('billed', {'Billing Amount': UC.constants.totalPaid});\n UC.utils.recordKissClickEvent('#social-facebook', 'Payment Confrimation Referral Box - Facebook Share Click');\n UC.utils.recordKissClickEvent('#social-twitter', 'Payment Confrimation Referral Box - Twitter Share Click');\n UC.utils.recordKissClickEvent('#social-gplus', 'Payment Confrimation Referral Box - Google Plus Share Click');\n UC.utils.recordKissClickEvent('#social-linkedin', 'Payment Confrimation Referral Box - LinkedIn Share Click');\n\n this.components = {\n FollowUpOffers: new UC.components.FollowUpOffers({\n el: '#follow-up-offers-container'\n })\n };\n\n new UC.components.FeesPopover({ el: this.$el });\n }\n});\n","UC.views.DraftProposalTemplateList = UC.components.ProposalTemplateListAbstract.extend({\n template: UC.views.resolveHandlebarsTemplate(\"components/draft_proposal_template_list\")\n});\n","UC.views.ProposalTemplatesIndex = Backbone.View.extend({\n events: {\n 'click .js-btnAddNewTemplate': 'openModal',\n 'click .js-btnSelectProposalTemplate': 'handleSelect'\n },\n\n elements: {\n 'noTemplateMsg': null\n },\n\n initialize: function(options) {\n UC.utils.setSelectors(this.elements);\n options = options || {};\n this.base_path = '/proposal_templates';\n this.onSelect = options.selectCallback;\n\n this.draftProposalTemplateList = new UC.views.DraftProposalTemplateList({\n el: this.$('.js-proposal-template-list'),\n onEdit: this.handleEdit.bind(this),\n onDelete: this.handleDelete.bind(this)\n })\n\n this.proposalTemplateIndexList = new UC.views.ProposalTemplateIndexList({\n el: this.$('.js-proposal-template-index-page'),\n onEdit: this.handleEdit.bind(this),\n onDelete: this.handleDelete.bind(this)\n })\n\n this.modal = new UC.modals.ProposalTemplatesFormModal({\n parent_view: this,\n onSave: this.handleSave.bind(this)\n });\n },\n\n handleSelect: function() {\n var selectedId = $(\"input[name=proposalTemplate]:checked\").val();\n this.onSelect(selectedId);\n },\n\n openModal: function(e) {\n this.modal.render();\n },\n\n reloadProposalTemplates: function() {\n if (this.draftProposalTemplateList.el) {\n this.draftProposalTemplateList.refreshTemplateList()\n }\n if (this.proposalTemplateIndexList.el) {\n this.proposalTemplateIndexList.refreshTemplateList();\n }\n },\n\n handleSave: function(templateId) {\n var message = templateId ? \"Successfully updated template\" : \"Successfully added template\";\n UC.utils.showNotification(message, UC.constants.results.success);\n this.reloadProposalTemplates();\n\n if (!this.elements.noTemplateMsg.hasClass('hidden')) {\n this.elements.noTemplateMsg.addClass('hidden');\n }\n },\n\n handleEdit: function(e) {\n var templateId = $(e.currentTarget).closest('[data-id]').data('id');\n this.modal.render({templateId: templateId});\n },\n\n handleDelete: function(e) {\n var $template = $(e.currentTarget).closest('.list-item'),\n templateId = $template.data('id'),\n name = $template.find('.pt-name').text(),\n path = this.base_path + '/{0}'.format(templateId);\n\n function onConfirm(response) {\n if (response) {\n UC.net.destroy(path, {}, function(res) {\n\n UC.utils.showNotification(res.message, UC.constants.results.success);\n\n this.reloadProposalTemplates();\n }.bind(this));\n }\n }\n\n var msg = 'Are you sure you want to delete your proposal template titled \\'{0}\\'?'.format(name);\n\n UC.utils.showConfirmModal('Confirm delete', msg, onConfirm.bind(this));\n }\n\n});\n","UC.views.ProposalTemplateIndexList = UC.components.ProposalTemplateListAbstract.extend({\n template: UC.views.resolveHandlebarsTemplate(\"components/proposal_template_index_list\"),\n});\n","UC.modals.ProposalTemplatesFormModal = Backbone.View.extend({\n id: 'modalFormProposalTemplates',\n\n className: 'new-template modal fade',\n\n events: {\n 'click #btnSaveProposalTemplate' : 'save',\n 'click .js-placeholder-link' : 'insertNamePlaceholder'\n },\n\n elements: {\n 'txtTemplateName': null,\n 'selectLegalGroup': null,\n 'txtTemplateText': null,\n 'btnSaveProposalTemplate': null\n },\n\n initialize: function(options) {\n this.components = {};\n this.parent_view = options.parent_view;\n this.base_path = '/proposal_templates'\n this.onSave = options.onSave;\n this.select = options.select;\n },\n\n render: function(options) {\n if (options && options.templateId) {\n this.templateId = options.templateId;\n } else {\n delete this.templateId;\n }\n\n var path = this.base_path;\n path += this.templateId ? '/{0}/edit'.format(this.templateId) : '/new';\n\n UC.net.get(path, {}, function(modal_html) {\n this.$el.html(modal_html);\n this.$el.modal();\n UC.utils.setSelectors(this.elements);\n this.components.btnSaveProposalTemplate =\n this.elements.btnSaveProposalTemplate.buttonLoader();\n var selectLegalGroup = this.$('#selectLegalGroup')\n selectLegalGroup.select2({width: '100%'});\n }.bind(this));\n },\n\n save: function(e) {\n if (!this.validateTemplate()) return false;\n\n this.components.btnSaveProposalTemplate.showLoader();\n var path = this.base_path,\n data = {\n template: this.templateData,\n select: this.select\n };\n\n if (this.templateId) {\n path += '/{0}'.format(this.templateId);\n UC.net.put(path, data, function(res) {\n this.onSave(this.templateId);\n this.$el.modal('hide');\n }.bind(this)).complete(function(res){\n this.components.btnSaveProposalTemplate.hideLoader();\n }.bind(this)).fail(function(res){\n UC.closeTheLoop.handleFailure(res, true);\n });\n\n } else {\n UC.net.post(path, data, function(res) {\n this.onSave();\n this.$el.modal('hide');\n }.bind(this)).complete(function(res){\n this.components.btnSaveProposalTemplate.hideLoader();\n }.bind(this)).fail(function(res){\n UC.closeTheLoop.handleFailure(res, true);\n });\n\n }\n },\n\n validateTemplate: function() {\n // NOTE: needed to resolve race condition when the page is loaded, selectors are not yet set.\n UC.utils.setSelectors(this.elements);\n\n UC.utils.clearValidationErrors('form-group')\n var errors = [];\n\n this.templateData = {\n Name: this.elements.txtTemplateName.val().trim(),\n LegalGroupId: this.elements.selectLegalGroup.val(),\n Text: this.elements.txtTemplateText.val().trim()\n };\n\n if (this.templateData.Name === '') {\n errors.push({element: this.elements.txtTemplateName, text: 'Template name is required'})\n }\n\n if (!this.templateData.LegalGroupId || this.templateData.LegalGroupId === '##') {\n errors.push({element: this.elements.selectLegalGroup, text: 'Template category is required'})\n }\n\n if (this.templateData.Text === '') {\n errors.push({element: this.elements.txtTemplateText, text: 'Template text is required'})\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { className: 'form-group'});\n return false\n } else {\n return true;\n }\n },\n\n insertNamePlaceholder: function(e) {\n e.preventDefault();\n var txtTemplateText = $('#txtTemplateText');\n var newText = \"{client_first_name}\" + txtTemplateText.val();\n txtTemplateText.val(newText);\n }\n});\n","UC.partials.ProposalsForm = Backbone.View.extend({\n\n el: '#proposal-form',\n\n events: {\n 'submit' : 'proposalSubmitInitated',\n 'input #txtProposalMessage, #proposal-background, #proposal-experience' : 'manualPropMsgUpdate',\n 'click #prop-preview-btn' : 'showProposalPreview'\n },\n\n routes: {\n previewUrl: '/jobs/{0}/proposals/preview'\n },\n\n initialize: function(opts) {\n this.$submitBtn = this.$(opts.submitSelector);\n this.submitLoader = this.$submitBtn.buttonLoader();\n this.attorneyHasPayoutAcct = opts.attorneyHasPayoutAcct;\n this.attorneyAccountUnverified = opts.attorneyAccountUnverified;\n this.propMsgUpdatedManually = false;\n this.deluxeBid = this.$('[name=\"proposal[DeluxeBid]\"]').val() === 'true';\n this.validatePropMessagesUpdated = opts.validatePropMessagesUpdated;\n this.jobId = opts.jobId;\n this.$previewBtn = this.$('#prop-preview-btn');\n\n if (this.$previewBtn.length > 0) {\n this.$previewBtnLoader = this.$previewBtn.buttonLoader();\n }\n\n this.quoteForm = new UC.partials.ProposalsFormQuote();\n\n quoteFormOptions = {payment_profile: opts.paymentProfile};\n\n if (opts.attorneyClient) {\n quoteFormOptions['client_id'] = opts.attorneyClient.UserId;\n\n if (opts.attorneyClient.HourlyRate) {\n quoteFormOptions['hourly_rate'] = opts.attorneyClient.HourlyRate;\n } else if (opts.attorneyClient.latest_hourly_rate) {\n quoteFormOptions['hourly_rate'] = opts.attorneyClient.latest_hourly_rate;\n } else {\n quoteFormOptions['hourly_rate'] = 0;\n }\n }\n\n this.quoteForm.render(quoteFormOptions);\n\n if(opts.toggleToHourly) {\n this.quoteForm.$el.find('#tabHourlyFee').trigger('click');\n }\n\n this.initProposalTemplates();\n },\n\n validate: function() {\n var errors = [];\n\n this.$('.form-group').removeClass('has-error').find('.error-message').text('');\n\n if (this.deluxeBid) {\n var $relevantExperience = this.$(\"[name='proposal[RelevantExperience]']\");\n\n if ($relevantExperience.val().isBlank()) {\n errors.push({element: $relevantExperience, text: 'Please enter your relevant experience'});\n }\n\n var $background = this.$(\"[name='proposal[Background]']\");\n\n if ($background.val().isBlank()) {\n errors.push({element: $background, text: 'Please provide a description of your background and work history'});\n }\n }\n\n errors = errors.concat(this.quoteForm.errors());\n\n var $proposalDescription= this.$(\"[name='proposal[Description]']\");\n\n if ($proposalDescription.val().isBlank()) {\n errors.push({element: $proposalDescription, text: 'Please provide a proposal message'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, { scrollToFirst: true, className: 'form-group' });\n return false;\n } else {\n return true;\n }\n },\n\n proposalSubmitInitated: function(e) {\n e.preventDefault();\n if (!this.validate()) return;\n\n if (!this.attorneyHasPayoutAcct) {\n $('#modalNoBankAccount').modal();\n } else if (this.attorneyAccountUnverified) {\n $('#modalUnverifiedAccount').modal();\n } else {\n this.submitLoader.showLoader();\n\n if(this.validatePropMessagesUpdated && !this.propMsgUpdatedManually) {\n UC.utils.showConfirmModal(\n 'Confirm Submit Proposal',\n 'Are you sure your want to submit this proposal without editing your template?',\n function(response){\n if (response) {\n this.submitProposalForm();\n } else {\n this.submitLoader.hideLoader();\n }\n }.bind(this)\n );\n } else {\n this.submitProposalForm();\n }\n }\n },\n\n submitProposalForm: function() {\n var formSubmitUrl = this.$el.attr('action');\n var formData = this.serializeForm();\n\n UC.net.post(formSubmitUrl, formData)\n .fail(function(res) {\n this.submitLoader.hideLoader();\n UC.closeTheLoop.handleFailure(res, false);\n }.bind(this));\n },\n\n showProposalPreview: function(e) {\n e.preventDefault();\n if (!this.validate()) return;\n\n this.$previewBtnLoader.showLoader();\n var previewUrl = this.routes.previewUrl.format(this.jobId);\n var formData = this.serializeForm();\n\n UC.net.post(previewUrl, formData)\n .done(function(res) {\n this.renderPreviewModal(res.proposal_html);\n }.bind(this))\n .fail(function(res) {\n this.submitLoader.hideLoader();\n UC.closeTheLoop.handleFailure(res, false);\n }.bind(this))\n .always(function() {\n this.$previewBtnLoader.hideLoader();\n }.bind(this));\n },\n\n renderPreviewModal: function(proposalHtml) {\n new UC.partials.modalV9({\n modalTitle: \"Proposal Preview\",\n modalContent: proposalHtml,\n id: 'prop-preview-modal',\n renderCallback: function() {\n UC.utils.initRatingDimensions('#prop-preview-modal .jp-reviews');\n\n // Don't love calling this function from here but it's used a bunch of places.\n if ($('#prop-preview-modal .jp-fee-details-btn').length) {\n $('#prop-preview-modal .jp-fee-details-btn')\n .click(UC.partials.ProposalsForm.prototype.proposalOnShowFeesClick);\n }\n\n $('#prop-preview-modal .jp-fee-details').find('ul').click(function(e) {\n e.preventDefault();\n e.stopPropagation();\n });\n\n $('.js-estimated-tooltip').on('click', function() {\n $('.tooltip-blurb').toggleClass('hidden');\n });\n\n new UC.components.FeesPopover({\n el: $('#prop-preview-modal'),\n container: 'body'\n });\n }\n })\n },\n\n proposalOnShowFeesClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(e.target);\n var $container = $this.parentsUntil('.jp-bid', '.jp-fee-details');\n var isActive = $container.hasClass('active');\n\n $('.jp-fee-details').removeClass('active');\n\n if (!isActive) {\n var $proposalDiv = $this.parents('.jp-single');\n var proposalId;\n\n if ($proposalDiv.length > 0) proposalId = $proposalDiv.data('bidId');\n\n var kissData = {\n pageName: UC.constants.pageName,\n userId: UC.user.id,\n proposalId: proposalId,\n location: location.href\n };\n\n UC.utils.recordKissEvent('fee_detail_dropdown_shown', kissData);\n $container.addClass('active');\n }\n },\n\n serializeForm: function() {\n var formData = this.$el.serializeJSON();\n if (formData.FilingFees) formData.FilingFees = UC.utils.currencyToFloat(formData.FilingFees);\n if (formData.FilingFees) formData.ServiceFees = UC.utils.currencyToFloat(formData.ServiceFees);\n return formData;\n },\n\n initProposalTemplates: function() {\n var modalOptions = {\n el: '.js-modalChooseProposalTemplates',\n select: true,\n selectCallback: this.chooseTemplateModalCallback.bind(this)\n };\n\n this.templateList = new UC.views.ProposalTemplatesIndex(modalOptions);\n $('.insert-template').click(this.onInsertTemplateClick.bind(this));\n $('.insert-template').tooltip();\n },\n\n manualPropMsgUpdate: function() {\n this.propMsgUpdatedManually = true;\n },\n\n onInsertTemplateClick: function(e) {\n e.preventDefault();\n $('.insert-template').tooltip('hide');\n $('.js-modalChooseProposalTemplates').modal();\n this.templateTargetSelector = $(e.currentTarget).data('templateTarget');\n },\n\n chooseTemplateModalCallback: function(templateId) {\n $('.js-modalChooseProposalTemplates').modal('hide');\n\n if (!templateId) return;\n\n var clientId;\n if (UC.constants.jobOwnerId) {\n clientId = UC.constants.jobOwnerId;\n }\n\n UC.net.get('/proposal_templates/{0}'.format(templateId), {client_id: clientId}, function(proposalTemplate) {\n var $templateTarget = $(this.templateTargetSelector);\n\n if ($templateTarget.val().trim() !== '') {\n $templateTarget.val( $templateTarget.val() + \"\\n\\n\");\n }\n\n $templateTarget.val( $templateTarget.val() + proposalTemplate.Text );\n\n UC.utils.sendNesEvent('proposal_template_inserted', { template_id: templateId });\n UC.utils.recordKissEvent('proposal_template_inserted', { template_id: templateId });\n\n }.bind(this));\n }\n\n});\n","!function() {\n\n UC.partials.ProposalsFormQuote = Backbone.View.extend({\n\n el: '#proposals-form-quote',\n\n events: {\n 'change #txtServiceFees': 'validateServiceFees',\n 'change #txtFilingFees': 'validateFilingFees',\n 'change #txtServiceFeesClient': 'validateServiceFeesClient',\n 'change #txtFilingFeesClient': 'validateFilingFeesClient',\n 'change #chkFreeCall': 'setHiddenCallInput',\n 'change [name=\"proposal[PaymentCount]\"]': 'updatePaymentTerms',\n 'change .fees': 'calculateProposalFees',\n 'change .js-client-fees': 'calculateProposalFeesClient',\n 'click #tabHourlyFee': 'showHourlyFee',\n 'click #tabFixedFee': 'showFixedFee'\n },\n\n initialize: function() {\n this.initHelp();\n this.$('.fees').currencyInput();\n },\n\n render: function(options) {\n this.paymentProfile = options.payment_profile;\n this.$platformFee = this.$('.js-platform-fee');\n this.percentFee = (this.paymentProfile.baked_service_fee / 100) + 1;\n this.updatePaymentTerms();\n this.hourlyRate = options.hourly_rate;\n this.has_invoices = options.has_invoices;\n this.client_id = options.client_id;\n\n if (options.transaction_type === 'USC') {\n this.$('.hide-for-usc-client').hide();\n } else {\n this.$('.hide-for-usc-client').show();\n }\n },\n\n toggleBakedInFee: function() {\n var hasBakedFee = !!this.paymentProfile.baked_service_fee;\n\n // show disclaimer on \"Your Fees\" only for non-baked attorneys\n this.$('#your-fees-disclaimer').toggleClass('hidden', hasBakedFee);\n this.$('#your-fees-no-disclaimer').toggleClass('hidden', !hasBakedFee);\n },\n\n initHelp: function() {\n var $serviceFees = $('#txtServiceFees');\n var $filingFees = $('#txtFilingFees');\n var $body = $('body');\n\n $serviceFees.popover({\n placement: 'top',\n content: 'Not sure how much to bid? Click here for help.',\n trigger: 'manual',\n html: true\n });\n\n $filingFees.popover({\n placement: 'top',\n content: 'Not sure how much to bid? Click here for help.',\n trigger: 'manual',\n html: true\n });\n\n // can't use typical kissClickEvent since popover initialized after page load\n $body.on('click', '#bid-amount-popover-education-center', function() {\n var kissData = {\n userId: UC.user.id\n };\n if (UC.job) kissData.jobId = UC.job.id;\n\n UC.utils.recordKissEvent('bid_amount_popover_education_center_link_click', kissData);\n });\n\n // set data attribute on element to close on next click after it has been shown\n $serviceFees.on('shown.bs.popover', function() {\n $serviceFees.data('closePopoverOnClick', true);\n });\n\n $filingFees.on('shown.bs.popover', function() {\n $filingFees.data('closePopoverOnClick', true);\n });\n\n // this logic is to close the popover when clicking outside of the popover div. we want to close it on the second 'click'\n // in most cases since it is opened by a click (triggering a change event) which is why we set a data attribute of\n // closePopoverOnClick\n $body.on('click', function(e) {\n var $target = $(e.target);\n\n if ($target.parents('.popover.in').length === 0 && $serviceFees.data('closePopoverOnClick')) {\n $serviceFees.popover('hide');\n }\n });\n\n new UC.components.FeesPopover({el: this.$el});\n },\n\n updatePaymentTerms: function(e) {\n var termValue = $('[name=\"proposal[PaymentCount]\"]:checked').val();\n\n this.paymentCount = null;\n this.$('#panel-upfront').addClass('hidden');\n\n if (parseInt(termValue, 10) === 2) {\n this.$('#panel-upfront').removeClass('hidden');\n this.paymentCount = 2;\n } else if (parseInt(termValue, 10) === 1) {\n this.paymentCount = 1;\n }\n\n this.toggleBakedInFee();\n this.calculateProposalFees();\n },\n\n setBidType: function(bidType) {\n var $proposalType = this.$('#BidType');\n $proposalType.val(bidType);\n },\n\n calculateProposalFees: function() {\n var $serviceFees = this.$('#txtServiceFees');\n var $estimatedHours = this.$('#txtEstimatedHours');\n var $filingFees = this.$('#txtFilingFees');\n var $proposalType = this.$('#BidType');\n\n var serviceFees = UC.utils.currencyToFloat($serviceFees.val());\n var estimatedHours = UC.utils.currencyToFloat($estimatedHours.val());\n var filingFees = UC.utils.currencyToFloat($filingFees.val());\n var bidType = parseInt($proposalType.val(), 10);\n\n if (serviceFees < 0) $serviceFees.val(0);\n if (estimatedHours < 0) $estimatedHours.val(0);\n if (filingFees <= 0) {\n UC.utils.setSelectedElement(this.$('#selectUpfrontPayment'), '75');\n $filingFees.val(UC.utils.formatCurrency(filingFees));\n }\n\n // add any client \"baked-in\" fees to the total and show proper payment terms\n this.handleClientFees(bidType, serviceFees, estimatedHours, filingFees);\n },\n\n calculateProposalFeesClient: function() {\n var $serviceFeesClient = this.$('#txtServiceFeesClient');\n var $estimatedHoursClient = this.$('#txtEstimatedHoursClient');\n var $filingFeesClient = this.$('#txtFilingFeesClient');\n var $proposalType = this.$('#BidType');\n\n var serviceFeesClient = UC.utils.currencyToFloat($serviceFeesClient.val());\n var estimatedHoursClient = UC.utils.currencyToFloat($estimatedHoursClient.val());\n var filingFeesClient = UC.utils.currencyToFloat($filingFeesClient.val());\n var bidType = parseInt($proposalType.val(), 10);\n\n if (serviceFeesClient < 0) $serviceFeesClient.val(0);\n if (estimatedHoursClient < 0) $estimatedHoursClient.val(0);\n if (filingFeesClient <= 0) {\n $filingFeesClient.val(UC.utils.formatCurrency(filingFeesClient));\n }\n\n // add any client \"baked-in\" fees to the total and show proper payment terms\n this.handleAttorneyFees({bidType: bidType, serviceFees: serviceFeesClient, estimatedHours: estimatedHoursClient, filingFees: filingFeesClient});\n },\n\n calculateClientHourly: function() {\n // add the baked in fee to the base service fees\n return this.hourlyRate * this.percentFee;\n },\n\n handleClientFees: function(bidType, serviceFees, estimatedHours, filingFees) {\n var platformFees = 0.0;\n var totalAttorneyServiceFee = 0.0;\n\n if (bidType === UC.constants.BidType.HourlyRate) {\n totalAttorneyServiceFee = serviceFees * estimatedHours;\n } else {\n totalAttorneyServiceFee = serviceFees;\n }\n\n if (this.percentFee > 0) {\n\n // these are currently always the same as the attorney\n this.$('#txtEstimatedHoursClient').val(UC.utils.formatCurrency(estimatedHours));\n this.$('#txtFilingFeesClient').val(UC.utils.formatCurrency(filingFees));\n\n // add the baked in fee to the base service fees\n var clientServiceFees = serviceFees * this.percentFee;\n\n // add the baked in fee to the total attorney service fees\n var totalClientServiceFees = totalAttorneyServiceFee * this.percentFee;\n\n var amountClientServiceText = UC.utils.formatCurrency(clientServiceFees);\n this.$('#txtServiceFeesClient').val(amountClientServiceText);\n\n if (this.$platformFee.length) {\n platformFees = this.calculatePlatformFees(totalClientServiceFees, filingFees);\n var amountPlatformText = UC.utils.formatCurrency(platformFees, true);\n this.$platformFee.text(amountPlatformText);\n }\n\n var amountClientText = UC.utils.formatCurrency(totalClientServiceFees + filingFees + platformFees, true);\n this.$('#lblTotalFeesClient').text(amountClientText);\n }\n\n var totalText = UC.utils.formatCurrency(totalAttorneyServiceFee + filingFees, true);\n this.$('#lblTotalFees').text(totalText);\n\n // this should include any extra client fees from above\n if(platformFees > 0) {\n this.updateUpfrontPaymentPlatform(totalClientServiceFees, filingFees, platformFees);\n } else {\n this.updateUpfrontPaymentTerms(totalClientServiceFees, filingFees);\n }\n },\n\n handleAttorneyFees: function(options) {\n var bidType = options['bidType'];\n var serviceFees = options['serviceFees'];\n var estimatedHours = options['estimatedHours'];\n var filingFees = options['filingFees'];\n var platformFees = 0.0;\n var totalClientServiceFee = 0.0;\n\n if (bidType === UC.constants.BidType.HourlyRate) {\n totalClientServiceFee = serviceFees * estimatedHours;\n } else {\n totalClientServiceFee = serviceFees;\n }\n\n if (this.percentFee > 0) {\n\n // these are currently always the same as the client\n this.$('#txtEstimatedHours').val(UC.utils.formatCurrency(estimatedHours));\n this.$('#txtFilingFees').val(UC.utils.formatCurrency(filingFees));\n\n // divide the baked in fee to the client's service fees\n var attorneyServiceFees = serviceFees / this.percentFee;\n\n // divide the baked in fee to the total client service fees\n var totalAttorneyServiceFees = totalClientServiceFee / this.percentFee;\n\n var amountAttorneyServiceText = UC.utils.formatCurrency(attorneyServiceFees);\n this.$('#txtServiceFees').val(amountAttorneyServiceText);\n\n if (this.$platformFee.length) {\n platformFees = this.calculatePlatformFees(totalClientServiceFee, filingFees);\n var amountPlatformText = UC.utils.formatCurrency(platformFees, true);\n this.$platformFee.text(amountPlatformText);\n }\n\n var amountClientText = UC.utils.formatCurrency(totalClientServiceFee + filingFees + platformFees, true);\n this.$('#lblTotalFeesClient').text(amountClientText);\n }\n\n var totalText = UC.utils.formatCurrency(totalAttorneyServiceFees + filingFees, true);\n this.$('#lblTotalFees').text(totalText);\n\n // this should include any extra client fees from above\n if(platformFees > 0) {\n this.updateUpfrontPaymentPlatform(totalClientServiceFee, filingFees, platformFees);\n } else {\n this.updateUpfrontPaymentTerms(totalClientServiceFee, filingFees);\n }\n },\n\n calculatePlatformFees: function(totalClientServiceFees, filingFees) {\n var serviceRake = this.paymentProfile.platform_service_fee_percent / 100;\n var filingRake = this.paymentProfile.platform_filing_fee_percent / 100;\n var platformServiceFee = totalClientServiceFees * serviceRake;\n var platformFilingFee = filingFees * filingRake;\n return platformFilingFee + platformServiceFee;\n },\n\n updateUpfrontPaymentTerms: function(totalServiceFees, filingFees) {\n var $optionFiling = this.$('#optionFiling');\n\n if (filingFees > 0) {\n $optionFiling.removeAttr('disabled');\n $optionFiling.text('All Filing Fees ({0})'.format(UC.utils.formatCurrency(filingFees, true)));\n } else {\n $optionFiling.attr('disabled', 'disabled');\n $optionFiling.text('All Filing Fees');\n }\n\n this.$('#option75').text('75% of Service Fees ({0})'.format(UC.utils.formatCurrency(totalServiceFees * 0.75, true)));\n this.$('#option50').text('50% of Service Fees ({0})'.format(UC.utils.formatCurrency(totalServiceFees * 0.50, true)));\n this.$('#option25').text('25% of Service Fees ({0})'.format(UC.utils.formatCurrency(totalServiceFees * 0.25, true)));\n },\n\n updateUpfrontPaymentPlatform: function(totalServiceFees, filingFees, platformFees) {\n var upfrontPercentage = [75, 50, 25, 10];\n var $optionFiling = this.$('#optionFiling');\n\n if (filingFees > 0) {\n $optionFiling.removeAttr('disabled');\n } else {\n $optionFiling.attr('disabled', 'disabled');\n }\n\n $optionFiling.text('All Filing Fees');\n upfrontPercentage.map(function(percentage) {\n var totalUpfront = parseFloat((totalServiceFees + platformFees).toFixed(2)) * percentage / 100;\n return (\n this.$('#option' + percentage).text(\n '{0}% of Service + Platform Fees ({1})'.format(\n percentage,\n UC.utils.formatCurrency(totalUpfront , true)))\n )\n }.bind(this))\n },\n\n validateFees: function($fees, feeAmount, feeValidation) {\n if (feeValidation) {\n $fees.val('0.00');\n $fees.popover('show');\n $fees.data('closePopoverOnClick', false);\n\n var kissData = {\n userId: UC.user.id,\n serviceFeeAmountEntered: feeAmount\n };\n if (UC.job) kissData.jobId = UC.job.id;\n\n UC.utils.recordKissEvent('bid_service_fee_amount_popover_shown', kissData);\n }\n },\n\n validateServiceFees: function() {\n var minServiceFeeAmount = 50;\n var $serviceFees = this.$('#txtServiceFees');\n var serviceFeeAmount = UC.utils.currencyToFloat($serviceFees.val());\n var feeValidation = serviceFeeAmount < minServiceFeeAmount && serviceFeeAmount !== 0;\n this.validateFees($serviceFees, serviceFeeAmount, feeValidation);\n var $proposalType = this.$('#BidType');\n var bidType = parseInt($proposalType.val(), 10);\n\n if (bidType && bidType === UC.constants.BidType.HourlyRate\n && serviceFeeAmount != this.hourlyRate\n && this.hourlyRate > 0) {\n\n var kissData = {\n userId: UC.user.id,\n serviceFeeAmount: serviceFeeAmount,\n oldhourlyRate: this.hourlyRate\n };\n if (UC.job) kissData.jobId = UC.job.id;\n UC.utils.recordKissEvent('bid_calculator_fee_changed_from_hourly_rate', kissData);\n }\n },\n\n validateServiceFeesClient: function() {\n var minServiceFeeAmount = 50 * this.percentFee;\n var $serviceFees = this.$('#txtServiceFeesClient');\n var serviceFeeAmount = UC.utils.currencyToFloat($serviceFees.val());\n var feeValidation = serviceFeeAmount < minServiceFeeAmount && serviceFeeAmount !== 0;\n this.validateFees($serviceFees, serviceFeeAmount, feeValidation);\n },\n\n validateFilingFees: function() {\n var $filingFees = this.$('#txtFilingFees');\n var filingFeeAmount = UC.utils.currencyToFloat($filingFees.val());\n var feeValidation = filingFeeAmount < 0;\n this.validateFees($filingFees, filingFeeAmount, feeValidation);\n },\n\n validateFilingFeesClient: function() {\n var $filingFees = this.$('#txtFilingFeesClient');\n var filingFeeAmount = UC.utils.currencyToFloat($filingFees.val());\n var feeValidation = filingFeeAmount < 0;\n this.validateFees($filingFees, filingFeeAmount, feeValidation);\n },\n\n showHourlyFee: function(e) {\n if (e) e.preventDefault();\n\n var $serviceFees = this.$('#txtServiceFees');\n var serviceFeeAmount = UC.utils.currencyToFloat($serviceFees.val());\n\n UC.utils.showPanel(this.$('.panelHours'));\n this.$('#tabHourlyFee').addClass('active');\n this.$('#tabFixedFee').removeClass('active');\n this.$('#lblServiceFee').text('Hourly Rate:');\n this.setBidType(UC.constants.BidType.HourlyRate);\n\n if (this.hourlyRate > 0) {\n // Hourly Rate info\n if (serviceFeeAmount === 0) this.$('#txtServiceFees').val(UC.utils.formatCurrency(this.hourlyRate));\n this.$('#hourlyRate').text(UC.utils.formatCurrency(this.calculateClientHourly(), true) + '/hr');\n this.$('clientTimesheetLink').toggleClass('hidden', !this.has_invoices);\n this.$('#clientTimesheetLink').attr('href', '/invoices?UserId=' + this.client_id);\n UC.utils.showPanel(this.$('#hourlyNoticeRow'));\n } else {\n UC.utils.hidePanel(this.$('#hourlyNoticeRow'));\n }\n\n this.calculateProposalFees();\n\n $('.js-hourly-blurb').removeClass('hidden');\n },\n\n showFixedFee: function(e) {\n if (e) e.preventDefault();\n UC.utils.hidePanel(this.$('.panelHours'));\n UC.utils.hidePanel(this.$('#hourlyNoticeRow'));\n this.$('#tabFixedFee').addClass('active');\n this.$('#tabHourlyFee').removeClass('active');\n this.$('#lblServiceFee').text('Service Fees:');\n this.setBidType(UC.constants.BidType.FixedBid);\n this.calculateProposalFees();\n $('.js-hourly-blurb').addClass('hidden');\n },\n\n errors: function() {\n var errors = [];\n\n var $serviceFees = this.$('#txtServiceFees');\n var $filingFees = this.$('#txtFilingFees');\n var $estimatedHours = this.$('#txtEstimatedHours');\n var $proposalType = this.$('#BidType');\n\n var serviceFees = UC.utils.currencyToFloat($serviceFees.val());\n var filingFees = UC.utils.currencyToFloat($filingFees.val());\n var estimatedHours = UC.utils.currencyToFloat($estimatedHours.val());\n\n if (!this.paymentCount) {\n errors.push({element: this.$('#pymtTermsBox'), text: 'Please select payment terms'});\n }\n\n if (serviceFees <= 0) {\n errors.push({element: $serviceFees, text: 'Must be $50 or more'});\n var kissData = {\n userId: UC.user.id\n };\n if (UC.job) kissData.jobId = UC.job.id;\n UC.utils.recordKissEvent('bid_submitted_with_zero_service_fees', kissData);\n }\n \n if (filingFees < 0) {\n errors.push({element: $filingFees, text: 'Must be greater than zero'});\n }\n\n if (parseInt($proposalType.val(), 10) === UC.constants.BidType.HourlyRate && estimatedHours <= 0) {\n errors.push({element: $estimatedHours, text: 'Must be greater than zero'});\n }\n\n return errors;\n }\n });\n}();\n","UC.partials.JobInfoPanel = Backbone.View.extend({\n\n el: '#job-info-panel',\n\n events: {\n 'click #show-job-info' : 'showJobInfoPanelContent',\n 'click .hide-job-info' : 'hideJobInfoPanelContent',\n 'click .read-more-ji-panel' : 'showFullContent',\n 'click #qa-panel-read-more' : 'showFullQAPanel'\n },\n\n initialize: function() {\n this.$qAPanel = $('#qa-panel');\n this.$qAReadMore = $('#qa-panel-read-more');\n this.initQuesAnsPanel();\n },\n\n showJobInfoPanelContent: function() {\n $('#job-info-panel').addClass('show-content');\n },\n\n hideJobInfoPanelContent: function() {\n $('#job-info-panel').removeClass('show-content');\n },\n\n showFullContent: function(e) {\n e.preventDefault();\n $(e.currentTarget).closest('.ji-panel-section').addClass('show-full');\n },\n\n showFullQAPanel: function(e) {\n e.preventDefault()\n this.$('#qa-panel').addClass('show-all')\n this.$('#qa-panel-read-more').addClass('hidden');\n this.$('.fadeout-bottom').addClass('hidden');\n },\n\n initQuesAnsPanel: function() {\n var panelDiv = document.getElementById('qa-panel');\n if (!panelDiv) return;\n\n var panelDivHeight = panelDiv.clientHeight;\n var panelContentHeight = panelDiv.scrollHeight;\n\n if (panelContentHeight > panelDivHeight) {\n this.$('#qa-panel-read-more').removeClass('hidden');\n $(panelDiv).find('.fadeout-bottom').removeClass('hidden');\n this.$('.fadeout-bottom').removeClass('hidden');\n }\n }\n\n})\n","UC.partials.ModalContactAttorney = Backbone.View.extend({\n\n events: {\n 'click #close-modal-contact-attorney' : 'cancel',\n 'submit #form-contact-attorney' : 'onSubmit'\n },\n\n initialize: function () {\n this.contactAttorneyPath = '/attorney/contact/{0}'\n\n this.$sendButton = this.$el.find('#send-contact-message');\n this.sendButtonLoader = this.$sendButton.buttonLoader();\n },\n\n render: function (options) {\n this.attorneyId = options.attorneyId;\n this.attorneyName = options.attorneyName;\n\n this.$el.modal();\n },\n\n cancel: function (event) {\n event.preventDefault();\n this.close();\n },\n\n close: function () {\n this.attorneyId = undefined;\n this.attorneyName = undefined;\n this.$el.find('#contact-attorney-message').val('');\n this.$el.modal('hide');\n },\n\n onSubmit: function (event) {\n event.preventDefault();\n var data = this.$el.find('#form-contact-attorney').serializeJSON();\n\n if (data.message.Message !== '') {\n this.sendButtonLoader.showLoader();\n\n UC.net.post(this.contactAttorneyPath.format(this.attorneyId), data, function (response) {\n UC.utils.showNotificationSuccess(response.message);\n this.close();\n }.bind(this)).always(function () {\n this.sendButtonLoader.hideLoader();\n }.bind(this));\n }\n }\n});\n","UC.partials.ProposalRow = Backbone.View.extend({\n\n events: {\n 'click .cancel-sched-call' : 'openCancelScheduledCallModal',\n 'click .jp-instant-schedule-call' : 'instantScheduleCallClick'\n },\n\n initialize: function(opts) {\n if (opts.showMore) this.setProposalMessageReadMore();\n\n this.$instantCallBtn = this.$('.jp-instant-schedule-call');\n if (this.$instantCallBtn.length) this.$instantCallBtnLoader = this.$instantCallBtn.buttonLoader();\n\n new UC.components.FeesPopover({\n el: this.$el\n });\n\n this.bidId = this.$el.data('bidId');\n },\n\n setProposalMessageReadMore: function() {\n var messageDiv = this.el.getElementsByClassName('jp-message')[0];\n var messageDivHeight = messageDiv.clientHeight;\n var messageContentHeight = messageDiv.scrollHeight;\n\n if (messageContentHeight > messageDivHeight) {\n this.$el.addClass('show-read-more');\n $(messageDiv).find('.fadeout-bottom').removeClass('hidden');\n }\n },\n\n openCancelScheduledCallModal: function(e) {\n e.preventDefault();\n var scheduledCallId = $(e.currentTarget).data('scheduled-call-id');\n\n new UC.partials.ScheduledCallsCancel({scheduledCallId: scheduledCallId});\n },\n\n instantScheduleCallClick: function (e) {\n e.preventDefault();\n\n this.$instantCallBtnLoader.showLoader();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n new UC.modals.ModalPendingUser().render(\n 'Please confirm your email address before scheduling a call'\n );\n\n return false;\n }\n\n var $this = $(e.currentTarget),\n attorneyId = $this.data('attorney-id');\n\n new UC.partials.ScheduledCallsInstant({\n attorneyId: attorneyId,\n jobId: UC.job.id,\n bidId: this.bidId,\n hamCallback: function() {\n this.$instantCallBtnLoader.hideLoader();\n }.bind(this),\n onSuccessfulSchedule: this.onSuccessfulSchedule\n }).goHam();\n },\n\n onSuccessfulSchedule: function () {\n location.reload();\n }\n\n});\n","UC.modals.SubscriptionPromptModal = Backbone.View.extend({\n className: 'modal',\n\n template: UC.views.resolveHandlebarsTemplate('public/proposals/subscription_prompt_modal'),\n\n confirmationTemplate: UC.views.resolveHandlebarsTemplate('public/proposals/confirm_subscription_modal'),\n\n events: {\n 'click .js-accept': 'handleAcceptance',\n 'click .js-decline': 'handleDecline'\n },\n\n routes: {\n sendEmail: '/api/v1/request_for_subscription'\n },\n\n render: function() {\n this.$el.html(this.template()).modal();\n\n UC.utils.recordKissEvent('View Subscription Prompt');\n },\n\n handleAcceptance: function(e) {\n UC.utils.recordKissEvent('Click Accept Subscription');\n\n var data = { job_id: UC.constants.jobId }\n\n UC.net.post(this.routes.sendEmail, data).done(function() {\n this.$el.html(this.confirmationTemplate()).modal();\n }.bind(this))\n },\n\n handleDecline: function(e) {\n UC.utils.recordKissEvent('Click Decline Subscription');\n\n this.$el.html(this.template()).modal('hide');\n }\n});\n","UC = UC || {};\n\nUC.acceptJobProposal = {\n init: function(options) {\n this.$acceptProposalButton = $(options.acceptProposalButtonSelector);\n this.jobId = options.jobId;\n this.bidId = options.bidId;\n this.hideHireHelpModal = options.hideHireHelpModal;\n this.setListeners();\n },\n\n setListeners: function() {\n this.$acceptProposalButton.on('click', this.onAcceptProposalClick.bind(this));\n $('#chkHideHireHelpModal').on('click', this.onChkHideHireHelpModalClick.bind(this));\n $('#btnCloseHiringInfoModal').on('click', this.hideModal.bind(this));\n },\n\n onAcceptProposalClick: function(e) {\n e.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n new UC.modals.ModalPendingUser().render(\n 'Please confirm your email address before hiring an attorney'\n );\n } else {\n this.acceptProposal(e);\n }\n },\n\n acceptProposal: function(e) {\n if (UC.user && UC.user.impersonate) {\n this.showHireConfirmModalToImpersonator(e);\n } else {\n this.hireAttorney(e);\n }\n },\n\n showHireConfirmModalToImpersonator: function(e) {\n var attorney_name = $(e.target).closest('[data-attorney-name]').data().attorneyName,\n job_owner_name = UC.user.name,\n message = \"Are you sure you want to hire {0} on behalf of {1}?\".format(attorney_name, job_owner_name);\n new UC.components.confirmModal({\n title: 'Hiring Confirmation',\n text: message,\n callback: function(yes) {\n if (yes) {\n this.hireAttorney(e);\n }\n }.bind(this)\n });\n },\n\n hireAttorney: function(e) {\n var bidId = this.bidId || $(e.target).closest('[data-bid-id]').data().bidId;\n UC.net.post('/jobs/{0}/proposals/{1}/accept'.format(this.jobId, bidId), {})\n .done(this.handleAcceptProposalResponse.bind(this));\n },\n\n hideModal: function(e) {\n e.preventDefault();\n $('#modalHireInfo').modal('hide');\n },\n\n handleAcceptProposalResponse: function(data) {\n if (this.hideHireHelpModal || UC.constants.hideHireHelpModal) {\n window.location = data.next_url;\n } else {\n if (data.type === 'awarded') $('#btnCloseHiringInfoModal').addClass('hidden');\n $('#modalHireInfo').modal({\n backdrop: 'static',\n keyboard: false\n });\n\n $('#btnContinuePay').click(function (e) {\n this.onBtnContinuePay(e, data.next_url);\n }.bind(this));\n }\n },\n\n onBtnContinuePay: function(e, url) {\n e.preventDefault();\n var $modalPhoneNumber = $('#modalPhoneNumber');\n var $btnContinuePay = $('#btnContinuePay');\n var $modalHireInfo = $('#modalHireInfo');\n\n $modalPhoneNumber.closest('.row').removeClass('has-error');\n var valid = true;\n var updatePhone = false;\n if ($modalPhoneNumber && $modalPhoneNumber.length > 0) {\n updatePhone = true;\n var phone = $modalPhoneNumber.val().trim();\n if (phone == '') {\n UC.utils.showValidationErrors([\n {element: $modalPhoneNumber, text: 'Please enter a phone number'}\n ]);\n valid = false;\n } else {\n if (!/^[0-9\\.)(+\\s-]{7,15}$/.test(phone)) {\n UC.utils.showValidationErrors([\n {element: $modalPhoneNumber, text: 'Invalid phone number'}\n ]);\n valid = false;\n } else {\n phone = phone.replace(/[\\.)(+\\s-]+/g, '');\n if (!/^\\d{7,15}$/.test(phone)) {\n UC.utils.showValidationErrors([\n {element: $modalPhoneNumber, text: 'Invalid phone number'}\n ]);\n valid = false;\n }\n }\n }\n }\n\n if (valid && updatePhone) {\n var data = { info: {Phone: phone} };\n UC.net.post('/account/update_org_info', data, function (res) {\n if ($btnContinuePay.hasClass('jqmClose')) {\n $modalHireInfo.modal('hide');\n } else if (url) {\n location.href = url;\n } else {\n location.reload(true);\n }\n });\n } else if (valid) {\n if ($btnContinuePay.hasClass('jqmClose')) {\n $modalHireInfo.modal('hide');\n } else if (url) {\n location.href = url;\n } else {\n location.reload(true);\n }\n }\n },\n\n onChkHideHireHelpModalClick: function () {\n var $chkHideHireHelpModal = $('#chkHideHireHelpModal');\n UC.net.post('/account/update_help_display_option', {\n option: 'hire',\n optionValue: $chkHideHireHelpModal.is(':checked')\n });\n }\n};\n","UC.views.ProposalsEdit = Backbone.View.extend({\n\n initialize: function() {\n new UC.partials.ProposalsForm({\n paymentProfile: UC.constants.payment_profile,\n attorneyClient: UC.constants.attorney_client,\n toggleToHourly: UC.constants.jobBidType && UC.constants.jobBidType === UC.constants.BidType.HourlyRate,\n attorneyHasPayoutAcct: UC.constants.hasPayout,\n attorneyAccountUnverified: UC.constants.unverifiedAccount,\n submitSelector: '#btnSubmitProposal',\n validatePropMessagesUpdated: false,\n jobId: UC.job.id\n });\n\n new UC.partials.JobInfoPanel();\n }\n\n});\n","UC.views.ProposalsHire = Backbone.View.extend({\n\n initialize: function() {\n var paymentInfo;\n if($(\".proposals .hire.v1\").length > 0) {\n paymentInfo = new UC.components.PaymentInfoV1({\n el: $('body.proposals .hire.v1'),\n showDefaultButtonLoader: true\n });\n } else {\n paymentInfo = new UC.components.PaymentInfo({ el: $('body') });\n }\n this.components = {\n payment_info: paymentInfo,\n billingSummary: new UC.components.BillingSummary({ el: $('#billing-summary') })\n };\n\n UC.utils.sendNesEvent('start_opportunity_to_pay', {\n upfront_payment: !!UC.constants.upfrontPayment,\n attorney_id: UC.bid.userId\n });\n }\n});\n","import './accept_proposal'\n\nUC.views.ProposalsIndex = Backbone.View.extend({\n\n events: {\n 'click #no-props-close-job' : 'onClickedNoPropsCloseJob',\n 'click #request-more-bids' : 'onRequestMoreBidsClick',\n 'click .jp-send-message' : 'openContactModal',\n 'click .jp-invite-btn' : 'openInviteModal',\n 'click #js-suggested-attorneys-view-all': 'onClickViewAllAttorneys'\n },\n\n initialize: function() {\n UC.utils.initRatingDimensions('.jp-reviews');\n UC.utils.initRatingDimensions('.suggested-attorney-reviews')\n\n $('body').on('proposalDeclined', this.onProposalDeclined.bind(this));\n\n var queryParams = UC.utils.queryStringParams();\n\n if (UC.constants.showImmediateBiddingRetractNotification) {\n this.showImmediateBiddingRetractNotification();\n } else if (queryParams['prompt_for_subscription'] === 'true') {\n var promptCookieValue = 'viewed_prompt_for_subscription';\n\n if(document.cookie.indexOf(promptCookieValue) !== -1) return;\n\n document.cookie = promptCookieValue + \"=true; max-age=60*60\"\n new UC.modals.SubscriptionPromptModal().render();\n }\n\n this.$el.find('.invite-tooltip').tooltip({\n trigger: 'hover',\n title: 'Ask this lawyer to submit a proposal for your project. You may request proposals from more than one lawyer.'\n });\n\n this.initProposalRows();\n\n this.modalContactAttorney = new UC.partials.ModalContactAttorney({\n el: '#modal-contact-attorney'\n });\n\n new UC.partials.FeesDetails(); \n\n UC.acceptJobProposal.init({\n acceptProposalButtonSelector: '.jp-accept-btn',\n jobId: UC.constants.jobId,\n hideHireHelpModal: UC.constants.hideHireHelpModal\n });\n\n this.setBtnLoaders();\n },\n\n setBtnLoaders: function() {\n $('.jp-accept-btn').each(function() {\n var $this = $(this);\n $this.data('loader', $this.buttonLoader());\n });\n\n this.btnContinuePayLoader = $('#btnContinuePay').buttonLoader();\n this.requestMoreBidsButtonLoader = this.$el.find('#request-more-bids').buttonLoader();\n },\n\n openContactModal: function (event) {\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n this.showPendingModal('Please confirm your email address before sending a message');\n return false;\n }\n var targetData = event.target.dataset;\n this.modalContactAttorney.render({\n attorneyId: targetData.attorneyId || targetData.aid,\n attorneyName: targetData.attorneyName\n });\n },\n\n openInviteModal: function (event) {\n event.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n this.showPendingModal('Please confirm your email address before requesting a proposal');\n return false;\n }\n\n var $btn = $(event.currentTarget);\n var $row = $btn.closest('.suggested-attorney-row');\n var attorney_id = $btn.data('attorney-id');\n var attorney_first_name = $btn.data('attorney-first-name');\n\n new UC.partials.JobsModalRequestInvite({\n attorney_id: attorney_id,\n attorney_first_name: attorney_first_name,\n callback: function() {\n $('.js-jp-invite-container-'+this.attorney_id).addClass('hide');\n $('.js-jp-invited-container-'+this.attorney_id).removeClass('hide');\n }\n }).render();\n\n UC.utils.recordKissEvent('invite_proposal_click', {\n attorney_id: attorney_id,\n job_id: UC.job.id,\n referrer: document.referrer\n });\n },\n\n showPendingModal: function (message) {\n new UC.modals.ModalPendingUser().render(message);\n },\n\n onClickedNoPropsCloseJob: function(e) {\n e.preventDefault();\n $(e.currentTarget).trigger('userCancelJobClick');\n },\n\n onRequestMoreBidsClick: function(e) {\n e.preventDefault();\n this.requestMoreBidsButtonLoader.showLoader();\n\n UC.net.post(\n '/job/{0}/immediate_bidding_request_proposals'.format(UC.job.id),\n {}\n ).fail(function() {\n this.requestMoreBidsButtonLoader.hideLoader();\n }.bind(this));\n },\n\n onProposalDeclined: function(e) {\n if (!this.$el.find('.jp-single').hasClass('submitted')) {\n this.$el.find('#request-addl-proposals-container').removeClass('hidden');\n }\n },\n\n showImmediateBiddingRetractNotification: function() {\n var message = 'Some of the suggested lawyers are unable to work on your project. We have invited additional attorneys to submit proposals, and you will be able to review these proposals soon.'\n\n UC.utils.showNotification(message, null, 0);\n UC.utils.recordKissEvent('immediate_bidding_retract_notification_shown', {\n loc: 'job_proposals_page'\n });\n },\n\n onClickViewAllAttorneys: function() {\n this.$('.js-suggested-attorney-row').removeClass('hidden');\n this.$('#js-suggested-attorneys-view-all').remove();\n\n UC.utils.recordKissEvent('Clicked View All', { job_id: UC.job.id });\n },\n\n initProposalRows: function() {\n this.$el.find('.jp-single').each(function(i, elem) {\n new UC.partials.ProposalRow({\n el: elem,\n showMore: true\n })\n })\n }\n});\n","UC.views.ProposalsIntro = Backbone.View.extend({\n initialize: function() {\n new UC.views.JobsProposals({ el: this.$el });\n },\n});\n","UC.views.ProposalsNew = Backbone.View.extend({\n\n initialize: function() {\n new UC.partials.ProposalsForm({\n paymentProfile: UC.constants.payment_profile,\n attorneyClient: UC.constants.attorney_client,\n toggleToHourly: UC.constants.jobBidType && UC.constants.jobBidType === UC.constants.BidType.HourlyRate,\n attorneyHasPayoutAcct: UC.constants.hasPayout,\n attorneyAccountUnverified: UC.constants.unverifiedAccount,\n submitSelector: '#btnSubmitProposal',\n validatePropMessagesUpdated: true,\n jobId: UC.job.id\n })\n\n new UC.partials.JobInfoPanel();\n }\n});\n","import './accept_proposal'\n\n!function() {\n\n UC.views.ProposalsShow = Backbone.View.extend({\n\n events: {\n 'click .jp-contact-btn': 'focusReply'\n },\n\n initialize: function() {\n this.processAction();\n\n if (UC.constants.showProposalTour === true) {\n this.showTour();\n UC.net.post('/account/update_help_display_option', {\n option: 'single_proposal_tour', optionValue: true\n });\n }\n\n UC.utils.initRatingDimensions('.jp-reviews');\n\n new UC.partials.ProposalRow({ el: '.jp-single' });\n\n new UC.partials.MessagesCreate({\n jobOwnerId: UC.constants.jobOwnerId,\n attorneyId: UC.constants.attorneyId,\n jobId: UC.constants.jobId\n });\n\n new UC.partials.FeesDetails();\n\n UC.acceptJobProposal.init({\n acceptProposalButtonSelector: '.jp-accept-btn',\n jobId: UC.constants.jobId,\n bidId: UC.constants.bidId,\n hideHireHelpModal: UC.constants.hideHireHelpModal\n });\n\n this.setBtnLoaders();\n },\n\n setBtnLoaders: function() {\n $('.jp-accept-btn').each(function() {\n var $this = $(this);\n $this.data('loader', $this.buttonLoader());\n });\n\n this.btnSendReply = $('#btnSendReply').buttonLoader();\n this.btnContinuePayLoader = $('#btnContinuePay').buttonLoader();\n },\n\n processAction: function() {\n var action = UC.utils.getParameterByName('action');\n\n if (!UC.constants.isBidSubmitted || UC.user.id != UC.job.userId) {\n // perform no action since this bid isn't in submitted\n // status anymore or the current user isn't the owner\n return;\n }\n\n switch(action) {\n case 'positive':\n UC.utils.showNotification('Thanks for your feedback! You can follow up or hire your attorney below.', UC.constants.results.success);\n break;\n }\n },\n\n focusReply: function(e) {\n var $message = $('#txtReplyMessage');\n\n // There are two states for this page: one in which there is a message box,\n // where clicking jp-contact-btn will scroll to the message box, and one\n // in which there is no message box, where clicking jp-contact-btn should\n // link to the job messages page. Only in the first case do we wish to\n // proceed.\n if ($message.length === 0) {\n return;\n }\n\n e.preventDefault();\n\n if (UC.user.status === UC.constants.UserStatus.Pending) {\n var message = 'Please confirm your email address before sending a message';\n\n new UC.modals.ModalPendingUser().render(message);\n\n return false;\n }\n\n if ($message.length > 0) {\n $message.focus();\n UC.utils.scrollToElement($message);\n }\n },\n\n showTour: function() {\n this.$tourModal = this.$el.find('#modalProposalTour');\n this.$tourModal.find('.take-proposal-tour').click(this.startTour.bind(this));\n this.$tourModal.modal();\n },\n\n startTour: function(e) {\n e.preventDefault();\n this.$tourModal.modal('hide');\n\n var steps = [\n {\n element: $('.jp-attorney-name'),\n text: \"You can view an attorney's profile to see additional information about their background, specific areas of expertise, prior work history, etc. You can also read reviews to see what other clients have said about working with this attorney.\",\n position: 'bottom-middle-aligned'\n },\n {\n element: $('#panelProposalContact'),\n text: 'Reply to an attorney if you have questions about their specific proposal or about their background. Messages are free to send and we encourage you to clarify any questions before hiring an attorney.',\n position: 'top'\n },\n {\n element: $('.jp-main-actions'),\n text: \"Once you've decided to accept a proposal, you can click the Hire button to get started. If you do not wish to hire this attorney, you can decline the proposal and tell us why that attorney wasn't a good fit. We'll use your feedback to help send you more relevant proposals.\",\n position: 'top'\n }\n ];\n\n window.intro = UC.utils.initIntroJs(steps);\n\n intro.onchange(function(el) {\n var $el = $(el);\n var step = $el.data('step');\n\n UC.utils.recordKissEvent('Proposal tour next step', {\n 'step': step,\n 'page-path': window.location.pathname\n });\n }).onexit(function() {\n UC.utils.recordKissEvent('Proposal tour exited', {\n 'page-path': window.location.pathname\n });\n }).oncomplete(function() {\n UC.utils.recordKissEvent('Proposal tour completed', {\n 'page-path': window.location.pathname\n });\n });\n\n intro.onbeforechange(function(el) {\n if ($(el).data('step') === 2) {\n $('#panelProposalContact').addClass('pad-10');\n } else {\n $('#panelProposalContact').removeClass('pad-10');\n }\n })\n\n UC.utils.recordKissEvent('Product tour started', {\n 'page-path': window.location.pathname\n });\n }\n });\n}();\n","!function() {\n\n UC.views.ReferralsAttorney = Backbone.View.extend({\n events: {\n 'submit #attorney-referral-form' : 'submitReferralForm',\n 'click #open-learn-more-modal' : 'openLearnMoreModalClick',\n 'click #learn-more' : 'openLearnMoreModalClick'\n },\n\n initialize: function() {\n _.bindAll(this, 'handleReferralFormSuccess');\n this.$select = this.$el.find('select#attorneyClients');\n if (this.$select.length > 0) {\n this.$select.select2({placeholder: 'Select...'});\n }\n this.$submitLoader = $('input[type=\"submit\"]').buttonLoader();\n new UC.components.InputWithCopyButton({inputId: 'referral-url'});\n },\n\n submitReferralForm: function(e) {\n e.preventDefault();\n var $form = $(e.currentTarget);\n\n var formUrl = $form.attr('action');\n var typedAddresses = $form.find('#referral_email_addresses').val().split(',');\n var formData = {\n referral_message: $form.find('#attorney-referral-message').val(),\n };\n\n if ( this.$select.length > 0) {\n formData.referral_email_addresses = this.$select.val() || [];\n } else {\n formData.referral_email_addresses = [];\n }\n\n typedAddresses.forEach(function(address){\n var trimmed = address.trim();\n if (trimmed.length > 0 && formData.referral_email_addresses.indexOf(trimmed) === -1) {\n formData.referral_email_addresses.push(trimmed);\n }\n })\n\n this.$submitLoader.showLoader();\n\n UC.net.post(formUrl, formData, function (error, result) {\n this.$submitLoader.hideLoader();\n if (error) {\n UC.utils.showNotification(error, UC.constants.results.failure);\n } else {\n this.handleReferralFormSuccess();\n }\n }.bind(this));\n\n return false;\n },\n\n handleReferralFormSuccess: function(response) {\n $('#referral-thank-you-modal').modal();\n $('#referral_email_addresses').val('');\n $('#attorney-referral-message').val('');\n\n if (this.$select.length > 0) {\n this.$select.val('').trigger('change');\n }\n },\n\n openLearnMoreModalClick: function(e) {\n e.preventDefault();\n $('#referral-learn-more-modal').modal();\n }\n })\n\n}();\n","!function() {\n\n UC.views.ReferralsAttorneyReferralLanding = Backbone.View.extend({\n events: {\n 'click #bioMoreLink' : 'showFullBio',\n 'click .get-started-btn' : 'onClickGetStartedBtn'\n },\n\n initialize: function() {\n UC.utils.initRatingDimensions('.review-dimensions');\n this.setTrackingCode();\n },\n\n setTrackingCode: function() {\n UC.net.put(UC.constants.referral_path);\n },\n\n showFullBio: function(e) {\n e.preventDefault();\n $('.bio-full').show();\n $('#bioMoreLink').hide();\n },\n\n onClickGetStartedBtn: function(e) {\n e.preventDefault();\n $('#atty-ref-get-started-modal').modal();\n }\n })\n\n}();\n","!function() {\n UC.views.ReferralsIndex = Backbone.View.extend({\n events: {\n 'submit #formInviteEmails': 'inviteEmails',\n 'focus #ReferralCode': 'selectAll',\n 'click #learn-more': 'learnMore',\n },\n\n initialize: function() {\n UC.utils.recordKissClickEvent('#social-facebook', 'Referrals Index - Facebook Share Click');\n UC.utils.recordKissClickEvent('#social-twitter', 'Referrals Index - Twitter Share Click');\n UC.utils.recordKissClickEvent('#social-gplus', 'Referrals Index - Google Plus Share Click');\n UC.utils.recordKissClickEvent('#social-linkedin', 'Referrals Index - LinkedIn Share Click');\n new UC.components.InputWithCopyButton({inputId: 'referral-url'});\n },\n\n inviteEmails: function(e) {\n e.preventDefault();\n\n var $btn = this.$el.find('#btnSubmitInviteEmails');\n var $emails = this.$el.find('#emails');\n var emails = $emails.val();\n\n if (!emails) {\n $emails.closest('.input-group').addClass('has-error');\n return false;\n } else {\n $emails.closest('.input-group').removeClass('has-error');\n }\n\n $btn.addClass('.disabled').attr('disabled', true);\n\n UC.net.post(UC.constants.referrals_path, { emails: emails }, function(result) {\n UC.utils.recordKissEvent('Referrals Index - Emails Invited', {\n emails: emails\n });\n UC.utils.showNotification('Invites were successfully sent.', UC.constants.results.success);\n this.$el.find('#referral-list').replaceWith(result.html);\n $emails.val('');\n }.bind(this)).always(function() {\n $btn.removeClass('.disabled').attr('disabled', false);\n });\n },\n\n selectAll: function(e) {\n var $el = $(e.currentTarget);\n\n $el.select();\n\n // Work around Chrome's little problem\n $el.mouseup(function() {\n // Prevent further mouseup intervention\n $el.unbind(\"mouseup\");\n return false;\n });\n },\n\n learnMore: function(e) {\n e.preventDefault();\n this.$el.find('#modalLearnMore').modal();\n }\n });\n\n}();\n","!function() {\n\n UC.views.ReferralsLanding = Backbone.View.extend({\n\n events: {\n 'click .get-started': 'getStarted'\n },\n\n initialize: function() {\n this.setTrackingCode();\n\n UC.utils.recordKissClickEvent('#sign-up', 'Referrals Landing - Sign Up Btn Bottom (in modal)');\n\n UC.utils.recordKissClickEvent('#get-started-top', 'Referrals Landing - Get Started Btn Top');\n\n UC.utils.recordKissClickEvent('#get-started-bottom', 'Referrals Landing - Get Started Btn Bottom');\n },\n\n // updates user's tracking code on referral\n setTrackingCode: function() {\n UC.net.put(UC.constants.referral_path);\n },\n\n getStarted: function(e) {\n e.preventDefault();\n this.$el.find('#modalGetStarted').modal();\n }\n });\n\n}();\n","!function() {\n\n UC.partials.ReviewsForm = Backbone.View.extend({\n\n events: {\n 'ajax:before #reviewForm': 'validate',\n 'ajax:success': 'success',\n 'ajax:error #reviewForm': 'formError',\n 'change .rating': 'renderAverageRating'\n },\n\n initialize: function(options) {\n this.options = options || {};\n\n this.renderAverageRating();\n this.$form = this.$('#reviewForm');\n this.loader = this.$('#btnSubmitReview').buttonLoader();\n },\n\n renderAverageRating: function() {\n this.$('#ratingAverage').text(this.getAverageRating());\n },\n\n getAverageRating: function() {\n var sum = 0;\n var count = 0;\n\n this.$el.find('#ratingDimensions .rating').each(function() {\n var $el = $(this);\n if($el.is(\"input\")) { // v9\n if($el.val() > 0) {\n sum += parseFloat($el.val(), 10);\n count++;\n }\n } else {\n var $checked = $el.find('input:checked');\n\n if ($checked.length > 0) {\n sum += parseFloat($checked.val(), 10);\n count++;\n }\n }\n });\n\n var average = (sum / count) || 0;\n\n // round to two decimal places\n return Math.round(average * 100) / 100;\n },\n\n buildRatingObject: function() {\n var ratings = {};\n var ratingsElements = this.$el.find('#ratingDimensions .rating');\n var ratingsLength = ratingsElements.length;\n\n ratingsElements.each(function() {\n var $el = $(this);\n if($el.is(\"input\")) { // v9\n if ($el.val() > 0) {\n ratings[$el.attr('name')] = $el.val();\n } else {\n return false;\n }\n } else {\n var $checked = $el.find('input:checked');\n\n if ($checked.length > 0) {\n ratings[$el.data('type')] = $checked.val();\n } else {\n return false;\n }\n }\n });\n\n if (Object.keys(ratings).length === ratingsLength) {\n return ratings;\n }\n },\n\n validate: function() {\n return this.validateDefaultReview();\n },\n\n // default review validation, can be overridden\n validateDefaultReview: function() {\n this.$('.has-error').removeClass('has-error');\n\n var errors = [],\n ratings = this.buildRatingObject(),\n review = this.$form.serializeJSON().review;\n\n if (review.hasOwnProperty('NonUpcounselClientName') && review.NonUpcounselClientName.trim() === '') {\n errors.push({element: this.$el.find('#review_NonUpcounselClientName'), text: 'Please introduce yourself.'});\n }\n\n if (review.hasOwnProperty('JobTitle') && review.JobTitle.trim() === '') {\n errors.push({element: this.$el.find('#review_JobTitle'), text: 'Please describe what was your job about.'});\n }\n\n if (!ratings) {\n errors.push({element: this.$el.find('#ratingDimensions'), text: 'Please rate this attorney on all 4 dimensions.'});\n }\n\n if (review.DescriptionPublic.trim() === '') {\n errors.push({element: this.$el.find('#review_DescriptionPublic'), text: 'Please write a review.'});\n }\n\n if(this.$('.review_RecommendAttorneyScore').length != 0 && !this.$('.review_RecommendAttorneyScore').is(':checked')) {\n errors.push({element: this.$('#review_RecommendAttorneyScore_errorMessage'), text: 'Please indicate how likely you are to recommend the attorney.'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {scrollToFirst: true});\n return false;\n } else {\n this.loader.showLoader();\n return true;\n }\n },\n\n formError: function() {\n this.loader.hideLoader();\n },\n\n success: function(e, data) {\n if (data && data.url) {\n window.location = data.url;\n } else {\n var html = $(data).find('#jobBoxReview').html();\n\n this.$el.html(html);\n UC.utils.initRatingDimensions();\n this.$el.find('.rate-star').starate();\n UC.utils.showNotification('Review submitted successfully', UC.constants.results.success);\n }\n }\n });\n}();\n","!function() {\n\n UC.views.ReviewsNew = UC.views.AttorneyReviewPortalNewReview = Backbone.View.extend({\n\n elements: {},\n\n initialize: function() {\n this.skipUrl = $('#aSkip').attr('href');\n\n this.loader = this.$el.find('#btnSubmitReview').buttonLoader();\n this.$el.find('#review_AdditionalWork').select2({width: '100%'});\n\n this.reviewsForm = new UC.partials.ReviewsForm({\n el: '#attorneyReviewPage'\n });\n }\n })\n}();\n","UC.partials.ScheduledCallsCancel = Backbone.View.extend({\n\n tagName: 'div',\n\n className: 'modal fade',\n\n id: 'cancel-sched-call',\n\n template: UC.views.resolveHandlebarsTemplate(\"public/calls/cancel\"),\n\n events: {\n 'hidden.bs.modal': 'remove',\n 'submit' : 'formSubmit'\n },\n\n routes: {\n cancel_scheduled_call: '/scheduled_calls/{0}/cancel'\n },\n\n initialize: function(opts) {\n this.scheduledCallId = opts.scheduledCallId;\n this.render();\n },\n\n render: function() {\n this.$el.html(this.template({formPath: this.formPath()}));\n this.$el.modal();\n this.$form = this.$('form');\n this.$submitBtnLoader = this.$('#submit-sc-cancel').buttonLoader();\n\n UC.utils.recordKissEvent('cancel_sched_call_modal_opened', {\n loc: window.location.href\n });\n\n },\n\n formPath: function() {\n return this.routes.cancel_scheduled_call.format(this.scheduledCallId);\n },\n\n formSubmit: function(e) {\n e.preventDefault();\n this.$submitBtnLoader.showLoader();\n\n var data = this.$form.serializeJSON();\n\n UC.net.post(this.$form.attr('action'), data)\n .done(function() {\n location.reload();\n });\n }\n\n});\n","UC.partials.DayTimeSelector = Backbone.View.extend({\n\n className: 'modal-content',\n\n events: {\n 'click #js-open-time-zone-change': 'openTimezoneChange',\n 'click #js-close-time-zone-change': 'closeTimezoneChange',\n 'click .js-day': 'daySelected',\n 'click .js-time': 'timeSelected',\n 'click #js-previous-available-days-link': 'previousAvailableDays',\n 'click #js-next-available-days-link': 'nextAvailableDays',\n 'click .js-previous-available-times-link': 'previousAvailableTimes',\n 'click .js-next-available-times-link': 'nextAvailableTimes'\n },\n\n setSelectTimeHeader: function(day) {\n var text = (day) ? 'Select a time on ' + day : 'Select a time';\n this.$('#js-select-a-time-header').text('2. ' + text);\n this.$('#js-select-a-day-text').toggleClass('hidden', !!day);\n },\n\n nextAvailableDays: function(e) {\n e.preventDefault();\n\n UC.utils.recordKissEvent('schedule instant call - clicked next available days', this.standardKissData());\n\n var lastVisibleIndex = this.$('.js-day:not(.btn-hidden):last').data('index');\n var nextVisible = this.$('.js-day').slice(lastVisibleIndex + 1, lastVisibleIndex + 4);\n $('.js-day').addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n\n this.toggleDayPaginationLinks();\n },\n\n previousAvailableDays: function(e) {\n e.preventDefault();\n\n UC.utils.recordKissEvent('schedule instant call - clicked previous available days', this.standardKissData());\n\n var firstVisibleIndex = this.$('.js-day:not(.btn-hidden):first').data('index');\n var nextVisible =this. $('.js-day').slice(firstVisibleIndex - 3, firstVisibleIndex);\n $('.js-day').addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n\n this.toggleDayPaginationLinks();\n },\n\n toggleDayPaginationLinks: function() {\n var showingFirstDays = this.$('.js-day:not(.btn-hidden):first').data('index') == 0;\n $('#js-previous-available-days-text').toggleClass('hidden', !showingFirstDays);\n $('#js-previous-available-days-link').toggleClass('hidden', showingFirstDays);\n\n var showingLastDays = this.$('.js-day:not(.btn-hidden):last').data('index') + 1 >= $('.js-day').length;\n\n $('#js-next-available-days-text').toggleClass('hidden', !showingLastDays);\n $('#js-next-available-days-link').toggleClass('hidden', showingLastDays);\n },\n\n previousAvailableTimes: function(e) {\n e.preventDefault();\n\n UC.utils.recordKissEvent('schedule instant call - clicked previous available times', this.standardKissData());\n\n var $currentTimesContainer = this.$('.js-times:not(.hidden)');\n var $timeElements = $currentTimesContainer.find('.js-time');\n var firstVisibleIndex = $timeElements.filter(':not(.btn-hidden):first').data('index');\n var nextVisible = $timeElements.slice(firstVisibleIndex - 6, firstVisibleIndex);\n\n $timeElements.addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n\n this.toggleTimePaginationLinks($currentTimesContainer);\n },\n\n nextAvailableTimes: function(e) {\n e.preventDefault();\n\n UC.utils.recordKissEvent('schedule instant call - clicked next available times', this.standardKissData());\n\n var $currentTimesContainer = this.$('.js-times:not(.hidden)');\n\n var $timeElements = $currentTimesContainer.find('.js-time');\n var lastVisibleIndex = $timeElements.filter(':not(.btn-hidden):last').data('index');\n var nextVisible = $timeElements.slice(lastVisibleIndex + 1, lastVisibleIndex + 7);\n $timeElements.addClass('btn-hidden');\n $(nextVisible).removeClass('btn-hidden');\n\n this.toggleTimePaginationLinks($currentTimesContainer);\n },\n\n toggleTimePaginationLinks: function($container) {\n var $timeElements = $container.find('.js-time');\n\n var showingFirstTimes = $timeElements.filter(':not(.btn-hidden):first').data('index') == 0;\n\n $container.find('.js-previous-available-times-text').toggleClass('hidden', !showingFirstTimes);\n $container.find('.js-previous-available-times-link').toggleClass('hidden', showingFirstTimes);\n\n var showingLastTimes = $timeElements.filter(':not(.btn-hidden):last').data('index') + 1 >= $timeElements.length;\n\n this.$('.js-times').find('.js-next-available-times-text').toggleClass('hidden', !showingLastTimes);\n this.$('.js-times').find('.js-next-available-times-link').toggleClass('hidden', showingLastTimes);\n },\n\n resetTimes: function(index) {\n var $container = this.$('.js-times[data-index=\"' + index + '\"]');\n $container.find('.js-time').addClass('btn-hidden');\n $container.find('.js-time').slice(0, 6).removeClass('btn-hidden');\n\n this.toggleTimePaginationLinks($container);\n\n this.$('.js-next').addClass('hidden');\n\n this.$('.js-time').removeClass('btn-primary').removeClass('js-time-selected').addClass('btn-default-outline');\n },\n\n\n daySelected: function(e) {\n var $button = $(e.currentTarget);\n var index = $button.data('index');\n\n this.resetTimes(index);\n\n this.$('.js-times').addClass('hidden');\n\n if ($button.hasClass('js-day-selected')) {\n $button.removeClass('js-day-selected');\n\n this.setSelectTimeHeader();\n\n } else {\n this.$('.js-day').removeClass('js-day-selected');\n $button.addClass('js-day-selected');\n\n this.setSelectTimeHeader($button.data('dateShort'));\n\n this.$('.js-times').addClass('hidden');\n this.$('.js-times[data-index=\"'+index+'\"]').removeClass('hidden');\n }\n\n this.$('.js-day').removeClass('btn-primary').addClass('btn-default-outline');\n this.$('.js-day-selected').addClass('btn-primary').removeClass('btn-default-outline');\n },\n\n timeSelected: function(e) {\n $button = $(e.currentTarget);\n\n if ($button.hasClass('js-time-selected')) {\n $button.removeClass('js-time-selected');\n this.$('.js-next').addClass('hidden');\n } else {\n this.$('.js-time').removeClass('js-time-selected');\n $button.addClass('js-time-selected');\n\n this.$('.js-next').removeClass('hidden');\n\n this.$('#js-scheduled-date-time-epoch').val($button.data('datetimeEpoch'));\n this.$('#js-scheduled-date-time').val($button.data('datetimeRaw'));\n\n this.$('.js-selected-day-time').text($button.data('datetimeLong'));\n }\n\n this.$('.js-time').removeClass('btn-primary').addClass('btn-default-outline');\n this.$('.js-time-selected').addClass('btn-primary').removeClass('btn-default-outline');\n },\n\n serializeForm: function() {\n var data = {\n time_zone: this.$('#js-time-zone').val(),\n message: this.$('#js-message').val(),\n phone: this.$('#js-phone-number').val(),\n ScheduledDateTime: this.$('#js-scheduled-date-time').val()\n };\n\n return data;\n },\n\n validate: function() {\n var errors = [];\n\n var $phone = this.$('#js-phone-number');\n\n if($phone.val().isBlank()) {\n errors.push({\n element: $phone,\n text: 'Please enter your preferred phone number',\n className: 'form-group'\n });\n }\n\n var $message = this.$('#js-message');\n if($message.val().isBlank()) {\n errors.push({\n element: $message,\n text: 'Please include a message',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n } else {\n return true;\n }\n },\n\n openTimezoneChange: function(e) {\n e.preventDefault();\n\n this.$('#js-change-time-zone').removeClass('hidden');\n },\n\n closeTimezoneChange: function(e) {\n e.preventDefault();\n\n this.$('#js-change-time-zone').addClass('hidden');\n },\n\n standardKissData: function() {\n return {\n bid_id: this.bidId,\n job_id: this.jobId\n };\n }\n});\n","UC.partials.ScheduledCallsChooseAvailable = Backbone.View.extend({\n\n el: '#scheduled_calls_form_reply',\n\n events: {\n 'submit': 'reply',\n 'change #js-time-zones': 'changeTimeZone',\n 'click .js-switch-pages': 'nextButtonClick',\n 'click .js-confirm-back': 'nextButtonClick',\n 'click .js-not-available-btn': 'unavailableButtonClick',\n 'click .js-cancel-back': 'unavailableButtonClick',\n 'click .js-cancel-submit': 'sendMessageClick',\n 'click .js-cancel': 'cancelClick',\n },\n\n routes: {\n scheduled_calls_show: '/scheduled_calls/{0}',\n instant: '/users/{0}/scheduled_calls/instant',\n scheduled_calls_provide_alternatives: '/scheduled_calls/{0}/provide_alternatives',\n create_from_instant_reply_alternatives: '/users/{0}/scheduled_calls/create_from_instant_reply_alternatives',\n scheduled_calls_cancel: '/scheduled_calls/{0}/cancel'\n },\n\n initialize: function(options) {\n this.options = options || {};\n this.time_zone_selected = false;\n this.scheduled_call_id = this.$('#scheduled_call_id').val();\n this.loader = (options.submitButton || this.$('.btnScheduleCallReply')).buttonLoader();\n this.jobId = options.jobId;\n this.instant = options.instant;\n this.attorneyId = options.attorneyId;\n this.defaultMessage = options.defaultMessage;\n this.isModal = !!options.isModal;\n\n this.selectTimeZone();\n\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n\n this.times_available_view = new UC.partials.ScheduledCallsTimesAvailable({\n el: this.$('#times-available')\n });\n\n this.dayTimeSelector = new UC.partials.DayTimeSelector({\n el: this.$el\n });\n },\n\n selectTimeZone: function() {\n if (this.time_zone_selected === false) {\n // only try selecting the user's time zone once\n this.$('#TimeZone').selectTimeZone();\n this.time_zone_selected = true;\n }\n },\n\n changeTimeZone: function(e) {\n e.preventDefault();\n var path;\n\n if (this.instant) {\n path = '/users/{0}/scheduled_calls/instant'.format(this.attorneyId);\n } else {\n path = this.routes.scheduled_calls_show.format(this.scheduled_call_id);\n }\n\n var data = {\n time_zone: this.$('#js-time-zones').val(),\n job_id: this.jobId,\n is_modal: this.isModal\n };\n\n UC.net.get(path, data, function(res) {\n this.$('#js-show-call-modal').replaceWith(res.html);\n }.bind(this));\n },\n\n validate: function() {\n var errors = [];\n var $scheduled_time = this.$('#js-scheduled-date-time');\n var $message = this.$('#message');\n\n UC.utils.clearValidationErrors('form-group');\n\n if (!$scheduled_time.val()) {\n errors.push({\n element: $scheduled_time,\n text: 'Select a date and time you are available',\n className: 'form-group'\n });\n }\n\n if (!$message.val()) {\n errors.push({\n element: $message,\n text: 'Please include a message',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n } else {\n return true;\n }\n },\n\n serializeForm: function() {\n var data = {\n time_zone: this.$('#js-time-zones').val(),\n message: this.$('#message').val(),\n ScheduledDateTime: this.$('#js-scheduled-date-time').val()\n };\n\n return data;\n },\n\n reply: function(e) {\n e.preventDefault();\n if (!this.validate()) return;\n\n this.loader.showLoader();\n var data = this.serializeForm();\n\n if (this.jobId) data.job_id = this.jobId;\n\n UC.net.post(this.replyPath(), data)\n .done(function(result) {\n UC.utils.showNotification(result.message, UC.constants.results.success);\n\n if (typeof this.options.onReply === 'function') {\n this.options.onReply(result);\n }\n\n UC.utils.sendNesEvent('schedule_call_reply_choose_time', this.eventData());\n\n this.loader.hideLoader();\n }.bind(this))\n .fail(function() {\n this.loader.hideLoader();\n }.bind(this));\n\n },\n\n replyPath: function() {\n return this.$('#scheduled_calls_form_reply').attr('action');\n },\n\n unavailableButtonClick: function(e) {\n e.preventDefault();\n this.$(\".js-select-time-step\").toggleClass(\"hidden\");\n this.$(\".js-not-available-step\").toggleClass(\"hidden\");\n },\n\n nextButtonClick: function(e) {\n e.preventDefault();\n this.$(\".js-select-time-step\").toggleClass(\"hidden\");\n this.$(\".js-confirm-step\").toggleClass(\"hidden\");\n },\n\n sendMessageClick: function(e) {\n e.preventDefault();\n var errors = [];\n var $message = this.$('#unavailable-message');\n\n UC.utils.clearValidationErrors('form-group');\n\n if (!$message.val()) {\n errors.push({\n element: $message,\n text: 'Please include a message',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n } else {\n var data = {\n message: $message.val()\n }\n\n var path = this.routes.scheduled_calls_cancel.format(this.scheduled_call_id);\n var submitLoader = this.$('.js-not-available-btn').buttonLoader();\n submitLoader.showLoader();\n\n UC.net.post(path, data)\n .done(function(result) {\n UC.utils.showNotification(\"Your message has been sent\", UC.constants.results.success);\n\n if (typeof this.options.onReply === 'function') {\n this.options.onReply(result);\n }\n\n UC.utils.sendNesEvent('schedule_call_reply_cancel_message', this.eventData());\n\n submitLoader.hideLoader();\n }.bind(this))\n .fail(function() {\n submitLoader.hideLoader();\n }.bind(this));\n }\n },\n\n cancelClick: function(e) {\n e.preventDefault();\n this.$el.modal('hide');\n },\n\n eventData: function() {\n var data = {\n json_attributes: {\n client_id: this.$('#scheduled_calls_form_reply').data('clientId'),\n bid_id: this.$('#scheduled_calls_form_reply').data('bidId')\n },\n attorney_id: this.$('#scheduled_calls_form_reply').data('attorneyId')\n };\n\n return data;\n }\n});\n","!function() {\n\n UC.partials.ScheduledCallsFormReply = Backbone.View.extend({\n\n el: '#scheduled_calls_form_reply',\n\n events: {\n 'submit': 'reply',\n 'change #TimeZone': 'changeTimeZone',\n 'click #not-available': 'notAvailable',\n 'shown.bs.tab a[data-toggle=tab]': 'setCurrentMode'\n },\n\n routes: {\n instant: '/users/{0}/scheduled_calls/instant',\n scheduled_calls_provide_alternatives: '/scheduled_calls/{0}/provide_alternatives',\n create_from_instant_reply_alternatives: '/users/{0}/scheduled_calls/create_from_instant_reply_alternatives'\n },\n\n initialize: function(options) {\n this.options = options || {};\n this.time_zone_selected = false;\n this.scheduled_call_id = this.$('#scheduled_call_id').val();\n this.loader = (options.submitButton || this.$('.btnScheduleCallReply')).buttonLoader();\n this.jobId = options.jobId;\n this.instant = options.instant;\n this.attorneyId = options.attorneyId;\n this.removeAlternativeTimeOptions = options.removeAlternativeTimeOptions;\n this.defaultMessage = options.defaultMessage;\n this.isModal = !!options.isModal;\n\n this.setCurrentMode();\n\n this.selectTimeZone();\n\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n\n this.times_available_view = new UC.partials.ScheduledCallsTimesAvailable({\n el: this.$el.find('#times-available')\n });\n\n if (this.removeAlternativeTimeOptions) {\n this.$el.find('.js-alternative-options').remove();\n }\n },\n\n selectTimeZone: function() {\n if (this.time_zone_selected === false) {\n // only try selecting the user's time zone once\n this.$el.find('#TimeZone').selectTimeZone();\n this.time_zone_selected = true;\n }\n },\n\n saveState: function() {\n this.state = {\n message: this.$el.find('#message').val(),\n phone: this.$el.find('#phone').val()\n };\n },\n\n loadState: function() {\n if (this.state) {\n this.$el.find('#message').val(this.state.message);\n this.$el.find('#phone').val(this.state.phone);\n }\n },\n\n changeTimeZone: function(e) {\n e.preventDefault();\n\n this.saveState();\n\n var data = {\n time_zone: this.$('#TimeZone').val(),\n job_id: this.jobId,\n is_modal: this.isModal,\n paid_consultation_package: true\n };\n\n UC.net.get(this.routes.instant.format(this.attorneyId), data, function(res) {\n // not my finest hour\n var $newForm = $(res.html);\n\n if (this.removeAlternativeTimeOptions) {\n $newForm.find('.js-alternative-options').remove();\n }\n\n if (this.defaultMessage) {\n $newForm.find('.js-add-default-msg').append(this.defaultMessage)\n }\n\n this.$el[0].innerHTML = $($newForm[0].outerHTML).find('#scheduled_calls_form_reply').html();\n\n this.loadState();\n this.setCurrentMode();\n this.$('[data-toggle=\"tooltip\"]').tooltip();\n\n // reconnect event listen\n this.times_available_view = new UC.partials.ScheduledCallsTimesAvailable({\n el: this.$el.find('#times-available')\n });\n }.bind(this));\n },\n\n validate: function() {\n var errors = [];\n var $time_zone = this.$el.find('#TimeZone');\n var $scheduled_time = this.$el.find('#ScheduledDateTime');\n var $message = this.$el.find('#message');\n var $phone = this.$el.find('#phone');\n\n UC.utils.clearValidationErrors('form-group');\n\n if (!$time_zone.val()) {\n errors.push({\n element: $time_zone,\n text: 'Please select your time zone',\n className: 'form-group'\n });\n }\n\n if($phone.length && $phone.val().isBlank()) {\n errors.push({\n element: $phone,\n text: 'Please enter your preferred phone number',\n className: 'form-group'\n });\n }\n\n switch(this.mode) {\n case 'schedule':\n if (!$scheduled_time.val()) {\n errors.push({\n element: $scheduled_time,\n text: 'Select a date and time you are available',\n className: 'form-group'\n });\n }\n break;\n case 'provide_alternatives':\n errors = errors.concat(this.times_available_view.errors());\n break;\n }\n\n if (!$message.val()) {\n errors.push({\n element: $message,\n text: 'Please include a message',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n } else {\n return true;\n }\n },\n\n serializeForm: function() {\n var data = {\n time_zone: this.$el.find('#TimeZone').val(),\n message: this.$el.find('#message').val(),\n phone: this.$el.find('#phone').val()\n };\n\n switch(this.mode) {\n case 'schedule':\n data.ScheduledDateTime = this.$el.find('#ScheduledDateTime').val();\n break;\n case 'provide_alternatives':\n data.availability = this.times_available_view.serialize();\n break;\n }\n\n return data;\n },\n\n reply: function(e) {\n e.preventDefault();\n if (!this.validate()) return;\n\n this.loader.showLoader();\n var data = this.serializeForm();\n\n if (this.jobId) data.job_id = this.jobId;\n\n UC.net.post(this.replyPath(), data)\n .done(function(result) {\n UC.utils.showNotification(result.message, UC.constants.results.success);\n\n if (typeof this.options.onReply === 'function') {\n this.options.onReply(result);\n }\n\n this.loader.hideLoader();\n }.bind(this))\n .fail(function() {\n this.loader.hideLoader();\n }.bind(this));\n\n },\n\n replyPath: function() {\n // If we're not providing alternatives, we should use the form's path\n if (this.mode !== 'provide_alternatives') return this.$el.attr('action');\n\n if (this.instant) {\n return this.routes.create_from_instant_reply_alternatives.format(this.attorneyId);\n } else {\n return this.routes.scheduled_calls_provide_alternatives.format(this.scheduled_call_id);\n }\n },\n\n setCurrentMode: function(e) {\n this.mode = this.currentMode();\n this.$('#mode').val(this.mode);\n\n if (this.mode === 'provide_alternatives') {\n this.$('.btnScheduleCallReply').text('Provide Alternative Times');\n } else {\n this.$('.btnScheduleCallReply').text('Schedule The Call');\n }\n },\n\n notAvailable: function(e) {\n e.preventDefault();\n this.$el.find('.nav-tabs li.active').next('li').find('a').click();\n },\n\n currentMode: function() {\n return this.$('#schedule-call-reply-tabs li.active a[data-toggle=\"tab\"]').data('mode');\n }\n\n });\n}();\n","UC.partials.ScheduledCallsFormRequest = Backbone.View.extend({\n\n events: {\n 'submit': 'schedule',\n 'click #js-open-time-zone-change': 'openTimezoneChange',\n 'click #js-close-time-zone-change': 'closeTimezoneChange',\n 'click #attorneyPhone .btn': 'showAttorneyPhone',\n 'click .js-availability-next': 'availabilityNextButton',\n 'click .js-phone-number-next': 'phoneNumberNextButton',\n 'click .js-phone-number-back': 'phoneNumberBackButton',\n },\n\n routes: {\n scheduled_calls: '/users/{0}/scheduled_calls'\n },\n\n initialize: function(options) {\n this.options = options || {};\n this.time_zone_selected = false;\n this.times_available_view = null;\n this.loader = this.$('.btnScheduleCallSend').buttonLoader();\n this.jobId = (UC.job && !options.jobId) ? UC.job.id : options.jobId;\n\n this.initPhoneNumber();\n this.selectTimeZone();\n this.initTimesAvailableView(true);\n },\n\n initPhoneNumber: function() {\n var $attorney_phone = this.$('#attorneyPhone');\n var $span = $attorney_phone.find('span');\n\n if (this.attorney_phone != '') {\n var text = 'Click to View';\n\n $attorney_phone.removeClass('hidden');\n this.$('#copyHasPhone').removeClass('hide');\n\n if (UC.utils.validatePhone(this.$('#txtPhoneNumber').val())) {\n $span.addClass('disable-click');\n text = this.attorney_phone;\n } else {\n $span.removeClass('disable-click');\n }\n\n $span.text(text);\n }\n },\n\n selectTimeZone: function() {\n if (this.time_zone_selected === false) {\n // only try selecting the user's time zone once\n this.$('#js-time-zones').selectTimeZone();\n this.time_zone_selected = true;\n }\n },\n\n initTimesAvailableView: function(force) {\n if (!this.times_available_view || force) {\n this.times_available_view = new UC.partials.ScheduledCallsTimesAvailable({\n el: this.$('#times-available')\n });\n }\n },\n\n schedule: function(e) {\n e.preventDefault();\n\n UC.utils.clearValidationErrors();\n UC.utils.clearValidationErrors('form-group');\n\n this.initTimesAvailableView();\n\n var $phone = this.$('#txtPhoneNumber');\n var $message = this.$('#txtScheduleCallMessage');\n var $time_zone = this.$('#js-time-zones');\n var errors = this.times_available_view.errors();\n\n if (!UC.utils.validatePhone($phone.val())) {\n errors.push({\n element: $phone,\n text: 'Please provide a valid phone number',\n className: 'form-group'\n });\n }\n\n if ($time_zone.val() === '') {\n errors.push({\n element: $time_zone,\n text: 'Please select your time zone.',\n className: 'form-group'\n });\n }\n\n if ($message.val() === '') {\n errors.push({\n element: $message,\n text: 'Please include a message.',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n } else {\n this.loader.showLoader();\n\n var path = this.$('#scheduled_calls_form_request').attr('action');\n var data = {\n phone: $phone.val(),\n message: $message.val(),\n time_zone: $time_zone.val(),\n availability: this.times_available_view.serialize()\n };\n\n if (this.jobId){\n data.job_id = this.jobId;\n }\n\n UC.net.post(path, data).done(function(result) {\n var eventData = {\n json_attributes: {\n time_zone: data.time_zone,\n availability: data.availability\n }\n };\n\n if (this.jobId){\n eventData.job_id = this.jobId;\n }\n\n UC.utils.sendNesEvent('proposals_schedule_call_sent', eventData);\n UC.utils.hideNotifications();\n UC.utils.showNotification(result.message, UC.constants.results.success);\n\n if (typeof this.options.onRequest === 'function') {\n this.options.onRequest(result);\n }\n\n this.$el.modal('hide');\n }.bind(this)).always(function() {\n this.loader.hideLoader();\n }.bind(this));\n }\n },\n\n showAttorneyPhone: function(e) {\n e.preventDefault();\n\n var $phone = this.$('#txtPhoneNumber');\n var phone = $phone.val();\n var errors = [];\n\n if (!UC.utils.validatePhone(phone)) {\n errors.push({ element: $phone, text: 'Please provide a valid phone number', className: 'form-group' });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n } else {\n UC.utils.clearValidationErrors();\n\n // update phone on user\n UC.net.post('/account/update_org_info', { info: { Phone: phone } }, function(result) {\n\n UC.utils.clearValidationErrors('form-group');\n\n this.$('#attorneyPhone span')\n .text(this.attorney_phone)\n .addClass('disable-click');\n\n UC.utils.recordKissEvent('proposals - schedule call twilio reveal');\n }.bind(this));\n }\n },\n\n availabilityNextButton: function(e) {\n e.preventDefault();\n\n UC.utils.clearValidationErrors('form-group');\n var errors = this.times_available_view.errors();\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return;\n }\n\n var availabileTimes = this.times_available_view.serialize();\n var timeLis = [];\n availabileTimes.forEach(function (time) {\n timeLis.push(\n \"
  • \" +\n moment(time.date, UC.constants.momentDateFormats).format(\"dddd, MMMM D\") +\n \" from \" +\n moment(time.from_hour, \"HH:mm\").format(\"hh:mmA\") +\n \" to \" +\n moment(time.to_hour, \"HH:mm\").format(\"hh:mmA\") +\n \"
  • \"\n );\n });\n var newTimes = \"
      \" + timeLis.join(\"\") + \"
    \";\n this.$(\".js-available-times\").html(newTimes);\n\n this.$(\"#js-availability-step\").toggleClass(\"hidden\");\n this.$(\"#js-phone-number-step\").toggleClass(\"hidden\");\n },\n\n openTimezoneChange: function (e) {\n e.preventDefault();\n\n this.$('#js-change-time-zone, #js-open-time-zone-change').toggleClass('hidden');\n },\n\n closeTimezoneChange: function (e) {\n e.preventDefault();\n\n this.$('#js-change-time-zone, #js-open-time-zone-change').toggleClass('hidden');\n },\n\n phoneNumberNextButton: function(e) {\n e.preventDefault();\n\n UC.utils.clearValidationErrors();\n UC.utils.clearValidationErrors('form-group');\n\n var $phone = this.$('#txtPhoneNumber');\n var $message = this.$('#txtScheduleCallMessage');\n var errors = this.times_available_view.errors();\n\n if (!UC.utils.validatePhone($phone.val())) {\n errors.push({\n element: $phone,\n text: 'Please provide a valid phone number',\n className: 'form-group'\n });\n }\n\n if ($message.val() === '') {\n errors.push({\n element: $message,\n text: 'Please include a message.',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n } else {\n this.$(\"#js-submit-step\").toggleClass(\"hidden\");\n this.$(\"#js-phone-number-step\").toggleClass(\"hidden\");\n }\n },\n\n phoneNumberBackButton: function(e) {\n e.preventDefault();\n\n this.$(\"#js-availability-step\").toggleClass(\"hidden\");\n this.$(\"#js-phone-number-step\").toggleClass(\"hidden\");\n },\n});\n","UC.partials.ScheduledCallsInstant = Backbone.View.extend({\n\n className: 'modal fade',\n\n routes: {\n instant: '/users/{0}/scheduled_calls/instant',\n create_schedule_from_instant_reply: '/users/{0}/scheduled_calls/schedule_from_instant_reply'\n },\n\n events: {\n 'shown.bs.modal': 'modalOpened',\n 'hidden.bs.modal': 'modalClosed',\n 'change #js-time-zones': 'changeTimeZone',\n 'click .js-switch-pages': 'switchPages',\n 'click #js-submit': 'submitForm',\n },\n\n initialize: function(args) {\n this.attorneyId = args.attorneyId;\n this.jobId = args.jobId;\n this.bidId = args.bidId;\n this.hamCallback = args.hamCallback;\n this.onSuccessfulSchedule = args.onSuccessfulSchedule || function(){};\n this.reschedule = args.reschedule;\n\n this.dayTimeSelector = new UC.partials.DayTimeSelector({\n el: this.$el\n });\n },\n\n modalOpened: function() {\n $('body').addClass('instant-call-scheduler-modal-open');\n\n var time_to_first_availability = this.$('.modal-dialog').data('firstAvailability');\n UC.utils.recordKissEvent('schedule instant call - modal opened',\n $.extend(this.standardKissData(), {\n time_to_first_availability: time_to_first_availability\n })\n );\n },\n\n modalClosed: function() {\n $('body').removeClass('instant-call-scheduler-modal-open');\n this.$el.remove();\n },\n\n switchPages: function(e) {\n if ($(e.currentTarget).hasClass('disabled')) return;\n\n UC.utils.recordKissEvent('schedule instant call - clicked ' + $(e.currentTarget).text() + ' btn', this.standardKissData());\n\n this.$('#js-select-time-page').toggleClass('hidden');\n this.$('#js-confirm-time-page').toggleClass('hidden');\n },\n\n setSelectTimeHeader: function(day) {\n var text = (day) ? 'Select a time on ' + day : 'Select a time';\n this.$('#js-select-a-time-header').text('2. ' + text);\n this.$('#js-select-a-day-text').toggleClass('hidden', !!day);\n },\n\n goHam: function() {\n UC.net.get(this.routes.instant.format(this.attorneyId), { job_id: this.jobId, is_modal: true })\n .done(function(res) {\n if (res.availability) {\n this.render(res.html);\n } else {\n // If there's no availability, pop the regular \"new\" modal\n new UC.modals.ScheduledCallsNew({\n attorney_id: this.attorneyId,\n noInstantAvailability: true,\n onRequest: this.onSuccessfulSchedule\n }).render();\n }\n }.bind(this))\n .always(function() {\n if (this.hamCallback) this.hamCallback();\n }.bind(this));\n },\n\n serializeForm: function() {\n var data = {\n time_zone: this.$('#js-time-zone').val(),\n message: this.$('#js-message').val(),\n phone: this.$('#js-phone-number').val(),\n ScheduledDateTime: this.$('#js-scheduled-date-time').val()\n };\n\n return data;\n },\n\n validate: function() {\n var errors = [];\n\n var $phone = this.$('#js-phone-number');\n\n if($phone.val().isBlank()) {\n errors.push({\n element: $phone,\n text: 'Please enter your preferred phone number',\n className: 'form-group'\n });\n }\n\n var $message = this.$('#js-message');\n if($message.val().isBlank()) {\n errors.push({\n element: $message,\n text: 'Please include a message',\n className: 'form-group'\n });\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n return false;\n } else {\n return true;\n }\n },\n\n changeTimeZone: function(e) {\n e.preventDefault();\n\n var data = {\n time_zone: this.$('#js-time-zones').val(),\n job_id: this.jobId,\n is_modal: false\n };\n\n UC.net.get(this.routes.instant.format(this.attorneyId), data, function(res) {\n this.$('#js-instant-scheduler-container').replaceWith(res.html)\n }.bind(this));\n\n },\n\n submitForm: function(e) {\n e.preventDefault();\n if (!this.validate()) return;\n\n this.loader.showLoader();\n this.$switchPageBtns.addClass('disabled');\n\n var data = this.serializeForm();\n if (this.jobId) data.job_id = this.jobId;\n if (this.reschedule) data.reschedule = this.reschedule;\n\n var time_till_call = this.$('#js-scheduled-date-time-epoch').val() - this.$('.modal-dialog').data('modalOpenedAt');\n UC.utils.recordKissEvent('schedule instant call - scheduled ',\n $.extend(this.standardKissData(), { scheduled_time: data.ScheduledDateTime, time_till_call: time_till_call })\n );\n\n UC.net.post(this.routes.create_schedule_from_instant_reply.format(this.attorneyId), data)\n .done(function(result) {\n this.$el.modal('hide');\n UC.utils.showNotification(result.message, UC.constants.results.success);\n if (typeof this.onSuccessfulSchedule === 'function') {\n this.onSuccessfulSchedule();\n }\n }.bind(this))\n .always(function(xhr) {\n this.loader.hideLoader();\n this.$switchPageBtns.removeClass('disabled');\n if (xhr && xhr.responseJSON && xhr.responseJSON.error_code === 'bid_retracted') {\n this.$el.modal('hide');\n setTimeout(function() { location.reload() }, 3000);\n }\n }.bind(this));\n },\n\n standardKissData: function() {\n return {\n bid_id: this.bidId,\n job_id: this.jobId\n };\n },\n\n render: function(html) {\n this.$el.html(html);\n\n this.setSelectTimeHeader();\n\n this.loader = this.$('#js-submit').buttonLoader();\n this.$switchPageBtns = this.$('.js-switch-pages');\n\n this.$el.modal();\n }\n});\n","!function() {\n\n UC.views.SearchIndex = Backbone.View.extend({\n\n paginationTemplate: UC.views.resolveHandlebarsTemplate('shared/pagination'),\n\n events: {\n 'blur #global_search .search_input': 'pushState',\n 'keydown #global_search .search_input': 'searchTimeout',\n 'submit #global_search .search_form': 'formSubmit',\n 'click .search-result-filters a': 'filterResults',\n 'click #search_link': 'preventDefault',\n 'click a.page-link': 'showPage',\n 'click a.search_clear_button': 'clearSearchTerm',\n 'click #global_search .search_button': 'trackSearchClick',\n 'click #global_search .search_result a': 'trackResultClick'\n },\n\n initialize: function() {\n var search = UC.constants.search || {};\n\n this.results = null;\n this.$search_input = this.$el.find('#global_search .search_input');\n this.filterSearch = this.$el.find('#search_results .dropdown-toggle');\n this.clearSearch = this.$el.find('#global_search .search_clear_button');\n if (UC.browser.isMobile()) {\n this.filterSearchLoader = this.clearSearch.buttonLoader();\n } else {\n this.filterSearchLoader = this.$el.find('#global_search .search_button').buttonLoader();\n }\n\n this.page = search.page;\n this.query = search.q;\n this.filter = search.filter;\n this.exp = search.exp;\n\n if (this.page || this.query || this.filter) {\n this.trackEvent('global_search_results_shown', {\n counts: search.counts\n });\n }\n\n if (this.$search_input.val() === '') {\n this.$search_input.focus();\n } else {\n this.toggleClearSearchIcon(true);\n }\n\n window.onpopstate = this.popState.bind(this);\n },\n\n toggleClearSearchIcon: function(visible) {\n var $icon = this.clearSearch.find('.icon-delete');\n if (visible) {\n $icon.removeClass('hide');\n } else {\n $icon.addClass('hide');\n }\n },\n\n clearSearchTerm: function(e) {\n e.preventDefault();\n\n this.$search_input.val('');\n this.pushState();\n this.searchTimeout();\n this.toggleClearSearchIcon(false);\n },\n\n formSubmit: function(e) {\n e.preventDefault();\n\n this.pushState();\n\n var $search_results = this.$el.find('#search_results');\n\n $search_results.css({\n 'height': $search_results.height(),\n 'visibility': 'hidden'\n })\n\n this.page = 1;\n this.query = this.$search_input.val();\n this.performSearch(function(data) {\n\n $search_results.css({\n 'height': 'auto',\n 'visibility': 'visible'\n }).addClass('animated fadeIn');\n\n setTimeout(function() {\n // reset for next time\n $search_results.removeClass('animated fadeIn');\n }, 500);\n }.bind(this));\n\n this.trackEvent('global_search_form_submit');\n },\n\n searchTimeout: function(e) {\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(function() {\n var query = this.$search_input.val();\n\n if (query == this.query) {\n // query hasn't changed\n return;\n }\n\n this.page = 1;\n this.query = query;\n this.performSearch();\n }.bind(this), 100);\n },\n\n performSearch: function(callback) {\n\n if (this.ajax && typeof this.ajax.abort === 'function') {\n // abort any running requests\n this.ajax.abort();\n }\n\n var options = {\n q: this.query,\n filter: this.filter,\n page: this.page\n };\n if (this.exp) {\n options['exp'] = this.exp;\n }\n\n this.filterSearchLoader.showLoader();\n\n this.ajax = $.get('/search.json', options, function(data) {\n this.renderStats(data);\n this.renderFilter(data);\n this.renderBestResult(data.best_result);\n this.renderResults(data.hits);\n this.renderPagination(data);\n this.setPageTitle();\n\n this.trackEvent('global_search_results_shown', {\n counts: data.counts\n });\n\n if (options.q !== '') {\n this.toggleClearSearchIcon(true);\n }\n\n if (typeof callback === 'function') {\n callback(data);\n }\n }.bind(this));\n\n this.ajax.fail(function(xhr, textStatus) {\n if (textStatus === 'abort') {\n // don't show angry message on aborts (from above)\n xhr.handled = true;\n }\n this.hideSearchLoader();\n }.bind(this));\n },\n\n renderStats: function(data) {\n var $stats = this.$el.find('#search_results_stats');\n\n $stats.text('{0} result{1}'.format(data.total_entries,\n (data.total_entries === 1 ? '' : 's')));\n },\n\n renderFilter: function(data) {\n _.each($('.search-result-filters'), function(element) {\n var $filter = $(element);\n for (var type in data.counts) {\n var count = parseInt(data.counts[type], 10);\n var $li = $filter.find('a[data-type={0}]'.format(type)).closest('li');\n var $count = $li.find('span.count');\n\n if (count > 0) {\n $li.removeClass('hide');\n $count.text(count);\n } else {\n $li.addClass('hide');\n }\n }\n\n if (data.hits.length > 0) {\n $filter.removeClass('hide');\n } else if (!this.filter) {\n $filter.addClass('hide');\n }\n });\n },\n\n renderBestResult: function(best_result) {\n var $best_result_header = this.$el.find('#best_result_title');\n var $best_result = this.$el.find('#best_result');\n\n if (best_result) {\n var result = new UC.views.SearchResult({ result: best_result });\n $best_result_header.removeClass('hide');\n $best_result.html(result.render().el).removeClass('hide');\n } else {\n $best_result_header.addClass('hide');\n $best_result.addClass('hide');\n }\n },\n\n hideSearchLoader: function() {\n this.filterSearchLoader.hideLoader();\n this.filterSearch.css('min-width', '');\n },\n\n renderResults: function(results) {\n var $result_list = this.$el.find('#search_results_list');\n\n $result_list.empty();\n\n _.each(results, function(result) {\n var result = new UC.views.SearchResult({ result: result });\n $result_list.append(result.render().el);\n }.bind(this));\n\n this.hideSearchLoader();\n },\n\n selectFilter: function(filter) {\n filter = filter || 'all'\n this.$el.find('#search_results_filter li').removeClass('active');\n this.$el.find('#search_results_filter a[data-type={0}]'.format(filter))\n .closest('li').addClass('active');\n },\n\n filterResults: function(e) {\n e.preventDefault();\n\n this.filterSearchLoader.showLoader();\n\n var $filter = $(e.currentTarget);\n var $dropdown = $filter.closest('.dropdown');\n var $dropdownToggle = $dropdown.find('.dropdown-toggle');\n $dropdown.find('li.active').removeClass('active');\n $filter.closest('li').addClass('active');\n $dropdownToggle.find('.filter-title').text($filter.find('.title').text())\n\n this.page = 1;\n this.filter = $filter.data('type');\n this.selectFilter(this.filter);\n this.performSearch();\n this.pushState();\n\n this.trackEvent('global_search_filter_click');\n },\n\n preventDefault: function(e) {\n e.preventDefault();\n },\n\n pushState: function() {\n var changed = false;\n var title = null;\n var url = window.location.href;\n\n var query = this.$search_input.val();\n var filter = this.filter;\n var page = this.page;\n var state = { query: query, filter: filter, page: page };\n\n if (query != this.pushState_query) {\n var encoded = encodeURIComponent(query).replace(/%20/g, '+');\n url = UC.utils.updateQueryStringParam(url, 'q', encoded);\n changed = true;\n }\n\n if (filter != this.pushState_filter) {\n url = UC.utils.updateQueryStringParam(url, 'filter', filter);\n changed = true;\n }\n\n if (page != this.pushState_page) {\n url = UC.utils.updateQueryStringParam(url, 'page', page);\n changed = true;\n }\n\n if (changed) {\n this.pushState_query = query;\n this.pushState_filter = filter;\n this.pushState_page = page;\n window.history.pushState(state, title, url);\n }\n },\n\n popState: function(e) {\n\n if (e.state) {\n this.pushState_query = this.query = e.state.query;\n this.pushState_filter = this.filter = e.state.filter;\n this.pushState_page = this.page = e.state.page;\n }\n\n this.selectFilter(this.filter);\n this.$search_input.val(this.query);\n this.performSearch();\n },\n\n renderPagination: function(result) {\n\n var $pagination = this.$el.find('#search_results_pagination');\n\n if (result.total_pages > 1) {\n var html = this.paginationTemplate(result.search_pagination);\n $pagination.html(html).removeClass('hide');\n } else {\n $pagination.addClass('hide');\n }\n },\n\n showPage: function(e) {\n e.preventDefault();\n UC.utils.scrollToTop();\n this.page = $(e.currentTarget).data('page');\n this.performSearch();\n this.pushState();\n },\n\n setPageTitle: function() {\n if (typeof this.query === 'string' && this.query.length > 0) {\n document.title = \"{0} - Search Results on UpCounsel\".format(this.query.trim());\n } else {\n document.title = \"Search on UpCounsel\";\n }\n },\n\n trackEvent: function(name, options) {\n var attrs = options || {};\n\n attrs.query = this.query;\n attrs.filter = this.filter;\n attrs.page = this.page;\n\n UC.utils.sendNesEvent(name, attrs);\n UC.utils.recordKissEvent(name, attrs);\n },\n\n // purely for tracking\n trackSearchClick: function() {\n this.trackEvent('global_search_button_click');\n },\n\n // purely for tracking\n trackResultClick: function(e) {\n var $el = $(e.currentTarget);\n\n this.trackEvent('global_search_result_click', {\n href: $el.attr('href'),\n name: $el.data('name'),\n index: $el.closest('.search_result').data('index')\n });\n }\n });\n}();\n","!function() {\n\n UC.views.SearchResult = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate('public/search/result'),\n\n initialize: function(options) {\n this.result = options.result;\n },\n\n render: function() {\n this.setElement(this.template(this.result));\n return this;\n }\n });\n\n}();\n","import { renderTwoFactorRequestModal } from '../multi_factor_auth/functions'\n\nUC.partials.SessionsForm = Backbone.View.extend({\n\n el: '#formLogon',\n\n events: {\n 'submit': 'logonSubmit',\n 'click #btnLinkedInLogin': 'logonLinkedIn',\n 'click #btnGoogleLogin': 'logonGoogle'\n },\n\n elements: {\n formLogon: null,\n chkRemember: null,\n btnLinkedInLogin: null,\n btnGoogleLogin: null,\n txtLogonEmail: null,\n txtLogonPassword: null,\n panelLoginForm: null,\n panelSuspended: null,\n panelPending: null,\n btnLogin: null,\n recaptchaTags: null\n },\n\n initialize: function(options) {\n options = options || {};\n\n this.components = {};\n\n UC.utils.setSelectors(this.elements);\n\n // set return url\n this.next_url = this.$('#next_url').val();\n if (UC.constants.returnUrl) {\n this.next_url = UC.constants.returnUrl;\n }\n\n this.authentication = new UC.components.Authentication({\n next_url: this.next_url\n });\n\n this.components.logonLoader = this.elements.btnLogin.buttonLoader();\n\n this.elements.txtLogonEmail.focus();\n\n // allow one to override the default callbacks\n this.logonCallback = options.logonCallback;\n this.oauthCallback = options.oauthCallback;\n this.modal = options.modal;\n },\n\n logonSubmit: function(e) {\n e.preventDefault();\n\n var fields = [\n {\n element: this.elements.txtLogonEmail,\n errorMessage: 'Please provide a valid email address',\n type: 'email'\n },{\n element: this.elements.txtLogonPassword,\n errorMessage: 'Please provide a valid password'\n }\n ];\n\n if (UC.utils.validateFields(fields)) {\n this.components.logonLoader.showLoader();\n\n var data = {\n email: this.elements.txtLogonEmail.val(),\n password: this.elements.txtLogonPassword.val(),\n remember: this.elements.chkRemember.is(':checked'),\n modal: this.modal\n };\n\n var recaptchaData = this.$('textarea.g-recaptcha-response').val();\n if (recaptchaData) {\n data['g-recaptcha-response'] = recaptchaData\n }\n\n this.authentication.logon(data, function(err, result) {\n this.onLogon(err, result);\n }.bind(this));\n }\n },\n\n // default logon callback for homepage\n onLogon: function(err, result) {\n this.hideLogonLoaders();\n\n if (typeof this.logonCallback === 'function') {\n this.logonCallback(err ? err.message : null, result);\n } else {\n if (err) {\n this.elements.recaptchaTags.html(err.recaptcha)\n this.handleLogonError(err.message);\n } else {\n window.location = result.next_url;\n }\n }\n },\n\n logonLinkedIn: function (e) {\n e.preventDefault();\n\n this.authentication.logonLinkedIn(\n {\n callback: this.onOauthLogon.bind(this),\n }\n );\n },\n\n logonGoogle: function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n this.authentication.logonGoogle(\n {\n context: 'signin',\n backdrop: UC.constants.pageName === 'logon',\n callback: this.onOauthLogon.bind(this),\n }\n );\n },\n\n onOauthLogon: function(data) {\n if (data && data.two_factor_request_modal && this.modal) {\n renderTwoFactorRequestModal(data.two_factor_request_modal, function () {\n this.onOauthLogon({status: data.status})\n }.bind(this))\n return;\n }\n\n const googleLogon = data && data.provider === 'google_oauth2';\n const logonSkipped = googleLogon && (data.status === 'signin_skipped' || data.status === 'signup_skipped');\n\n if (typeof this.oauthCallback === 'function' && !logonSkipped) {\n this.oauthCallback(data);\n } else {\n switch (data.status) {\n case 'authenticated':\n window.location = data.next_url;\n break;\n case 'unregistered':\n UC.utils.showNotification(data.message, UC.constants.results.failure);\n break;\n case 'signup_not_displayed':\n UC.utils.showNotification(data.googleErrorMessage, UC.constants.results.warning);\n break;\n case 'signin_not_displayed':\n UC.utils.showNotification(data.googleErrorMessage, UC.constants.results.warning);\n break;\n default:\n if (!logonSkipped) {\n this.authentication.handleLogonError(data.status);\n }\n break;\n }\n }\n },\n\n // logon form specific callback with pending/suspended panels\n handleLogonError: function(err) {\n switch (err) {\n case 'suspended':\n UC.utils.hidePanels([this.elements.panelLoginForm, this.elements.panelPending]);\n UC.utils.showPanel(this.elements.panelSuspended);\n break;\n case 'pending':\n UC.utils.hidePanels([this.elements.panelLoginForm, this.elements.panelSuspended]);\n UC.utils.showPanel(this.elements.panelPending);\n break;\n default:\n this.hideLogonLoaders();\n UC.utils.showNotification(err, UC.constants.results.failure);\n break;\n }\n },\n\n hideLogonLoaders: function() {\n this.components.logonLoader.hideLoader();\n }\n});\n","UC.partials.SessionSudoForm = Backbone.View.extend({\n events: {\n 'submit #session-sudo-form': 'onSubmit',\n },\n\n initialize: function() {\n setTimeout(function () {\n $('input#verification-password').focus();\n }, 500)\n },\n\n isActive: function() {\n return this.$el.find('#session-sudo-form').length > 0;\n },\n\n validatePassword: function(input) {\n UC.utils.clearValidationErrors('form-group');\n\n const errors = [];\n const passwordValue = input.val();\n\n if (!passwordValue) {\n errors.push({\n className: 'form-group',\n element: input,\n text: 'Password is required'\n });\n } else if (passwordValue.length < 3) {\n errors.push({\n className: 'form-group',\n element: input,\n text: 'Invalid password'\n });\n }\n\n UC.utils.showValidationErrors(errors);\n return errors.length === 0;\n },\n\n onSubmit: function(e) {\n e.preventDefault();\n const btnLoader = this.$el.find('#verify-password-button').buttonLoader();\n const $password = this.$el.find('input#verification-password');\n\n if (this.validatePassword($password)) {\n btnLoader.showLoader();\n\n UC.net.post(\n '/sessions/sudo',\n {\n password: $password.val()\n },\n function () {\n btnLoader.hideLoader();\n window.location.reload();\n }\n ).fail(function () {\n btnLoader.hideLoader();\n $password.val('');\n $password.focus();\n });\n } else {\n $password.focus();\n }\n },\n});\n","import { default as MultiFactorRequestFrom } from '../multi_factor_auth/_request_form'\n\nUC.views.SessionsMultiFactorRecover = Backbone.View.extend({\n initialize: function() {\n new MultiFactorRequestFrom({\n el: this.$el,\n formId: 'two-factor-recovery-form',\n recovery: true,\n requestParams: {\n recover: true\n },\n successCallback: function(response) {\n window.location = response.next_url || '/dashboard';\n },\n failureCallback: function() {\n window.location = '/account/logon';\n }\n });\n }\n});\n","import { default as MultiFactorRequestFrom } from '../multi_factor_auth/_request_form'\n\nUC.views.SessionsMultiFactorRequest = Backbone.View.extend({\n initialize: function() {\n new MultiFactorRequestFrom({\n el: this.$el,\n formUrl: '/sessions/two-factor',\n successCallback: function(response) {\n window.location = response.next_url || '/dashboard';\n }\n });\n }\n});\n","UC.views.SourcingQuestionnairesShow = Backbone.View.extend({\n events: {\n 'submit' : 'submit',\n 'click #best_practices_info_link' : 'update_best_practice_labels',\n 'click #tos_info_link' : 'update_tos_labels',\n },\n\n initialize: function () {\n this.$form = this.$el.find('#questionnaire-response-form');\n\n if (!UC.user.is_admin) {\n this.submitButtonLoader = this.$el.find('#submit-response-button').buttonLoader();\n }\n\n this.$el.find('select[name=\"user[Address][State]\"]').select2({ width: '100%' });\n this.$el.find('#select-bar-states').select2({ width: '100%' });\n\n this.$best_practices_info = this.$el.find('.best_practices_info');\n this.$best_practices_info_link = this.$el.find('#best_practices_info_link');\n this.$tos_info = this.$el.find('.tos_info');\n this.$tos_info_link = this.$el.find('#tos_info_link');\n },\n\n submit: function (event) {\n event.preventDefault();\n this.submitButtonLoader.showLoader();\n\n var fields = _.map(this.$el.find('.question-container'), function (container) {\n var selector = container.dataset['fieldSelector'];\n return { element: $(container).find(selector) };\n })\n\n if (UC.utils.validateFields(fields, { scrollToFirst: true })) {\n var $selectBarStates = this.$el.find('#select-bar-states')\n var data = this.$form.serializeJSON();\n\n if ($selectBarStates.length > 0) {\n data[\"user\"][\"StatedBarCertifiedStates\"] = $selectBarStates.val();\n }\n\n UC.net.post(UC.constants.questionnaireSubmitPath, data, function(response) {\n window.location.href = '/dashboard'\n }.bind(this)).fail(function() {\n this.submitButtonLoader.hideLoader();\n }.bind(this));;\n } else {\n this.submitButtonLoader.hideLoader();\n }\n },\n\n update_best_practice_labels: function() {\n this.$best_practices_info_link.text(this.$best_practices_info.hasClass('in') ? 'Show' : 'Hide');\n },\n\n update_tos_labels: function() {\n this.$tos_info_link.text(this.$tos_info.hasClass('in') ? 'View requirements' : 'Hide requirements');\n },\n});\n\n// disables editing on all inputs if questionnaire already exists.\nUC.constants.questionnaireReadonly &&\n $(\n [\n \".sourcing_questionnaires.show input\",\n \".sourcing_questionnaires.show textarea\"\n ].join()\n ).attr(\"disabled\", true);\n","UC.views.StaticPages = Backbone.View.extend({\n\n events: {\n 'click .section-nav-tab' : 'navTabClicked'\n },\n\n initialize: function() {\n $(window).on('scroll', this.onWindowScroll.bind(this));\n this.cta_btn = $(\".main-cta-btn\").length > 0 ? $(\".main-cta-btn\").offset().top : 150;\n\n /* For Attorneys */\n UC.utils.recordKissClickEvent('#forattorneys-apply-now', 'For Attorneys Apply Now Click', {\n \"location\": \"hero\",\n \"page-path\": \"/home/forattorneys\"\n });\n\n UC.utils.recordKissClickEvent('#forattorneys-sign-up', 'For Attorneys Sign Up Click', {\n \"location\": \"footer\",\n \"page-path\": \"/home/forattorneys\"\n });\n },\n\n navTabClicked: function(e) {\n var $this = $(e.currentTarget);\n var id = $this.attr('href') || $this.find('a').attr('href');\n var hasHash = (id && id.substr(0,1) == '#');\n var nav = $this.closest('.section-nav');\n var options = { offset: 100 };\n\n if (UC.utils.isMobileViewPort()) {\n e.stopPropagation();\n\n if(nav.hasClass('selected')) {\n $('.section-nav-tab').removeClass('active');\n $this.addClass('active');\n nav.removeClass('selected');\n } else {\n e.preventDefault();\n nav.addClass('selected');\n if (hasHash) {\n return;\n }\n }\n } \n\n if (hasHash) {\n e.preventDefault();\n UC.utils.scrollToElement($(id), options);\n } \n },\n\n onWindowScroll: function(e) {\n var scrollTop = $(document).scrollTop();\n var navbar = $('#nav.navbar-fixed-top');\n var nav = $('.section-nav');\n var nav_wrap = nav.closest('.section-nav-wrap');\n var sticky = nav.hasClass('sticky');\n var footer = $('.sticky-footer');\n\n if (scrollTop >= this.cta_btn) {\n $('body').addClass('navbar-small');\n navbar.addClass('navbar-small');\n footer.addClass('active');\n } else {\n $('body').removeClass('navbar-small');\n navbar.removeClass('navbar-small');\n footer.removeClass('active');\n }\n\n if (!sticky) {\n return;\n }\n\n if (!UC.utils.isMobileViewPort() && scrollTop >= nav_wrap.offset().top) {\n nav.addClass('fixed');\n $('.nav-section').each(function(i) { \n if ($(e.currentTarget).position().top <= scrollTop + 100) {\n $('.section-nav-tab.active').removeClass('active');\n $('.section-nav-tab').eq(i).addClass('active');\n }\n });\n footer.addClass('active');\n\n } else {\n nav.removeClass('fixed');\n $('.section-nav-tab.active').removeClass('active');\n $('.section-nav-tab:first').addClass('active');\n }\n }\n\n});\n","!function() {\n\n UC.views.StaticPagesAttorneys = Backbone.View.extend({\n\n initialize: function() {\n this.initAttyCarousel();\n },\n\n initAttyCarousel: function() {\n if (typeof $.fn.slick !== 'function') {\n console.log('slick is not initialized yet.');\n return;\n }\n $(\"#attorney-carousel-container\").slick({\n slidesToShow: 3,\n slidesToScroll: 3,\n autoplay: true,\n nextArrow: \"\",\n prevArrow: \"\",\n responsive: [\n {\n breakpoint: 992,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1\n }\n }\n ]\n });\n }\n })\n\n}();\n","UC.views.StaticPagesContact = Backbone.View.extend({\n events: {\n 'submit #contactForm': 'onContactFormSubmit'\n },\n\n initialize: function() {\n },\n\n onContactFormSubmit: function (event) {\n event.preventDefault();\n\n var inputData = this.$el.find('#contactForm').serializeJSON().contact;\n\n var fields = [\n {\n element: this.$el.find('#txtName'),\n errorMessage: 'Please provide your name'\n }, {\n element: this.$el.find('#txtEmail'),\n errorMessage: 'Please provide a valid email address'\n }, {\n element: this.$el.find('#selectRecipient'),\n errorMessage: 'Please select what this is regarding'\n }, {\n element: this.$el.find('#txtSubject'),\n errorMessage: 'Please provide a subject'\n }, {\n element: this.$el.find('#txtMessage'),\n errorMessage: 'Please provide a message'\n }\n ];\n\n if (UC.utils.validateFields(fields)) {\n UC.net.post(UC.constants.postContactRoute, inputData, this.onSendContactMessageSuccess);\n }\n },\n\n onSendContactMessageSuccess: function () {\n UC.utils.hidePanel($('#panelContactForm'));\n UC.utils.showPanel($('#panelSuccess'));\n }\n})\n","!function() {\n\n UC.views.StaticPagesForAttorneys = Backbone.View.extend({\n\n initialize: function() {\n }\n });\n}();\n","import { GeoLocationPajWidjet } from '../../../components/geo_location_paj_widget'\n\nUC.views.StaticPagesHome = Backbone.View.extend({\n\n initialize: function() {\n UC.utils.initTransparentNav('#nav');\n\n $(\".hp-square-btns .primary-cta\").on('click',function(e){\n var cat = $(e.target).closest('.hp-square-btns').attr('data-cat');\n UC.utils.recordKissEvent(\"Home_Page_Grid_Click\", {\"category\": cat, \"call_to_action\":\"primary\"});\n UC.utils.recordKissEvent(\"Post a Job Button Click\", {\"location\" : \"hp-grid\", \"category\": cat, \"page-path\":\"/\"});\n });\n\n $(\".hp-square-btns .secondary-cta\").on('click',function(e){\n var cat = $(e.target).closest('.hp-square-btns').attr('data-cat');\n UC.utils.recordKissEvent(\"Home_Page_Grid_Click\", {\"category\": cat, \"call_to_action\":\"secondary\"});\n });\n\n if(this.$('.js-geo-location').length) {\n new GeoLocationPajWidjet({el: this.$('.js-geo-location')});\n }\n },\n});\n","!function() {\n\n UC.views.StaticPagesHowItWorks = Backbone.View.extend({\n events: {\n 'click .how-it-works-summary-image-container, .how-it-works-panel-label' : 'panelHeaderClicked',\n 'click button.next-how-it-works-panel' : 'nextPanelButtonClicked'\n },\n\n initialize: function () {\n var vimeoScriptUrl = 'https://player.vimeo.com/api/player.js';\n $.getScript(vimeoScriptUrl, this.bindVimeoEventCallbacks.bind(this));\n },\n\n bindVimeoEventCallbacks: function () {\n var fireKissEvent = this.fireKissEvent;\n var video = document.querySelector('#vimeo');\n var player = new Vimeo.Player(video);\n\n player.on('play', function(attrs) { fireKissEvent('play', attrs); });\n player.on('pause', function(attrs) { fireKissEvent('pause', attrs); });\n player.on('ended', function(attrs) { fireKissEvent('ended', attrs); });\n\n $('body').unload(function() {\n player.getCurrentTime().then(function(seconds) {\n fireKissEvent('leave', { seconds: seconds });\n });\n });\n },\n\n fireKissEvent: function (name, attrs) {\n attrs.url = window.location.href;\n UC.utils.recordKissEvent(\"vimeo_video_\" + name, attrs);\n },\n\n nextPanelButtonClicked: function(e) {\n e.preventDefault();\n var nextPanelName = $(e.currentTarget).data('nextPanelName');\n var $nextPanel = $('#'+nextPanelName+'-panel');\n this.setActivePanel($nextPanel);\n },\n\n panelHeaderClicked: function(e) {\n e.preventDefault();\n var $panelSelected = $(e.currentTarget).parents('.how-it-works-panel');\n this.setActivePanel($panelSelected);\n },\n\n setActivePanel: function($panelSelected) {\n var $howItWorksPanels = $('.how-it-works-panel');\n var $panelContentDivs = $('.how-it-works-panel-content');\n var panelSelectedName = $panelSelected.data('panelName');\n\n $howItWorksPanels.removeClass('active');\n $panelSelected.addClass('active');\n $panelContentDivs.addClass('hidden');\n $('#'+panelSelectedName+'-panel-content').removeClass('hidden');\n }\n })\n\n}();\n","!function() {\n\n UC.views.StaticPagesPress = Backbone.View.extend({\n events: {\n 'click #see-more-press' : 'getAdditionalPressClippings'\n },\n\n initialize: function() {\n _.bindAll(this, 'handlePressClippingsResponse');\n\n this.paginationNumberOfClippings = UC.constants.pagination_number_of_clippings;\n this.pageNum = UC.constants.starting_press_clipping_page;\n this.pressClippingsAccountedFor = this.paginationNumberOfClippings * this.pageNum;\n this.totalPressClippingsCount = UC.constants.total_press_clipping_count;\n this.seeMoreButtonLoader = $('#see-more-press').buttonLoader();\n },\n\n getAdditionalPressClippings: function(e) {\n e.preventDefault();\n this.pageNum++;\n this.seeMoreButtonLoader.showLoader();\n $.ajax({\n url: '/press/' + this.pageNum,\n type: 'GET',\n success: this.handlePressClippingsResponse,\n error: function() {\n this.seeMoreButtonLoader.hideLoader();\n }.bind(this)\n })\n },\n\n handlePressClippingsResponse: function(jsonObject) {\n this.seeMoreButtonLoader.hideLoader();\n this.pressClippingsAccountedFor += jsonObject.press_clippings_rendered_count;\n if (this.pressClippingsAccountedFor >= this.totalPressClippingsCount) {\n $('#show-more-press-button-container').remove();\n }\n this.renderAdditionalPressClippings(jsonObject.press_clippings_html);\n },\n\n renderAdditionalPressClippings: function(pressClippingsHtml) {\n $('#press-clippings').append(pressClippingsHtml);\n }\n })\n\n}();\n","!function() {\n\n UC.views.StaticPagesPricingPage = Backbone.View.extend({\n\n initialize: function() {\n\n $(\".js-pricing-cta-btn\").on('click',function(e){\n var cat = $(e.target).closest('.child').first('.pricing-name').text().trim();\n var p = window.location.pathname;\n UC.utils.recordKissEvent(\"clicked_paj_button\", {\"location\": \"body\" ,\"category\": cat, \"page-path\": p});\n });\n\n }\n\n });\n}();\n","!function() {\n\n UC.views.StaticPagesSitemap = Backbone.View.extend({\n initialize: function() {\n new UC.components.TableOfContents({\n scope: '#sitemap-content',\n affixTop: 268,\n affixBottom: function() {\n return $('#content').height() - $('#sitemap-content').height() - 170;\n },\n tocEnabledColumnClass: 'col-md-10',\n tocDisabledColumnClass: 'col-md-12'\n })\n },\n })\n\n}();\n","!function() {\n\n UC.views.StaticPagesStyleguide = Backbone.View.extend({\n events: {\n 'click .modal-confirm-btn': 'hideCheckboxModal'\n },\n\n initialize: function () {\n UC.components.checkboxModal({\n modalSelector: '#styleguide-checkbox-modal-id'\n });\n },\n\n hideCheckboxModal: function () {\n $('.modal').modal('hide');\n }\n });\n\n}();\n","!function() {\n\n UC.views.SuccessStoriesIndex = Backbone.View.extend({\n events: {\n 'click .success-story-filter' : 'setFilter'\n },\n\n setFilter: function(e) {\n e.preventDefault();\n var $selectedFilterDiv = $(e.currentTarget);\n var selectedFilter = $selectedFilterDiv.data('successStoryFilterTag');\n var $successStoryPanelContainers = $('.success-story-panel-container');\n\n if (!$selectedFilterDiv.hasClass('selected')) {\n this.clearFilters();\n $selectedFilterDiv.addClass('selected');\n $(\".success-filter-description[data-success-story-filter-tag='\"+ selectedFilter + \"']\").removeClass('hidden');\n\n $successStoryPanelContainers.each(function(index, element) {\n var $successStoryPanelContainer = $(element);\n var successStoryPanelTags = $successStoryPanelContainer.data('successStoryTags');\n\n if (successStoryPanelTags.indexOf(selectedFilter) === -1) {\n $successStoryPanelContainer.addClass('hidden')\n }\n })\n } else {\n this.clearFilters();\n }\n },\n\n clearFilters: function() {\n $('.success-story-filter').removeClass('selected');\n $('.success-story-panel-container').removeClass('hidden');\n $('.success-filter-description').addClass('hidden');\n }\n })\n\n}();\n","!function() {\n UC.views.SystemMessagesIndex = Backbone.View.extend({\n events: {\n 'click .system-message': 'show'\n },\n\n initialize: function() {\n var id = UC.utils.getParameterByName('id');\n\n if (id) {\n this.popDatWindoe(id);\n }\n },\n\n show: function(e) {\n e.preventDefault();\n var id = $(e.currentTarget).data('id');\n this.popDatWindoe(id);\n },\n\n markAsRead: function(id, handleSuccess) {\n var link = this.$el.find('.js-markAsRead[data-id={0}] a'.format(id))\n if (link.hasClass('text-primary')) {\n UC.components.Notifications.mark_read(id);\n link.toggleClass('text-primary')\n }\n\n UC.net.get('/system_messages/{0}'.format(id), handleSuccess)\n },\n\n popDatWindoe: function(id) {\n var $el = this.$el.find('.system-message[data-id=\"{0}\"]'.format(id));\n\n this.markAsRead(id, function(msg) {\n this.$el.find('#modalMessageSubject').text(msg.Subject);\n this.$el.find('#modalMessageDate').text(moment(msg.DateSent).format('L LT'));\n this.$el.find('#modalMessageBody').html(msg.Message);\n\n this.$el.find('#modalSystemMessage').modal('show');\n }.bind(this));\n }\n });\n}();\n","!function() {\n\n UC.views.UserDocumentsBulkActions = Backbone.View.extend({\n\n events: {\n 'click .share': 'share',\n 'click .delete': 'destroy'\n },\n\n initialize: function(options) {\n this.index = options.index;\n\n this.index.$el.on('change', '.bulk-check',\n this.updateActionsRow.bind(this));\n },\n\n updateActionsRow: function() {\n var selected_count = this.gatherCheckedRows().length;\n var $tableHeaderText = $('.header-text');\n\n if (selected_count > 0) {\n var word = selected_count == 1 ? 'document' : 'documents';\n this.$el.find('.doc-list-actions-stats')\n .text('{0} {1} selected'.format(selected_count, word));\n this.$el.show();\n $tableHeaderText.addClass('invisible');\n } else {\n this.$el.hide();\n $tableHeaderText.removeClass('invisible');\n }\n },\n\n gatherCheckedRows: function() {\n return _.filter(this.index.rows, function(row) {\n return row.isChecked();\n });\n },\n\n gatherCheckedIds: function() {\n return _.map(this.gatherCheckedRows(), function(row) {\n return row.$el.data('id');\n });\n },\n\n share: function(e) {\n e.preventDefault();\n this.index.modal_share.render({\n document_ids: this.gatherCheckedIds(),\n onPermissionsUpdated: function(_documentIds, open) {\n _.each(this.gatherCheckedRows(), function(row) {\n row.updateVisibilityText(open);\n });\n }.bind(this)\n });\n },\n\n gatherCheckedChildren: function() {\n return _.map(this.gatherCheckedRows(), function(row) {\n return row.$el.data('child');\n });\n },\n\n destroy: function(e) {\n e.preventDefault();\n\n var that = this;\n var ids = this.gatherCheckedChildren();\n var title = 'Delete Document';\n var body = 'Are you sure you want to delete';\n\n if (ids.length > 1) {\n title += ' ({0} items)'.format(ids.length);\n body += ' those documents?'\n } else {\n body += ' 1 document?'\n }\n \n new UC.partials.modalV9 ({\n modalTitle: title,\n modalContent: body,\n modalFooter: {\n yesTextClass: 'btn-lg btn-primary js-confirm-delete',\n yesText: 'Confirm',\n noTextClass: 'btn-lg btn-grey-BG',\n noText: 'Cancel'\n },\n renderCallback: function() {\n $('.js-confirm-delete').on('click', function() { that.index.destroy(ids); });\n }\n });\n }\n });\n\n}();\n","import { default as DropboxSign } from 'hellosign-embedded';\n\nfunction openEmbeddedUrl(url, eventHandler) {\n const client = new DropboxSign({\n clientId: UC.constants.dropboxSignClientId\n });\n\n if (typeof eventHandler === 'function') {\n client.on(DropboxSign.events.SIGN, (data) => eventHandler(DropboxSign.events.SIGN, data));\n client.on(DropboxSign.events.CANCEL, (data) => eventHandler(DropboxSign.events.CANCEL, data));\n client.on(DropboxSign.events.SEND, (data) => eventHandler(DropboxSign.events.SEND, data));\n }\n\n return client.open(url, {\n allowCancel: true,\n skipDomainVerification: window.location.hostname === 'local.upcounsel.com',\n debug: window.location.hostname === 'local.upcounsel.com' || window.location.hostname === 'staging.upcounsel.com',\n });\n}\n\nfunction updateSignatureRequestAndReloadPage(documentId, event, data) {\n UC.net.post(\n '/signatures/user_document/{0}/update'.format(documentId),\n {...data, event: `signature_request_${event}`},\n function () {\n let url = window.location.href;\n if (url.indexOf('#upload') !== -1) {\n url = url.replace('#upload', '');\n window.location = url;\n } else {\n window.location.reload();\n }\n }\n );\n}\n\nexport function openDropboxSignForSign(documentId) {\n UC.net.get(\n '/signatures/user_document/{0}/get_signature_url'.format(documentId),\n function (err, signUrl) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n return\n }\n\n UC.utils.showPanel($('#overlayPanel'));\n\n openEmbeddedUrl(\n signUrl,\n function (event, eventData) {\n if (event === DropboxSign.events.SIGN) {\n updateSignatureRequestAndReloadPage(documentId, event, eventData);\n } else if (event === DropboxSign.events.CANCEL) {\n UC.utils.hidePanel($('#overlayPanel'));\n }\n }\n );\n\n }\n );\n}\n\nexport function openDropboxSignForClaim(claimData, modal) {\n const documentId = claimData.id;\n\n UC.net.post(\n '/signatures/user_documents/{0}/create'.format(documentId),\n claimData,\n function (err, claimUrl) {\n if (modal) {\n modal.hideLoader();\n }\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n return\n }\n\n if (modal) {\n modal.close();\n }\n UC.utils.showPanel($('#overlayPanel'));\n UC.utils.disableScrolling();\n\n openEmbeddedUrl(\n claimUrl,\n function (event, eventData) {\n if ([DropboxSign.events.SIGN, DropboxSign.events.CANCEL, DropboxSign.events.SEND].includes(event)) {\n updateSignatureRequestAndReloadPage(documentId, event, eventData);\n }\n }\n );\n }\n );\n}\n\nexport function cancelSignatureRequest(documentId) {\n UC.utils.showPanel($('#overlayPanel'));\n\n UC.net.post(\n '/signatures/user_document/{0}/cancel'.format(documentId),\n null,\n function () {\n UC.utils.hidePanel($('#overlayPanel'));\n\n location.reload();\n }\n );\n}\n","!function() {\n\n UC.views.UserDocumentsFilter = Backbone.View.extend({\n initialize: function() {\n new UC.views.UserDocumentsIndex({el: this.$el})\n },\n })\n}();\n","!function() {\n\n UC.views.UserDocumentsHistory = Backbone.View.extend({\n\n events: {\n 'submit #formRestoreRevision': 'restoreRevision'\n },\n\n elements: {\n 'formRestoreRevision': null,\n 'btnRestoreVersion': null\n },\n\n initialize: function() {\n UC.utils.setSelectors(this.elements);\n this.components = {};\n this.components.btnRestoreVersionLoader =\n this.elements.btnRestoreVersion.buttonLoader();\n },\n\n restoreRevision: function(e) {\n e.preventDefault();\n\n var version = this.elements.formRestoreRevision.find('input[name=version]:checked').val();\n var data = { version: version };\n\n if (!version || 0 === version.length) {\n UC.utils.showNotification('Please select a version to restore.', UC.constants.results.failure);\n return;\n }\n\n this.components.btnRestoreVersionLoader.showLoader();\n\n if (UC.job) {\n data.job_id = UC.job.id;\n }\n\n UC.net.post($(e.target).attr('action'), data)\n .complete(function() {\n window.location.pathname = \"/documents\"\n });\n }\n });\n}();\n","import { cancelSignatureRequest, openDropboxSignForClaim, openDropboxSignForSign } from './dropbox_sign'\nimport { loadFileStackScript, pickFileAndStore } from '../../../utils/filestack'\n\n!function() {\n\n UC.views.UserDocumentsIndex = Backbone.View.extend({\n\n events: {\n 'click .container .document-choose': 'promptChoose',\n 'click .container .document-delete': 'confirmDestroy',\n 'click .container .document-share': 'openShareModal',\n 'click .container .document-cancel': 'cancelSignatureRequest',\n 'click .container .document-replace': 'createRevision',\n 'click .container .restart-doc-tutorial': 'runTutorial',\n 'click .container .document-request-signature': 'openChooseSignersModal',\n 'click .container .document-sign': 'openForSign',\n 'click .container #lnkLearnMoreHS': 'openLearnMoreHS',\n 'click .container #tblFilterList td': 'clickFilterItem',\n 'click .container #docListPrev, .container #docListNext': 'renderPage',\n 'click .check-all': 'toggleCheckAll',\n 'click .document-row': 'selectBetween',\n 'click .container .doc-filter:not(.active)': 'changeFilter',\n 'click .container .documents_search_clear': 'changeFilter',\n 'click .container .sort-menu li': 'changeFilter',\n 'submit .container .documents_search': 'search',\n 'click .container .js-document-create': 'promptUpload'\n },\n\n elements: {\n 'docIntro': null,\n 'btnFilePicker': null,\n 'modalDocumentPermissions': null,\n 'modalLearnMoreHS' : null\n },\n\n initialize: function() {\n this.components = {};\n this.data = {};\n\n // important. loads filepicker.js\n loadFileStackScript(this.afterInitialize.bind(this));\n },\n\n afterInitialize: function() {\n UC.utils.setSelectors(this.elements);\n\n // make upload buttons visible now that filepicker has loaded\n this.$('.js-document-create').removeClass('invisible');\n this.$('#btnToggleUpload').removeClass('invisible');\n\n this.components.btnFilePickerLoader = this.elements.btnFilePicker.buttonLoader();\n this.modal_share = new UC.modals.UserDocumentsModalShare();\n this.modal_choose_signers = new UC.modals.UserDocumentsModalChooseSigners({\n parent_view: this,\n submitCallback: this.onPrepareForSigning });\n // this.modal_visibility = new UC.modals.UserDocumentsModalVisibility({\n // onSave: this.toggleRowVisibilityIcon\n // });\n this.modal_choose_document = new UC.modals.UserDocumentsModalChooseDocument({\n parent_view: this,\n $el: this.$el.find('#modalChooseDocument'),\n save_callback: this.refreshList.bind(this)\n });\n\n this.fixDropDownForMobile();\n\n if (window.location.hash.indexOf('#upload') != -1) {\n this.promptUpload();\n }\n\n this.initList();\n\n if (UC.constants.pageName != 'documents'){\n var html = this.$el.find('.doc-list-wrapper')[0].outerHTML,\n newPath = location.pathname,\n query = UC.utils.getParameterByName('q');\n\n // set initial state info\n history.replaceState({\n html: html, nav: newPath, query: query\n }, '', location.pathname + location.search);\n\n window.onpopstate = function(e){\n if (e.state && e.state.html) {\n this.initList(e.state.html);\n }\n }.bind(this);\n }\n\n UC.utils.recordKissClickEvent('.document-download','User Document - Download (cog)',{'user_type' : UC.user.type ,'document_id' : this.document_id});\n },\n\n fixDropDownForMobile: function() {\n $('#document-dropdown').click(function (e) {\n // Fix for click not dropping down on iOS\n e.preventDefault();\n setTimeout($.proxy(function () {\n if ('ontouchstart' in document.documentElement || window.navigator.msPointerEnabled) {\n $(this).siblings('.dropdown-backdrop').off().remove();\n }\n }, this), 0);\n });\n },\n \n toggleCheckAll: function(e) {\n if (this.$el.find('.check-all').hasClass('checked')) {\n this.selectAll(e);\n } else {\n this.selectNone(e);\n }\n },\n\n search: function(e) {\n e.preventDefault();\n\n var $search_input = this.$el.find('.documents_search_input');\n\n this.data.query = $search_input.val();\n\n this.changeFilter(e).done(function() {\n\n if (this.data.query && this.data.query !== '') {\n this.$el.find('.documents_search_clear').removeClass('hide');\n }\n\n this.data.query = null;\n\n this.$el.find('.documents_search_input').focus(function() {\n this.selectionStart = this.selectionEnd = this.value.length;\n }).focus();\n }.bind(this));\n },\n\n changeFilter: function(e){\n e.preventDefault();\n\n var query = this.data.query;\n var filter = $(e.target).data('filter') || '';\n var kissData = {\n location: 'central_docs',\n filter: filter,\n userId: UC.user.id,\n query: query\n };\n\n UC.utils.recordKissEvent('document_filter_changed', kissData);\n\n return $.get('/documents/{0}'.format(filter), { q: query }, function(html) {\n this.data.filter = filter;\n this.pushHistoryState(filter, location.pathname, html, query);\n this.initList(html);\n }.bind(this));\n },\n\n pushHistoryState: function(filter, pathname, html, query) {\n var nav;\n var newPath;\n\n if (pathname.match(/\\//g).length == 1) {\n if (filter && filter != '') {\n nav = '/documents/{0}'.format(filter);\n } else {\n nav = '/documents';\n }\n } else if (pathname.match(/\\//g).length == 2){\n if (filter && filter != '') {\n nav = '../documents/{0}'.format(filter);\n } else {\n nav = '../documents';\n }\n } else {\n if (filter && filter != '') {\n nav = '../../documents/{0}'.format(filter);\n } else {\n nav = '../../documents';\n }\n }\n\n newPath = nav;\n\n if (query && query != '') {\n newPath += '?q={0}'.format(query);\n }\n\n history.pushState({\n html: html,\n nav: nav,\n query: query\n }, filter, newPath);\n },\n\n buildNavFromString: function(string, query) {\n\n if (query && query != '') {\n string += \"/Search Results for '{0}'\".format(query);\n }\n\n var crumbs = string.split('/'),\n html = '';\n\n for (var i = 1; i < crumbs.length; i++) {\n var crumb = crumbs[i].capitalize();\n\n if (i < crumbs.length - 1) {\n html += \"
  • {0}
  • \".format(crumb);\n } else {\n html += \"
  • {0}
  • \".format(crumb);\n }\n };\n return html;\n },\n\n clickFilterItem: function(e){\n var $row = $(e.target).closest('tr'),\n targetId = $row.data('id'),\n title = $row.data('title'),\n lastBreadCrumb = $('.wide-nav .breadcrumb li.active').text(),\n filter = this.data.filter,\n kissData = {\n location: 'central_docs',\n filter: filter,\n item_id: targetId,\n userId: UC.user.id\n };\n\n UC.utils.recordKissEvent('document_filter_item_clicked', kissData);\n UC.net.get('/documents/{0}/{1}'.format(filter, targetId), function(html) {\n $('.wide-nav .breadcrumb li.active').html(\"{1}\".format(filter, lastBreadCrumb));\n $('.wide-nav .breadcrumb li').removeClass('active');\n if (filter== 'documents') {\n var titlePath = \"{0}/{1}\".format(lastBreadCrumb, title);\n } else {\n var titlePath = \"/documents/{0}/{1}\".format(lastBreadCrumb, title);\n }\n history.pushState({html: html, nav: titlePath}, title, \"{0}/{1}\".format(filter, targetId));\n this.initList(html);\n }.bind(this));\n },\n\n resetList: function() {\n // remove and unbind actions if exists\n if (this.actions) this.actions.remove();\n // remove and unbind any existing rows\n _.each(this.rows, function(row) {\n // remove backbone view & unbind events\n row.remove();\n });\n this.rows = [];\n },\n\n initList: function(html) {\n var that = this;\n var $list = this.$el.find('.doc-list-wrapper');\n\n // reset rows first\n this.resetList();\n\n if (html) {\n $list.replaceWith(html);\n }\n\n var $rows = this.$el.find('tr.document-row');\n var $learn_more = this.$el.find('.restart-doc-tutorial');\n\n if ($rows.filter('.document-owner').length > 0) {\n $learn_more.removeClass('hidden');\n } else {\n $learn_more.addClass('hidden');\n }\n\n $rows.each(function() {\n var view = new UC.views.UserDocumentsRow({\n el: this\n });\n that.rows.push(view);\n });\n\n this.actions = new UC.views.UserDocumentsBulkActions({\n el: this.$el.find('.doc-list-actions')[0],\n index: this\n });\n\n this.$check = this.$el.find('.check-all').fancyCheck();\n this.setNavCount();\n },\n\n setNavCount: function() {\n var $count = $('a.jn-documents .jn-count');\n var count =\n parseInt(this.$el.find('.doc-list').data('total-entries'), 10);\n\n if (count > 0) {\n $count.html(count).removeClass('hidden');\n } else {\n $count.addClass('hidden');\n }\n },\n\n openLearnMoreHS: function(e) {\n e.preventDefault();\n UC.utils.showModal(this.elements.modalLearnMoreHS);\n },\n\n openFilePicker: function(callback) {\n let path = 'user_{0}/'.format(UC.user.id);\n\n if (UC.job) {\n path += 'job_{0}/'.format(UC.job.id);\n }\n\n pickFileAndStore({\n fileStackApiKey: UC.constants.sharedFileStackApiKey,\n pickerOptions: {\n fromSources: ['local_file_system', 'box', 'dropbox', 'googledrive', 'onedrive'],\n maxFiles: 10,\n onUploadDone: function (res) {\n if (res.filesUploaded && res.filesUploaded.length > 0) {\n callback.call(this, res.filesUploaded);\n }\n }.bind(this)\n },\n storeOptions: {\n location: 's3',\n path: path\n }\n })\n\n UC.utils.recordKissEvent('Open File Picker - User Document', {'user_type': UC.user.type});\n },\n\n promptUpload: function(e) {\n if (e) e.preventDefault();\n\n this.openFilePicker($.proxy(function(InkBlobs) {\n this.processUpload(InkBlobs);\n }, this));\n },\n\n promptChoose: function(e) {\n if (e) e.preventDefault();\n UC.utils.recordKissEvent('choose_document_modal_open', {'userId':UC.user.id});\n this.modal_choose_document.render({job_id: UC.constants.jobId});\n },\n\n processUpload: function(files) {\n var that = this,\n data = {\n files: files,\n job_id: UC.constants.jobId\n }\n\n if (UC.constants.pageName == 'index') data.includeSort = true;\n this.components.btnFilePickerLoader.showLoader();\n\n UC.net.post('{0}.html'.format(UC.constants.user_documents_path), data, function(html) {\n that.initList(html);\n\n var $new_rows = that.$el.find('tr.document-row.new');\n\n if ($new_rows.length == 1) {\n\n var document_id = $new_rows.first().data('id');\n\n if (UC.constants.pageName != 'index'){\n if (UC.constants.jobHasBids || UC.constants.jobIsHired || UC.user.type === 'attorney') {\n that.modal_share.render({\n document_ids: [document_id],\n onPermissionsUpdated: this.onDocumentPermissionsUpdated.bind(this),\n });\n }\n }\n }\n }).complete(function() {\n that.components.btnFilePickerLoader.hideLoader();\n });\n },\n\n confirmDestroy: function(e) {\n e.preventDefault();\n\n var that = this;\n var $row = $(e.target).closest('tr');\n var document_id = $row.data('child');\n\n function onConfirm(response) {\n that.destroy([document_id]);\n }\n\n new UC.partials.modalV9({\n modalTitle: 'Delete Document',\n modalContent: 'Are you sure you want to delete this document?',\n modalFooter: {\n yesTextClass: 'btn-lg btn-primary js-confirm-delete',\n yesText: 'Confirm',\n noTextClass: 'btn-lg btn-grey-BG',\n noText: 'Cancel'\n },\n renderCallback: function() {\n $('.js-confirm-delete').on('click', function() { onConfirm(); });\n }\n })\n },\n\n openChooseSignersModal: function(e) {\n e.preventDefault();\n if (!this.modal_choose_signers) {\n return;\n }\n\n var $row = $(e.target).closest('tr'),\n document_id = $row.data('child');\n\n this.modal_choose_signers.render({\n document_id: document_id\n });\n },\n\n onPrepareForSigning: function(data){\n openDropboxSignForClaim(data, this);\n },\n\n openForSign: function(e){\n e.preventDefault();\n\n openDropboxSignForSign($(e.target).closest('tr').data('child'));\n },\n\n getPostDestroyPage: function() {\n var $list = this.$el.find('.doc-list');\n var page = parseInt($list.data('page'), 10);\n\n var unchecked = _.filter(this.rows, function(row) {\n return !row.isChecked();\n });\n\n if (page > 1 && unchecked.length <= 0) {\n // previous page if we're deleting entire page\n return page - 1;\n } else {\n return page;\n }\n },\n\n destroy: function(document_ids) {\n var list = document_ids.join();\n UC.utils.recordKissEvent('User Document Cog', {'action':'delete','document_ids' : list});\n\n UC.net.destroy('{0}/{1}.html'.format(UC.constants.user_documents_path, list), {\n page: this.getPostDestroyPage(),\n job_id: UC.constants.jobId\n }, function(html) {\n this.initList(html);\n }.bind(this));\n },\n\n processRevisions: function(files, document_id) {\n\n this.components.btnFilePickerLoader.showLoader();\n\n UC.net.post(\"{0}/{1}/revision\".format(UC.constants.user_documents_path, document_id), {\n files: files,\n job_id: UC.constants.jobId\n }, function(data) {\n location.reload();\n })\n .error($.proxy(function() {\n this.components.btnFilePickerLoader.hideLoader();\n }, this));\n },\n\n createRevision: function(e) {\n e.preventDefault();\n\n var $row = $(e.target).closest('tr');\n var document_id = $row.data('id');\n UC.utils.recordKissEvent('User Document Cog', {'action':'create_revision','document_id' : document_id});\n\n this.openFilePicker($.proxy(function(InkBlobs) {\n this.processRevisions(InkBlobs, document_id);\n }, this))\n },\n\n openShareModal: function(e) {\n e.preventDefault();\n var document_id = $(e.target).closest('tr').data('id');\n UC.utils.recordKissEvent('User Document Cog', {'action':'share','document_id' : document_id});\n this.modal_share.render({\n document_ids: [document_id],\n onPermissionsUpdated: this.onDocumentPermissionsUpdated.bind(this),\n });\n },\n\n onDocumentPermissionsUpdated: function(documentIds, isOpen) {\n _.each(this.rows, function(row) {\n if (documentIds.includes(row.documentId)) {\n row.updateVisibilityText(isOpen);\n }\n });\n },\n\n cancelSignatureRequest: function(e) {\n e.preventDefault();\n\n var document_id = $(e.target).closest('tr').data('child');\n cancelSignatureRequest(document_id);\n },\n\n selectAll: function(e) {\n e.preventDefault();\n var $list = $(e.target).closest('.doc-list-wrapper');\n $list.find('.bulk-check').each(function() {\n $(this).fancyCheck().check(true);\n });\n },\n\n selectNone: function(e) {\n e.preventDefault();\n var $list = $(e.target).closest('.doc-list-wrapper');\n $list.find('.bulk-check').each(function() {\n $(this).fancyCheck().check(false);\n });\n },\n\n selectBetween: function(e) {\n var $check = $(e.currentTarget).find('.bulk-check');\n var $checks = this.$el.find('.doc-list .bulk-check');\n\n if (this.$last_checked && e.shiftKey) {\n var checked = this.$last_checked.hasClass('checked');\n var start = $checks.index($check);\n var end = $checks.index(this.$last_checked);\n\n $checks.slice(Math.min(start,end), Math.max(start,end) + 1).each(function() {\n $(this).fancyCheck('check', checked);\n });\n }\n\n this.$last_checked = $check;\n },\n\n runTutorial: function() {\n var list = this.$el.find('.doc-list'),\n initialSteps = [],\n steps;\n\n function resetTutorial() {\n $('.introjs[data-step=\"2\"]')\n .find('.dropdown-menu')\n .removeClass('open forced')\n .data('aria-open', false)\n }\n\n var container = list.find('.document-owner').eq(0);\n if (!container) list.find('.document-row');\n\n if (UC.user.type == \"client\") {\n //steps = initialSteps.concat([\n steps = [\n {\n element: container.find('.document-view').eq(0),\n text: \"Click on the title of your document to view it.\"\n },\n {\n element: container.find('.popdown'),\n text: \"The Actions menu is where you’ll find a number of options for your document.\",\n position: \"left\"\n },\n {\n element: container.find('a.document-share'),\n text: \"Use the Share action to change document visibility settings or to grant access to attorneys.\",\n position: \"left\"\n },\n {\n element: container.find('a.document-replace'),\n text: \"Use the Upload New Version action to upload a new version of the same document.\",\n position: \"left\"\n },\n {\n element: container.find('a.document-versions'),\n text: \"Use the Previous Versions link to view the document’s change history.\",\n position: \"left\"\n },\n {\n element: container.find('a.document-request-signature'),\n text: \"Use the Prepare to Sign action to electronically sign the document yourself, as well as send it out to 3rd parties for signature. 100% free!\",\n position: \"left\"\n }\n ]\n //]);\n } else if (UC.user.type == \"attorney\") {\n //steps = initialSteps.concat([\n steps = [\n {\n element: container.find('.document-view').eq(0),\n text: \"Click on the title of your document to view it or request access.\"\n },\n {\n element: container.find('.popdown'),\n text: \"The Actions menu is where you’ll find a number of options for your document.\",\n position: \"left\"\n },\n {\n element: container.find('.document-replace'),\n text: \"Use the Upload New Version action to upload a new version of the same document.\",\n position: \"left\"\n },\n {\n element: container.find('.document-versions'),\n text: \"Use the Previous Versions link to view the document’s change history.\",\n position: \"left\"\n },\n {\n element: container.find('.document-request-signature'),\n text: \"Use the Prepare to Sign action to electronically sign the document yourself, as well as send it out to 3rd parties for signature. 100% free!\",\n position: \"left\"\n }\n ]\n //]);\n }\n \n UC.utils.initIntroJs(steps).onchange(function(e) {\n var step = $(e).data('step');\n \n var $dropdown = $('.introjs[data-step=\"2\"]');\n if(step == '3' || step == '4' || step == '5' || step == '6') {\n $dropdown\n .find('.dropdown-menu')\n .addClass('open forced')\n .data('aria-open', true)\n } else {\n $dropdown\n .find('.dropdown-menu')\n .removeClass('open forced')\n .data('aria-open', false);\n }\n }).onexit(function() {\n resetTutorial();\n }).oncomplete(function() {\n resetTutorial();\n });\n },\n\n renderPage: function(e, page) {\n if (e) e.preventDefault();\n\n var path = $(e.target).attr('href');\n\n UC.net.get(path, function(html) {\n this.initList(html);\n }.bind(this));\n\n UC.utils.scrollToTop();\n },\n\n refreshList: function(page){\n var page = page || 1;\n UC.net.get(location.href, {page: page}, function(html) {\n this.initList(html);\n }.bind(this));\n }\n })\n}();\n","!function () {\n\n UC.modals.UserDocumentsModalChooseDocument = Backbone.View.extend({\n\n data: {},\n\n initialize: function (options) {\n options = options || {};\n this.parent_view = options.parent_view;\n this.base_path = UC.constants.user_documents_path;\n this.save_callback = options.save_callback;\n this.components = {}\n },\n\n render: function (options) {\n this.renderModal(options);\n },\n\n renderModal: function (options) {\n var data = {\n job_id: options.job_id,\n initial: true\n };\n\n UC.net.get(this.base_path + '/choose', data, function (modalHtml) {\n this.chooseDocumentModal = new UC.partials.modalV9({\n modalTitle: 'Upload Existing Document',\n modalContent: modalHtml,\n id: 'modalChooseDocument',\n modalFooter: {\n yesTextClass: 'btn-lg btn-primary',\n yesTextId: 'btnSave',\n noTextClass: 'btn-lg btn-grey-BG jqmClose',\n noTextId: 'aCancelLink',\n noText: 'Cancel',\n yesText: 'Confirm'\n },\n renderCallback: function () {\n $('#btnSave').on('click', this.save.bind(this))\n $('.documents_search').on('submit', this.search.bind(this))\n this.initList(modalHtml, true);\n }.bind(this)\n });\n }.bind(this));\n },\n\n initList: function (html, empty) {\n var that = this;\n this.resetList();\n var $v9Modal = $('#modalChooseDocument.v9');\n\n if (empty) {\n this.$el.empty();\n this.components.btnSaveLoader = $('#btnSave').buttonLoader();\n } else {\n $v9Modal.find('.doc-list-wrapper').replaceWith(html);\n }\n\n this.$chkNew = $('#chkCreateNew').fancyCheck({\n label: $('#chkCreateNew').attr('label')\n });\n\n var $rows = $v9Modal.find('tr.document-row');\n\n $rows.each(function () {\n var view = new UC.views.UserDocumentsRow({\n el: this\n });\n that.rows.push(view);\n });\n\n $v9Modal.find('#docListPrev, #docListNext').click(this.renderPage.bind(this));\n $v9Modal.find('.sort-menu li').click(this.changeFilter.bind(this));\n $v9Modal.find('.doc-list .doc-filter-item td').click(this.clickFilterItem.bind(this));\n $v9Modal.find('.documents_search').on('submit', this.search.bind(this))\n this.$check = $('#modalChooseDocument.v9 .check-all').fancyCheck();\n UC.utils.recordKissClickEvent('#chkCreateNew',\n 'check_create_new_copy',\n {userId: UC.user.id, jobId: UC.job.id});\n },\n\n resetList: function () {\n // remove and unbind actions if exists\n if (this.actions) this.actions.remove();\n // remove and unbind any existing rows\n _.each(this.rows, function (row) {\n // remove backbone view & unbind events\n row.remove();\n });\n this.rows = [];\n },\n\n save: function (e) {\n e.preventDefault();\n\n var create_new = this.chooseDocumentModal.$el.find('#chkCreateNew').hasClass('checked');\n var document_ids = [];\n var $checks = this.chooseDocumentModal.$el.find('td .bulk-check');\n $checks.each(function () {\n var $this = $(this);\n if ($this.hasClass('checked')) {\n var $row = $this.closest('.document-row')\n document_ids.push($row.data('id'));\n }\n });\n\n if (document_ids.length > 0) {\n this.components.btnSaveLoader.showLoader();\n UC.utils.recordKissEvent(\n 'submit_choose_documents',\n {\n userId: UC.user.id,\n jobId: UC.job.id,\n documentIds: document_ids,\n createNew: create_new\n });\n\n UC.net.post(this.base_path + '/attach', {\n job_id: UC.constants.jobId,\n document_ids: document_ids,\n create_new: create_new\n }, function (data) {\n if (document_ids.length == $checks.length) {\n $('#btnToggleUpload').addClass('hidden');\n }\n var $notification = $('.js-success-notification');\n $notification.find('.flash-message').text(data.message);\n $notification.removeClass('hidden');\n this.save_callback();\n }.bind(this)).always(function () {\n this.components.btnSaveLoader.hideLoader();\n this.close();\n }.bind(this));\n\n } else {\n this.close();\n }\n },\n\n renderPage: function (e) {\n e.preventDefault();\n var path = $(e.target).attr('href'),\n data = {\n job_id: UC.job.id\n };\n\n if (this.data.filter) data.filter = this.data.filter;\n if (this.data.filter_id) data.id = this.data.filter_id;\n\n UC.net.get(path, data, function (html) {\n this.initList(html);\n }.bind(this));\n },\n\n // need this because when the jqm related\n // events aren't re-applied when we re-render\n close: function (e) {\n if (e) e.preventDefault();\n if (e) e.stopPropagation();\n this.resetList();\n this.chooseDocumentModal.$el.modal('hide')\n },\n\n changeFilter: function (e) {\n if (e) e.preventDefault();\n\n var query = this.data.query;\n var filter = $(e.target).data('filter');\n var kissData = {\n location: 'job_portal',\n filter: filter,\n userId: UC.user.id,\n query: query\n };\n\n UC.utils.recordKissEvent('document_filter_changed', kissData);\n\n var data = {\n filter: filter,\n job_id: UC.job.id,\n q: query\n };\n\n return $.get('/documents/choose', data, function (html) {\n this.data.filter = filter;\n delete this.data['filter_id'];\n this.initList(html);\n }.bind(this));\n },\n\n clickFilterItem: function (e) {\n var $row = $(e.target).closest('tr'),\n targetId = $row.data('id'),\n title = $row.data('title'),\n filter = this.data.filter,\n kissData = {\n location: 'job_portal',\n filter: filter,\n item_id: targetId,\n userId: UC.user.id\n };\n\n UC.utils.recordKissEvent('document_filter_item_clicked', kissData);\n this.data.filter_id = targetId;\n delete this.data['filter'];\n\n var data = {\n filter: filter,\n id: targetId,\n job_id: UC.job.id\n };\n\n $.get('/documents/choose', data, function (html) {\n this.initList(html);\n }.bind(this));\n },\n\n search: function (e) {\n e.preventDefault();\n\n var $search_input = this.chooseDocumentModal.$('.documents_search_input');\n\n this.data.query = $search_input.val();\n\n this.changeFilter(e).done(function () {\n this.data.query = null;\n\n this.chooseDocumentModal.$('.documents_search_input').focus(function () {\n this.selectionStart = this.selectionEnd = this.value.length;\n }).focus();\n }.bind(this));\n }\n });\n}();\n","!function() {\n\n UC.modals.UserDocumentsModalChooseSigners = Backbone.View.extend({\n\n elements: {\n 'signersList' : null,\n 'signerRowTemplate' : null,\n 'btnPrepareForSigning' : null,\n 'dropdownBtnAddSigner' : null,\n 'soloBtnAddSigner' : null\n },\n\n initialize: function(options) {\n this.components = {};\n this.parent_view = options.parent_view;\n this.submitCallback = options.submitCallback;\n },\n\n render: function(options) {\n this.perms = {};\n this.documentId = options.document_id;\n this.basePath = \"{0}/{1}\".format('/signatures/user_documents', this.documentId);\n this.renderModal();\n },\n\n renderModal: function() {\n UC.net.get(this.basePath + '/choose_signers', null, $.proxy(function(modalHtml) {\n this.modalChooseSigners = new UC.partials.modalV9({\n modalTitle: 'Enter Your Signers',\n modalContent: modalHtml,\n id: 'modalChooseSigners',\n renderCallback: this.handleRenderCallback.bind(this)\n });\n }, this));\n },\n \n handleRenderCallback: function() {\n UC.utils.setSelectors(this.elements);\n $('#soloBtnAddSigner').on('click', this.onBtnAddSigner.bind(this));\n $('#btnPrepareForSigning').on('click', this.onBtnPrepareForSigning.bind(this));\n $('.jqmClose').on('click', this.close.bind(this));\n $('.remove').on('click', this.onRemoveClick.bind(this));\n $('.suggested-signer').on('click', this.onSuggestedSignerClick.bind(this));\n this.components.prepareForSigningLoader = this.elements.btnPrepareForSigning.buttonLoader();\n $('.suggested-signer-dropdown').popdown();\n if (this.elements.dropdownBtnAddSigner.is(':visible')) {\n this.elements.soloBtnAddSigner.hide();\n }\n },\n \n onBtnPrepareForSigning: function(e) {\n e.preventDefault();\n if (this.validateSigners()) {\n var data = {\n signers: this.signers,\n id: this.documentId\n };\n this.components.prepareForSigningLoader.showLoader();\n this.submitCallback(data);\n };\n },\n\n close: function() {\n this.modalChooseSigners.$el.modal('hide')\n },\n\n hideLoader: function() {\n this.components.prepareForSigningLoader.hideLoader();\n },\n\n onBtnAddSigner: function(e) {\n var $template = this.elements.signerRowTemplate.clone();\n $template.removeAttr('id');\n $template.removeClass('hidden');\n this.elements.signersList.append($template);\n $template.find('.remove').on('click', this.onRemoveClick.bind(this))\n },\n\n validateSigners: function() {\n var valid = true,\n errors= [],\n signers = [];\n\n $('.row').removeClass('has-error');\n $('.form-group').removeClass('has-error');\n\n this.elements.signersList.find('.signer').each(function() {\n var $el = $(this),\n signer = {\n FirstName: $el.find('#txtFirstName').val().trim(),\n LastName: $el.find('#txtLastName').val().trim(),\n Email: $el.find('#txtEmail').val().trim(),\n UserId: $el.data('id')\n };\n\n if (signer.UserId) {\n signers.push(signer);\n } else if (signer.FirstName != '' || signer.LastName != '' || signer.Email != '') {\n if (!signer.FirstName || signer.FirstName == '') {\n errors.push({element: $el.find('#txtFirstName'), className: 'form-group', text: 'Missing first name'});\n };\n \n if (!signer.LastName || signer.LastName == '') {\n errors.push({element: $el.find('#txtLastName'), className: 'form-group', text: 'Missing last name'});\n };\n\n if (!signer.Email || signer.Email == '') {\n errors.push({element: $el.find('#txtEmail'), className: 'form-group', text: 'Missing email'});\n } else if (!UC.utils.validateEmail(signer.Email)) {\n errors.push({element: $el.find('#txtEmail'), className: 'form-group', text: 'Invalid email'});\n };\n\n signers.push(signer);\n };\n });\n\n if (signers.length == 0 ) {\n errors.push({element: $('.form-buttons.row'), text: 'Please add a signer'});\n };\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors);\n valid = false;\n };\n \n this.signers = signers;\n return valid;\n },\n\n onRemoveClick: function(e) {\n var $row = $(e.target).closest('.row.signer'),\n id = $row.data('id');\n\n if (id) {\n $('.suggested-signer-dropdown li[data-id=\"'+id+'\"]').removeClass('added');\n this.toggleSuggestedDropdown();\n };\n $row.remove();\n },\n\n onSuggestedSignerClick: function(e) {\n e.preventDefault();\n var $row = $(e.target).closest('li'),\n suggested = $(e.target).text();\n\n if (suggested !== 'Other') {\n var id = $row.data('id'),\n $lastRow = this.elements.signersList.find('.signer:last'),\n replace = true,\n $template;\n\n if ($lastRow &&\n $lastRow.length > 0 &&\n $lastRow.find('#txtFirstName').val().trim() ==='' &&\n $lastRow.find('#txtLastName').val().trim() === '' &&\n $lastRow.find('#txtEmail').val().trim() === '') {\n $template = $lastRow;\n replace = false;\n } else {\n $template = this.elements.signerRowTemplate.clone();\n $template.removeAttr('id');\n $template.removeClass('hidden');\n }\n \n $template.data('id', id);\n $template\n .find('#txtFirstName')\n .val($row.data('first-name'))\n .prop('disabled', true);\n $template\n .find('#txtLastName')\n .val($row.data('last-name'))\n .prop('disabled', true);\n $template\n .find('#txtEmail')\n .val($row.data('email'))\n .prop('disabled', true);\n $template\n .find('.remove')\n .on('click', this.onRemoveClick.bind(this))\n\n if (replace) {\n this.elements.signersList.append($template);\n };\n\n $row.addClass('added');\n this.toggleSuggestedDropdown();\n } else {\n this.onBtnAddSigner();\n };\n },\n\n toggleSuggestedDropdown: function() {\n if ($('.suggested-signer-dropdown').length > 0) {\n var visibleSuggestedSigners = this.getQtySuggestedSigners();\n if (visibleSuggestedSigners > 0) {\n $('.suggested-signer-dropdown button').show();\n this.elements.soloBtnAddSigner.hide();\n } else {\n $('.suggested-signer-dropdown button').hide();\n this.elements.soloBtnAddSigner.show();\n };\n };\n },\n\n getQtySuggestedSigners: function() {\n var signers = 0;\n if ($('.v9 .suggested-signer-dropdown').length > 0) {\n $('.v9 li.suggested-signer').each(function() {\n var $el = $(this);\n if (!$el.hasClass('added') && !$el.hasClass('other')) {\n signers++;\n };\n });\n };\n return signers;\n }\n\n });\n}();\n","!function () {\n\n UC.modals.UserDocumentsModalConfirmAccount = Backbone.View.extend({\n\n elements: {\n 'btnConfirmAccount': null,\n 'txtFirstName': null,\n 'txtLastName': null,\n 'txtZipCode': null,\n 'txtCity': null,\n 'selectCountry': null,\n 'txtPassword': null,\n 'internationalPanel': null,\n 'zipCodePanel': null\n },\n\n initialize: function(options) {\n UC.utils.setSelectors(this.elements);\n\n this.components = {};\n this.components.btnConfirmAccountLoader = this.elements.btnConfirmAccount.buttonLoader();\n this.userId = UC.constants.userId;\n this.account = {};\n this.account.email = UC.constants.email;\n this.account.token = UC.constants.token;\n this.account.agreeTerms = true;\n this.path = '/account/confirm_account_ajax';\n },\n\n toggleZipCodePanel: function(e) {\n UC.utils.hidePanel(this.elements.internationalPanel);\n UC.utils.showPanel(this.elements.zipCodePanel);\n },\n\n toggleInternationalPanel: function(e) {\n UC.utils.hidePanel(this.elements.zipCodePanel);\n UC.utils.showPanel(this.elements.internationalPanel);\n this.elements.selectCountry.select2();\n },\n\n render: function(options) {\n $('#btnConfirmAccount').click(this.onBtnConfirmAccount.bind(this));\n $('#toggleInternationalPanel').click(this.toggleInternationalPanel.bind(this));\n $('#toggleZipCodePanel').click(this.toggleZipCodePanel.bind(this));\n this.elements.selectCountry.find(\"option[value='USA']\").remove();\n this.$el.modal({\n backdrop: 'static'\n });\n return this;\n },\n\n onBtnConfirmAccount: function() {\n var accountDfd = new $.Deferred();\n var addressDfd = new $.Deferred();\n\n this.components.btnConfirmAccountLoader.showLoader();\n $.when(accountDfd, addressDfd)\n .done(function(){\n this.confirmAccount();\n }.bind(this))\n .fail(function() {\n this.components.btnConfirmAccountLoader.hideLoader();\n }.bind(this));\n\n this.validateConfirmAccount(accountDfd);\n this.validateAddress(addressDfd);\n },\n\n validateConfirmAccount: function(dfd) {\n var errors = [];\n $('.row').removeClass('has-error');\n\n this.account.firstName = this.elements.txtFirstName.val().trim();\n this.account.lastName = this.elements.txtLastName.val().trim();\n this.account.password = this.elements.txtPassword.val();\n\n if (this.account.firstName == '') {\n errors.push({element: this.elements.txtFirstName, text: 'First name required'});\n };\n\n if (this.account.lastName == '') {\n errors.push({element: this.elements.txtLastName, text: 'Last name required'});\n };\n\n if (this.account.password == '') {\n errors.push({element: this.elements.txtPassword, text: 'Please enter a password'});\n } else if (this.account.password.length < UC.constants.minPasswordLength) {\n errors.push({element: this.elements.txtPassword, text: 'Your password must be at least {0} characters long'.format(UC.constants.minPasswordLength)});\n };\n\n if (errors.length > 0) {\n for (var i = 0, len = errors.length; i < len; i++) {\n errors[i].element.closest('.row').addClass('has-error').find('.error-message').text(errors[i].text);\n }\n\n errors[0].element[0].scrollIntoView()\n dfd.reject();\n } else {\n dfd.resolve();\n };\n\n },\n\n validateAddress: function(dfd) {\n var address = {},\n errors = {};\n\n if (this.elements.zipCodePanel.is(':visible')) {\n address.ZipCode = this.elements.txtZipCode.val().trim();\n errors.ZipCode = {element: this.elements.txtZipCode, text: 'Please enter a valid zip code'};\n } else {\n address.City = this.elements.txtCity.val().trim();\n address.CountryCode = this.elements.selectCountry.val();\n errors.City = {element: this.elements.txtCity, text: 'Please enter a city'};\n errors.CountryCode = {element: this.elements.selectCountry, text: 'Please select a country'};\n };\n\n this.account.Address = address;\n var options = {\n address: address,\n callback: null,\n errors: errors,\n dfd: dfd\n };\n UC.utils.validateAddressAjax(options);\n },\n\n confirmAccount: function() {\n var data = {\n account: this.account\n };\n\n UC.net.post(this.path, data, function(err, data){\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n var current = window.location.href.split('?')[0];\n location.href = current + '?show_about=true';\n };\n });\n }\n\n });\n\n}();\n","!function() {\n UC.modals.UserDocumentsModalShare = Backbone.View.extend({\n\n events: {\n 'submit #formDocumentPermissions': 'save',\n 'change .user-permissions': 'toggleMessageRow'\n },\n\n elements: {\n 'formDocumentPermissions': null,\n 'btnSavePermissions': null,\n 'rowShareMessage': null,\n 'spanShareMessageRecipients': null\n },\n\n initialize: function(options) {\n this.parent_view = (options || {}).parent_view;\n this.components = {};\n },\n\n render: function(options) {\n this.perms = {};\n\n if (options && options.document_ids) {\n this.document_ids = options.document_ids;\n this.base_path = '{0}/{1}'.format(UC.constants.user_documents_path,\n this.document_ids.join());\n }\n\n this.renderModal(options);\n },\n\n renderModal: function(options) {\n var options = options || {};\n\n UC.net.get(this.base_path + '/share', {\n job_id: UC.constants.jobId,\n open: options.open // forces visibility after update\n }, $.proxy(function(modal_html) {\n this.this_sucker_is_dirty = false;\n UC.utils.setSelectors(this.elements);\n this.components.btnSavePermissionsLoader =\n this.elements.btnSavePermissions.buttonLoader();\n this.$el.find('.user-permissions').change();\n this.onPermissionsUpdated = options.onPermissionsUpdated;\n\n this.shareModal = new UC.partials.modalV9 ({\n modalTitle: 'Share Settings',\n modalSubTitle: {\n text: 'Learn More',\n className: 'restart-share-tutorial link'\n },\n modalContent: modal_html,\n id: 'modalDocumentShare',\n renderCallback: this.shareModalCallback.bind(this)\n })\n }.bind(this), this));\n },\n\n shareModalCallback: function() {\n $('#formDocumentPermissions').on('submit', this.save.bind(this));\n $('#formDocumentVisibility').on('change', this.updateVisibility.bind(this));\n $('#aCancelLink').on('click', this.close.bind(this));\n $('.user-permissions').on('change', this.toggleMessageRow.bind(this));\n $('.restart-share-tutorial').on('click', this.runTutorial.bind(this));\n $(\"[data-toggle='tooltip']\").tooltip();\n if ($('.user-permissions').length === 0) {\n $('.restart-share-tutorial').addClass('hidden');\n }\n },\n\n runTutorial: function() {\n var container = this.shareModal.$el.find('#js-vis-share'),\n stepCount = 1,\n steps = '';\n\n if (UC.user.type === \"client\") {\n steps = [\n {\n element: container.find('.share-visibility').eq(0),\n intro: \"Change your Document Visibility Settings here to choose how to manage access to your documents.\"\n },\n {\n element: container.find('.share-user').eq(0),\n intro: \"Attorneys who request access or submit proposals will appear here.\"\n },\n {\n element: container.find('.share-access').eq(0),\n intro: \"Choose what level of access you want to give people. You can choose 'View', 'View & Download' and 'Full Control.'\"\n },\n {\n element: container.find('.share-message:visible'),\n intro: \"Include an optional message when you give access to other parties.\"\n }\n ];\n } else if (UC.user.type === \"attorney\") {\n steps = [\n {\n element: container.find('.share-visibility').eq(0),\n intro: \"Change your Document Visibility Settings here to choose how to manage access to your documents.\"\n },\n {\n element: container.find('.share-user').eq(0),\n intro: \"Users who request access will appear here.\"\n },\n {\n element: container.find('.share-access').eq(0),\n intro: \"Choose what level of access you want to give people. You can choose 'View', 'View & Download' and 'Full Control.'\"\n },\n {\n element: container.find('.share-message:visible'),\n intro: \"Include an optional message when you give access to other parties.\"\n }\n ];\n }\n\n for (var i = 0, len = steps.length; i < len; i++) {\n if (steps[i].element.length > 0) {\n steps[i].element.attr({\n 'data-step': stepCount,\n 'data-intro': steps[i].intro,\n 'data-position': steps[i].position ? steps[i].position : ''\n });\n steps[i].element.addClass('tutorial');\n stepCount++;\n }\n }\n\n introJs().start().onexit(function() {\n $('.tutorial').removeAttr('data-step').removeAttr('data-intro').removeClass('tutorial');\n });\n },\n\n getOpenChecked: function() {\n return this.shareModal.$el.find('input[name=Open]:checked').val();\n },\n\n buildPermissionsData: function() {\n var permissions = { Open: this.getOpenChecked(), Users: [] };\n\n permissions.Message = $('#txtShareMessage').val();\n\n $('.row-permissions.form-group').each(function() {\n var $el = $(this);\n var p = parseInt($el.find('.user-permissions').val(), 10);\n\n if (p >= 0) {\n permissions.Users.push({\n UserId: $el.data('user-id'),\n View: (p > 0),\n Download: (p > 1),\n Replace: (p > 2)\n });\n }\n });\n\n return permissions;\n },\n\n save: function(e) {\n e.preventDefault();\n\n if (!this.this_sucker_is_dirty) {\n this.shareModal.$el.modal('hide');\n return false;\n }\n\n var data = { permissions: this.buildPermissionsData() };\n\n this.components.btnSavePermissionsLoader.showLoader();\n\n if (this.document_ids.length === 1) {\n UC.utils.recordKissEvent('User Document Share', {\n 'user_type' : UC.user.type ,'document_id' : this.document_ids[0]\n });\n }\n\n if (UC.job) {\n data['job_id'] = UC.job.id;\n }\n\n UC.net.put(this.base_path + '/permissions', data, function(err, message) {\n var $notification = $('.js-success-notification');\n $notification.find('.flash-message').text(message);\n $notification.removeClass('hidden');\n this.shareModal.$el.modal('hide');\n if (typeof this.onPermissionsUpdated === 'function') {\n this.onPermissionsUpdated(this.document_ids, this.getOpenChecked());\n }\n }.bind(this)).fail(function(res) {\n\n UC.closeTheLoop.handleFailure(res, true);\n\n }.bind(this)).always(function(res) {\n\n this.components.btnSavePermissionsLoader.hideLoader();\n\n }.bind(this));\n },\n\n updateVisibility: function(e) {\n e.preventDefault();\n\n var open = this.getOpenChecked();\n var $notification = $('.js-save-notification');\n if (this.document_ids.length === 1) {\n UC.utils.recordKissEvent('User Document - Update Permissions', {\n 'document_id' : this.document_ids[0], 'permissions' : open\n });\n }\n UC.net.put(this.base_path + '/permissions', {\n permissions: {\n Open: open\n }\n })\n .done(function(data, textStatus, jqXHR) {\n $notification.replaceWith('{0}'.format(data.message));\n if (typeof this.onPermissionsUpdated === 'function') {\n this.onPermissionsUpdated(this.document_ids, open);\n }\n }.bind(this))\n .fail(function(jqXHR, textStatus, errorThrown) {\n $notification.replaceWith('{0}'.format(errorThrown));\n });\n },\n\n dirty: function() {\n this.this_sucker_is_dirty = true;\n $('#formDocumentPermissions').find('#aCancelLink').removeClass('hidden');\n },\n\n toggleMessageRow: function(e) {\n var $el = $(e.target);\n var $row = $el.closest('.row-permissions');\n var user_name = $row.find('.user-name').text();\n var user_id = $row.data('user-id');\n var $requestOnlyRadio = $('#formDocumentVisibility').find('#Open_false');\n if (!$requestOnlyRadio.prop('checked')) {\n $requestOnlyRadio.prop(\"checked\", true);\n }\n\n var original = parseInt($el.data('original'), 10);\n var selected = parseInt($el.val(), 10);\n\n if (original != selected) {\n this.dirty();\n }\n\n if ((!original || original == 0) && selected >= 1) {\n this.perms[user_id] = user_name;\n } else {\n delete this.perms[user_id];\n }\n\n var recipients = [];\n for (var user_id in this.perms) {\n recipients.push(this.perms[user_id].trim());\n }\n\n if (recipients.length > 0) {\n var string = \"\";\n\n if (recipients.length <= 2) {\n string = recipients.join(' & ');\n } else {\n var beginning = recipients.slice(0, recipients.length - 1);\n string = beginning.join(', ');\n string += \" & \" + recipients[recipients.length - 1];\n }\n this.elements.spanShareMessageRecipients.text(string);\n UC.utils.showComponent(this.elements.rowShareMessage);\n } else {\n UC.utils.hideComponent(this.elements.rowShareMessage);\n }\n\n this.$el.ucModal('adjust');\n },\n\n close: function() {\n this.shareModal.$el.modal('hide');\n }\n });\n}();\n","!function() {\n\n UC.views.UserDocumentsRow = Backbone.View.extend({\n\n events: {\n 'click': 'triggerFancyCheck',\n 'click .document-rename': 'showRename',\n 'blur .document-rename-text': 'hideRename',\n 'keydown .document-rename-text': 'hideRename',\n 'change .document-rename-text': 'saveRename',\n 'change .bulk-check': 'toggleRowHighlight'\n },\n\n initialize: function() {\n this.$check = this.$el.find('.bulk-check').fancyCheck();\n this.$el.find('.popdown').popdown();\n this.documentId = this.$el.data('id');\n },\n\n triggerFancyCheck: function(e) {\n if (e.target.tagName == 'TD') {\n if (this.$check.hasClass('checked')) {\n // uncheck\n this.$check.check(false);\n } else {\n // check\n this.$check.check(true);\n }\n this.toggleRowHighlight();\n }\n },\n\n toggleRowHighlight: function() {\n if (this.$el.find('.bulk-check').hasClass('checked')) {\n this.$el.addClass('active');\n } else {\n this.$el.removeClass('active');\n }\n },\n\n isChecked: function() {\n return this.$el.find('.bulk-check').hasClass('checked');\n },\n\n showRename: function(e) {\n e.preventDefault();\n this.$link = this.$el.find('.document-view:visible');\n this.$text = this.$link.siblings('.document-rename-text');\n var period = this.$text.val().lastIndexOf('.');\n \n this.$link.hide();\n this.$text.width(this.$link.outerWidth()).show().select();\n if (period != -1) {\n // highlight filename sans extension\n this.$text[0].setSelectionRange(0, period);\n }\n },\n\n hideRename: function(e) {\n var esc = e.type === 'keydown' && e.keyCode == 27;\n var enter = e.type === 'keydown' && e.keyCode == 13;\n\n if (esc || enter || e.type !== 'keydown') {\n e.preventDefault();\n if (esc) {\n // revert back to original\n this.$text.val(this.$link.text());\n } else {\n this.$link.text(this.$text.val());\n }\n this.$link.show();\n this.$text.hide();\n }\n },\n\n saveRename: function() {\n // we want to update the current document only, not the master (child)\n var path = '{0}/{1}'.format(UC.constants.user_documents_path, this.$el.data('child'));\n\n UC.net.put(path, {\n FileName: this.$text.val()\n }, function(err, message) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n })\n .success(function() {\n this.$link = null;\n this.$text = null;\n });\n },\n\n updateVisibilityText: function(open) {\n this.$el.find('.doc-visibility').html(open === 'true' ? 'Open' : 'Request Only');\n }\n });\n\n}();\n","import { cancelSignatureRequest, openDropboxSignForClaim, openDropboxSignForSign } from './dropbox_sign'\nimport { pickFileAndStore } from '../../../utils/filestack'\n\n!function() {\n\n UC.views.UserDocumentsShow = Backbone.View.extend({\n\n events: {\n 'click #btnRequestAccess': 'requestAccess',\n 'click .document-request-signature': 'openChooseSignersModal',\n 'click .document-sign': 'openForSign',\n 'click .document-delete': 'confirmDestroy',\n 'click .document-share': 'openShareModal',\n 'click .document-cancel': 'cancelSignatureRequest',\n 'click .document-replace': 'createRevision',\n 'click .document-rename': 'showRename',\n 'click .signer-status-item-resend': 'resendSignatureRequestEmail',\n 'blur #txtDocumentRename': 'hideRename',\n 'keydown #txtDocumentRename': 'hideRename',\n 'change #txtDocumentRename': 'saveRename',\n 'click #lnkShowDetails': 'onLnkShowDetails',\n 'click #lnkHideDetails': 'onLnkHideDetails'\n },\n\n elements: {\n 'btnRequestAccess': null,\n 'txtRequestAccessMessage': null,\n 'rowRequestAccess': null,\n 'requestAccessStatus': null,\n 'boxViewerLoading': null,\n 'boxViewerFrame': null,\n 'modalConfirmAccount': null,\n 'signerStatusMsg': null,\n 'signerStatusList': null,\n 'lnkShowDetails': null,\n 'lnkHideDetails': null,\n 'modalAboutUpcounsel': null\n },\n\n initialize: function() {\n UC.utils.setSelectors(this.elements);\n this.components = {};\n this.elements.lnkShowDetails.hide();\n this.document_id = $('.documents').data('id');\n this.master_id = $('.documents').data('master-id');\n if (UC.user) {\n UC.utils.recordKissEvent('User Document View', {'user_type' : UC.user.type ,'document_id' : this.document_id});\n UC.utils.recordKissClickEvent('.doc-dl-btn','User Document - Download',{'user_type' : UC.user.type ,'document_id' : this.document_id});\n UC.utils.recordKissClickEvent('.document-download','User Document - Download (cog)',{'user_type' : UC.user.type ,'document_id' : this.document_id});\n } else {\n this.modal_confirm_account = new UC.modals.UserDocumentsModalConfirmAccount({\n el: '#modalConfirmAccount'\n }).render();\n };\n // this.modal_visibility = new UC.modals.UserDocumentsModalVisibility();\n this.modal_share = new UC.modals.UserDocumentsModalShare({ parent_view: this });\n this.modal_choose_signers = new UC.modals.UserDocumentsModalChooseSigners({\n parent_view: this,\n submitCallback: this.onPrepareForSigning });\n this.components.btnRequestAccessLoader = this.elements.btnRequestAccess.buttonLoader();\n\n if (window.location.hash.indexOf('#share') != -1) {\n this.share();\n }\n\n if (window.location.hash.indexOf('#sign') != -1 && UC.constants.needs_signing == true) {\n this.openForSign();\n }\n\n if (UC.constants.is_viewable_by && UC.constants.document_view_type == 'box_viewer') {\n this.pollForBox();\n }\n\n if ($('#document-cog li').length === 0) {\n $('#document-cog').css('visibility','hidden');\n };\n\n if (UC.constants.showAboutUpcounsel) {\n new UC.partials.modalV9({\n modalTitle: 'What is UpCounsel?',\n modalContent:\n \"UpCounsel is making incredible legal services available to every business. \" +\n \"Access the world's largest community of talented lawyers for first class legal \" +\n \"services without the high costs and hassles of traditional firms.\" +\n \"Learn more.\",\n modalFooter: {\n yesTextClass: 'btn-lg btn-primary',\n yesText: 'Ok'\n }\n })\n };\n\n this.initSignerHistory();\n },\n\n onLnkShowDetails: function(e) {\n this.elements.lnkShowDetails.hide();\n this.elements.lnkHideDetails.show();\n UC.utils.showPanel(this.elements.signerStatusList);\n },\n\n onLnkHideDetails: function(e) {\n this.elements.lnkShowDetails.show();\n this.elements.lnkHideDetails.hide();\n UC.utils.hidePanel(this.elements.signerStatusList);\n },\n\n showRename: function(e) {\n e.preventDefault();\n var $filename = this.$el.find('#documentFileName');\n var $text = this.$el.find('#txtDocumentRename');\n var period = $text.val().lastIndexOf('.');\n $filename.hide();\n $text.width($filename.outerWidth()).removeClass('hidden').select();\n if (period !== -1) {\n // highlight filename sans extension\n $text[0].setSelectionRange(0, period);\n }\n },\n\n hideRename: function(e) {\n var esc = e.type === 'keydown' && e.keyCode === 27;\n var enter = e.type === 'keydown' && e.keyCode === 13;\n\n if (esc || enter || e.type !== 'keydown') {\n e.preventDefault();\n var $link = this.$el.find('#documentFileName');\n var $text = this.$el.find('#txtDocumentRename');\n var name = $text.val();\n\n if (esc) {\n // revert back to original\n $text.val($link.text());\n } else {\n $link.text($text.val());\n }\n\n $link.show();\n $text.addClass('hidden');\n\n // janky title update\n var title = document.title.split(' on ');\n title[0] = name;\n document.title = title.join(' on ');\n }\n },\n\n saveRename: function() {\n // we want to update the current document only, not the master (child)\n var path = '{0}/{1}'.format(UC.constants.user_documents_path, this.document_id);\n\n UC.net.put(path, {\n FileName: this.$el.find('#txtDocumentRename').val()\n }, function(err, message) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n }\n });\n },\n\n confirmDestroy: function(e) {\n e.preventDefault();\n\n var that = this;\n\n function onConfirm(response) {\n that.destroy(that.document_id, function(err, message) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n if (UC.job) {\n window.location = UC.constants.job_documents_path;\n } else {\n window.location = UC.constants.user_documents_path;\n }\n }\n });\n }\n \n new UC.partials.modalV9({\n modalTitle: 'Delete Document',\n modalContent: 'Are you sure you want to delete this document?',\n modalFooter: {\n yesTextClass: 'btn-lg btn-primary js-confirm-delete',\n yesText: 'Confirm',\n noTextClass: 'btn-lg btn-grey-BG',\n noText: 'Cancel'\n },\n renderCallback: function() {\n $('.js-confirm-delete').on('click', function() { onConfirm(); });\n }\n });\n },\n\n destroy: function(document_id, callback) {\n UC.utils.recordKissEvent('User Document Cog', {'action':'delete','document_id' : document_id});\n UC.net.destroy('{0}/{1}'.format(UC.constants.user_documents_path, document_id), {\n job_id: UC.constants.jobId\n }, $.proxy(function(err, message) {\n if (typeof callback === 'function') {\n callback.call(this, err, message);\n }\n }, this));\n },\n\n processRevisions: function(files, document_id) {\n\n UC.net.post(\"{0}/{1}/revision\".format(UC.constants.user_documents_path, document_id), {\n files: files,\n job_id: UC.constants.jobId\n }, function(err, response) {\n location.reload();\n })\n .error($.proxy(function() {\n }, this));\n },\n\n createRevision: function(e) {\n e.preventDefault();\n\n UC.utils.recordKissEvent('User Document Cog', {'action':'create_revision','document_id' : this.master_id});\n\n this.openFilePicker($.proxy(function(InkBlobs) {\n this.processRevisions(InkBlobs, this.master_id);\n }, this))\n },\n\n openFilePicker: function(callback) {\n UC.utils.recordKissEvent('Open File Picker - User Document', {'user_type':UC.user.type});\n var path = 'user_{0}/'.format(UC.user.id);\n\n if (UC.constants.jobId) {\n path += 'job_{0}/'.format(UC.constants.jobId);\n }\n\n pickFileAndStore({\n pickerOptions: {\n fromSources: ['local_file_system', 'box', 'dropbox', 'googledrive', 'onedrive'],\n uploadInBackground: false,\n onUploadDone: function (res) {\n if (res.filesUploaded && res.filesUploaded.length > 0) {\n callback.call(this, res.filesUploaded);\n }\n }.bind(this)\n },\n storeOptions: {\n location: 's3',\n path: path\n }\n })\n },\n\n openShareModal: function(e) {\n e.preventDefault();\n UC.utils.recordKissEvent('User Document Cog', {'action':'share','document_id' : this.document_id});\n this.modal_share.render({\n document_ids: [this.document_id]\n });\n },\n\n openChooseSignersModal: function(e) {\n e.preventDefault();\n UC.utils.recordKissEvent('User Document Cog', {'action':'request_signature', 'document_id' : this.document_id});\n this.modal_choose_signers.render({\n document_id: this.document_id\n });\n },\n\n onPrepareForSigning: function(data){\n openDropboxSignForClaim(data, this);\n },\n\n openForSign: function(e){\n if (e) e.preventDefault();\n\n openDropboxSignForSign(this.document_id);\n },\n\n cancelSignatureRequest: function(e) {\n e.preventDefault();\n\n cancelSignatureRequest(this.document_id);\n },\n\n showSuccessBanner: function(){\n this.elements.signerStatusMsg.removeClass('yellow');\n this.elements.signerStatusMsg.addClass('green');\n this.elements.signerStatusMsg.find('p').text('You have successfully signed this document.');\n },\n\n pollForBox: function() {\n\n var $window = $(window);\n\n $window.resize(function() {\n // no less than 600px\n var height = _.max([$window.height() * .8, 600]);\n // no more than 1400px\n height = _.min([height, 1400]);\n this.elements.boxViewerFrame.height(height);\n }.bind(this)).resize();\n\n this.loadBoxViewer();\n this.interval = setInterval($.proxy(function() {\n this.loadBoxViewer();\n }, this), 500);\n },\n\n loadBoxViewer: function() {\n if (this.requesting) return false;\n\n this.requesting = true;\n\n UC.net.get(UC.constants.box_url_path, function(result) {\n this.requesting = false;\n\n if (result.viewer_url && result.viewer_url != '') {\n clearInterval(this.interval);\n this.elements.boxViewerLoading.remove();\n this.elements.boxViewerFrame.attr('src', result.viewer_url);\n }\n }.bind(this)).fail(function(xhr) {\n clearInterval(this.interval);\n xhr.handled = true;\n var data = xhr.responseJSON || {message: 'There was an error loading the document preview.'};\n this.elements.boxViewerLoading.removeClass('hidden').html(data.message);\n }.bind(this));\n },\n\n share: function(e) {\n if (e) e.preventDefault();\n this.modal_share.render({\n document_ids: [this.document_id]\n });\n },\n\n requestAccess: function(e) {\n UC.utils.recordKissEvent('User Document Request Access', {'user_type' : UC.user.type ,'document_id' : this.document_id});\n e.preventDefault();\n\n var that = this;\n var path = \"{0}/{1}/request_access\".format(UC.constants.user_documents_path, this.document_id);\n var data = { Message: this.elements.txtRequestAccessMessage.val() };\n\n if (UC.job) {\n data['job_id'] = UC.job.id;\n }\n\n this.components.btnRequestAccessLoader.showLoader();\n\n UC.net.post(path, data, function(res) {\n\n UC.utils.showNotification(res.message, UC.constants.results.success);\n that.components.btnRequestAccessLoader.hideLoader();\n that.elements.rowRequestAccess.remove();\n that.elements.requestAccessStatus.text('Your request to view this document has been sent to the client. You will be notified by email if the client grants your request.');\n that.elements.btnRequestAccess.\n attr('class', 'btn btn-lg border disabled marg-y-20').\n text('Access Pending').\n unbind();\n\n }).fail(function(res) {\n\n UC.closeTheLoop.handleFailure(res, false);\n that.components.btnRequestAccessLoader.hideLoader();\n\n });\n },\n\n resendSignatureRequestEmail: function(e) {\n function onResendSignatureRequestEmail(err, result) {\n if (err) {\n UC.utils.showNotification(err, UC.constants.results.failure);\n } else {\n var $notification = $('.js-success-notification');\n $notification.find('.flash-message').text(result);\n $notification.removeClass('hidden').addClass('pad-y-20');\n $(e.target).hide();\n }\n }\n\n e.preventDefault();\n var $row = $(e.target).closest('.signer-status-item'),\n data = {\n userId: $row.data('id'),\n job_id: UC.constants.jobId\n };\n UC.net.post('/signatures/user_document/{0}/resend_request_email'.format(this.document_id), data, onResendSignatureRequestEmail);\n },\n\n initSignerHistory: function() {\n\n this.$el.find('.signer-status-item-view-history').popover({\n placement: 'left auto',\n html: true,\n trigger: 'hover',\n content: function() {\n return $(this).closest('.signer-status-item').find('.signer-status-item-history').html();\n }\n }).click(function(e) {\n e.preventDefault();\n });\n }\n });\n}();\n","!function() {\n\n UC.partials.UsersForm = Backbone.View.extend({\n\n el: '#new_user',\n\n events: {\n 'submit': 'validate',\n 'click #btnGoogleRegister': 'registerGoogle',\n 'click #btnLinkedInRegister': 'registerLinkedin',\n 'click #toggleInternationalPanel': 'toggleInternationalPanel',\n 'click #toggleZipCodePanel': 'toggleZipCodePanel'\n },\n\n routes: {\n validate_zip: '/account/valid_zip_code/{0}',\n email_exists: '/account/email_exists',\n users: '/users',\n },\n\n initialize: function(options) {\n this.options = options || {};\n\n this.loader = $('#btnRegister').buttonLoader();\n this.showZipCode = true;\n this.showPhone = false;\n\n this.recaptchaTags = $('#recaptchaTags');\n\n this.$('#user_Address_attributes_CountryCode').select2({\n placeholder: 'Select a Country',\n width: '100%'\n });\n\n // set return url\n this.next_url = this.$('#next_url').val();\n if (UC.constants.returnUrl) {\n this.next_url = UC.constants.returnUrl;\n }\n\n if (typeof document.referrer === 'string' && document.referrer.match(/\\/for-attorneys$/i)) {\n $('#user_RegistrationSource').val(UC.constants.forLawyersPageRegistrationSourceType)\n }\n },\n\n onOauthAuthorize: function(data) {\n if (data.status === 'authenticated') {\n if (this.options.oauthLoginCallback) {\n this.options.oauthLoginCallback(data);\n } else {\n window.location = data.next_url;\n }\n } else if (data.status === 'unregistered') {\n var info = data.auth.info;\n\n var omniauthParams = {\n firstName: info.first_name || info.given_name,\n lastName: info.last_name || info.family_name,\n emailAddress: info.email,\n imageUrl: info.image || info.picture || info.picture_url\n };\n\n this.omniauth = data.auth;\n this.showOmniauthWelcome(omniauthParams);\n } else {\n switch (data.status) {\n case 'suspended':\n UC.utils.showNotification('Your account has been suspended. Please contact us for more information.', UC.constants.results.failure);\n break;\n case 'pending':\n UC.utils.showNotification('Your account is pending. Please check your email for an activation link.', UC.constants.results.warning);\n break;\n case 'signup_not_displayed':\n UC.utils.showNotification(data.googleErrorMessage, UC.constants.results.warning);\n break;\n case 'signin_not_displayed':\n UC.utils.showNotification(data.googleErrorMessage, UC.constants.results.warning);\n break;\n case 'signup_skipped':\n case 'signin_skipped':\n break;\n default:\n UC.utils.showNotification('Something went wrong', UC.constants.results.failure);\n break;\n }\n }\n },\n\n register: function(user) {\n var data = this.$el.serializeJSON();\n\n if (this.options.beforeRegister) this.options.beforeRegister(data);\n data.omniauth = this.omniauth;\n\n if (UC.constants.referralToken) {\n data.rt = UC.constants.referralToken;\n }\n\n if (!this.showZipCode) { // ensure zip is deleted for international address\n if(data.user && data.user.Address_attributes){\n delete data.user.Address_attributes.ZipCode;\n }\n }\n\n var self = this;\n UC.net.post(this.routes.users, data, function(result) {\n self.options.onRegister(result, data.user);\n }).fail(function(response) {\n self.loader.hideLoader();\n if (response && response.responseJSON && response.responseJSON.recaptcha) {\n self.recaptchaTags.html(response.responseJSON.recaptcha)\n }\n });\n },\n\n registerLinkedin: function(e) {\n e.preventDefault();\n\n new UC.components.Authentication().logonLinkedIn(\n {\n callback: this.onOauthAuthorize.bind(this)\n }\n );\n },\n\n registerGoogle: function(e) {\n e.preventDefault();\n\n var google_api = new UC.components.GoogleApi({\n next_url: this.next_url,\n context: 'signup',\n backdrop: true,\n });\n\n google_api.authorize(this.onOauthAuthorize.bind(this));\n },\n\n showOmniauthWelcome: function(params) {\n var $profileImage = this.$('#imgOmniauthProfile');\n\n this.$('#panelOmniauthButtons').addClass('hide');\n this.$('#panelOmniauthWelcome').removeClass('hide');\n this.$('#lblOmniauthName').text('{0} {1}'.format(params.firstName, params.lastName));\n\n if (params.imageUrl) {\n $profileImage.attr('src', params.imageUrl);\n } else {\n $profileImage.remove();\n }\n\n this.$('#user_FirstName').val(params.firstName);\n this.$('#user_LastName').val(params.lastName);\n this.$('#user_Email').val(params.emailAddress);\n this.validate(null, true);\n },\n\n toggleInternationalPanel: function(e) {\n e.preventDefault();\n this.showZipCode = false;\n this.$('#panelInternationalAddress').removeClass('hide');\n this.$('#panelZipCodeAddress').addClass('hide');\n this.$('#emailCol').toggleClass('col-sm-6 col-sm-12');\n },\n\n toggleZipCodePanel: function(e) {\n e.preventDefault();\n this.showZipCode = true;\n this.$('#panelInternationalAddress').addClass('hide');\n this.$('#panelZipCodeAddress').removeClass('hide');\n this.$('#emailCol').toggleClass('col-sm-12 col-sm-6');\n },\n\n resetInternationalAddressOption: function(visible) {\n this.showZipCode = true;\n this.$('#toggleInternationalPanel').toggle(visible);\n this.$('#emailCol').removeClass('col-sm-12').addClass('col-sm-6');\n this.$('#panelInternationalAddress').addClass('hide');\n this.$('#panelZipCodeAddress').removeClass('hide');\n },\n\n togglePhonePanel: function(id) {\n var $phonePanel = this.$('#panelPhoneNumber');\n\n if (id === 'user_Type_0') {\n $phonePanel.removeClass('hide');\n this.showPhone = true;\n } else {\n $phonePanel.addClass('hide');\n this.showPhone = false;\n }\n\n this.resetInternationalAddressOption(id !== 'user_Type_0');\n },\n\n validate: function(e, skipUserCreation, onValidationSuccess, keepErrors) {\n if (e) e.preventDefault();\n if (!keepErrors) UC.utils.clearValidationErrors('input-container');\n\n this.loader.showLoader();\n\n var form_dfd = new $.Deferred();\n var email_dfd = new $.Deferred();\n var address_dfd = new $.Deferred();\n var phone_dfd = new $.Deferred();\n\n this.validateForm(form_dfd);\n this.validateEmail(email_dfd);\n\n if (this.showZipCode) {\n this.validateZipCode(address_dfd);\n } else {\n this.validateInternational(address_dfd);\n this.$('#user_Address_attributes_ZipCode').val(\"\"); // clear this value if international\n }\n\n if (this.showPhone && !_.isEmpty(phone_number = this.$('#user_Phone').val())) {\n this.validatePhone(phone_dfd, phone_number);\n } else {\n phone_dfd.resolve();\n }\n\n $.when(form_dfd, address_dfd, email_dfd, phone_dfd)\n .done(function (user) {\n if (!skipUserCreation) this.register(user);\n if ('function' === typeof onValidationSuccess) onValidationSuccess();\n }.bind(this))\n .fail(function() {\n this.loader.hideLoader();\n if (this.options.onRegistrationFailure) {\n this.options.onRegistrationFailure();\n }\n }.bind(this));\n },\n\n validateEmail: function(dfd) {\n var $email = this.$('#user_Email');\n var email = $email.val();\n\n function error(msg) {\n var errors = [{element: $email, text: msg}];\n UC.utils.showValidationErrors(errors, {className: 'input-container', scrollToFirst: false});\n dfd.reject();\n }\n\n if (UC.utils.validateEmail(email)) {\n\n UC.net.post(this.routes.email_exists, {email: email}, function (result) {\n\n if (result.exists) {\n error('This email address is already in use.');\n } else {\n dfd.resolve();\n }\n });\n } else {\n error('Please enter a valid email address');\n }\n },\n\n validateForm: function(dfd) {\n var user = this.$el.serializeJSON().user;\n var errors = [];\n\n if (user.FirstName == '') {\n errors.push({element: this.$('#user_FirstName'), text: 'Please provide a first name'});\n }\n\n if (user.LastName == '') {\n errors.push({element: this.$('#user_LastName'), text: 'Please provide a last name'});\n }\n\n if (UC.utils.urlIncludedInText(user.FirstName)) {\n errors.push({element: this.$('#user_FirstName'), text: 'Please provide a valid first name'});\n }\n\n if (UC.utils.urlIncludedInText(user.LastName)) {\n errors.push({element: this.$('#user_LastName'), text: 'Please provide a valid last name'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'input-container', scrollToFirst: false});\n dfd.reject();\n } else {\n dfd.resolve();\n }\n },\n\n validateInternational: function(dfd) {\n var user = this.$el.serializeJSON().user;\n var errors = [];\n\n if (!user.Address_attributes.City) {\n errors.push({element: this.$('#user_Address_attributes_City'), text: 'Please enter a city'});\n }\n\n if (!user.Address_attributes.CountryCode) {\n errors.push({element: this.$('#user_Address_attributes_CountryCode'), text: 'Please select a country'});\n }\n\n if (errors.length > 0) {\n UC.utils.showValidationErrors(errors, {className: 'input-container', scrollToFirst: false});\n dfd.reject();\n } else {\n dfd.resolve();\n }\n },\n\n validateZipCode: function(dfd) {\n var $zip = this.$('#user_Address_attributes_ZipCode');\n var zip_code = $zip.val();\n var self = this;\n\n function error(msg) {\n var errors = [{element: $zip, text: msg}];\n UC.utils.showValidationErrors(errors, {className: 'input-container', scrollToFirst: false});\n dfd.reject();\n }\n\n if (UC.utils.validateZipCode(zip_code)) {\n UC.net.get(this.routes.validate_zip.format(zip_code), function (data) {\n dfd.resolve();\n }).fail(function (xhr) {\n xhr.handled = true;\n if (xhr.responseJSON) {\n error(self.invalidZipCodeErrorMessage(zip_code, xhr.responseJSON.message));\n } else {\n error('There was an error validating address. Please retry a little later');\n }\n });\n } else {\n error(self.invalidZipCodeErrorMessage(zip_code, 'Please enter a valid zip code'));\n }\n },\n\n invalidZipCodeErrorMessage: function(zip_code, message) {\n if (!zip_code || zip_code.trim().length === 0 || !this.showPhone) {\n return message;\n }\n\n return `Only US barred attorneys may sign up on UpCounsel. If you are US barred and simply living abroad, \n please input a zip code reflecting an area you are barred in.`;\n },\n\n validatePhone: function(dfd, phone_number) {\n var $phone_el = this.$('#user_Phone');\n phone_number = phone_number.replace(/[\\.)(+\\s-]+/g, '');\n\n if (UC.utils.validatePhone(phone_number)) {\n if(!this.showZipCode){\n this.validateInternationalPhone($phone_el, phone_number) ? dfd.resolve() : dfd.reject();\n } else {\n dfd.resolve();\n }\n } else {\n UC.utils.showValidationErrors(\n [{element: $phone_el, text: 'Please provide a valid phone number'}],\n {className: 'input-container', scrollToFirst: false});\n dfd.reject();\n }\n },\n\n validateInternationalPhone: function(phone_el, phone_number) {\n if(phone_number.length < 11){\n UC.utils.showValidationErrors(\n [{element: phone_el, text: 'Please provide a valid phone number in international format'}],\n {className: 'input-container', scrollToFirst: false});\n return false;\n } else {\n return true;\n }\n }\n });\n}();\n","UC.views.UsersAtlas =\nUC.views.UsersAtlasSubsidiary =\nUC.views.UsersAtlasDissolution =\nBackbone.View.extend({\n\n events: {\n 'click #btn-get-started': 'showRegisterModal'\n },\n\n initialize: function() {\n new UC.partials.UsersForm({\n onRegister: this.onRegister.bind(this)\n });\n },\n\n showRegisterModal: function(e) {\n e.preventDefault();\n this.$('#modal-register').modal();\n },\n\n onRegister: function() {\n this.$('.modal-title').text('Check your email');\n this.$('#atlasNewUserForm').addClass('hide');\n this.$('#atlasPendingPanel').removeClass('hide');\n }\n});\n","!function() {\n\n UC.views.UsersGetStarted = Backbone.View.extend({\n\n events: {\n 'click #btn-get-started': 'showRegisterModal'\n },\n\n initialize: function() {\n new UC.partials.UsersForm({\n onRegister: this.onRegister.bind(this)\n });\n\n this.videoPlayer = this.buildVideoPlayer();\n $('#play-btn').on('click', this.playGetStdVideo.bind(this))\n },\n\n showRegisterModal: function(e) {\n e.preventDefault();\n this.$('#modal-register').modal();\n },\n\n onRegister: function() {\n this.$('.modal-title').text('Check your email');\n this.$('#get-started-user-form').addClass('hide');\n this.$('#get-started-pending-panel').removeClass('hide');\n },\n\n buildVideoPlayer: function() {\n var videoOptions = {\n id: UC.constants.getStdVideoId,\n title: false,\n portrait: false,\n byline: false\n };\n\n return new Vimeo.Player('get-started-video', videoOptions);\n },\n\n playGetStdVideo: function() {\n $('#get-started-video-container').addClass('show-video');\n this.videoPlayer.play();\n UC.utils.recordKissEvent('get-started-video-played', {\n url: window.location.href\n });\n }\n\n });\n}();\n","!function() {\n\n UC.views.UsersNew = Backbone.View.extend({\n\n initialize: function() {\n\n this.signupForm = new UC.partials.UsersForm({\n onRegister: this.showPendingPanel.bind(this)\n });\n\n var titleTextOptionMapping = {\n user_Type_0: 'Sign Up as a Lawyer',\n user_Type_1: 'Sign Up as a Client'\n };\n\n this.$('#user_Type_0, #user_Type_1').change(function(e) {\n var $selectedRadio = $(e.currentTarget),\n selectedRadioId = $selectedRadio.attr('id');\n\n var titleText = titleTextOptionMapping[selectedRadioId];\n\n if (titleText) {\n this.$('#regTitle').text(titleText);\n }\n\n this.signupForm.togglePhonePanel(selectedRadioId);\n\n }.bind(this));\n\n if (location.hash.toLowerCase() == '#attorney') {\n this.$('#user_Type_0').prop('checked', true).trigger('change');\n }\n },\n\n showPendingPanel: function(registerResult, userData) {\n UC.utils.scrollToTop();\n this.$('#rowRegistration').addClass('hide');\n this.$('#panelPending').removeClass('hide');\n\n if (userData && userData.Type) {\n // Track conversions from though Paid Google Ads, LinkedIn Ads, etc\n // https://upcounsel.atlassian.net/browse/UPC-628\n location.hash = userData.Type === '0' ? '#pending-attorney' : '#pending-client';\n }\n }\n });\n}();\n","UC = UC || {};\nUC.modals = UC.modals || {};\nUC.modals.AttorneyTopLegalGroups = Backbone.View.extend({\n\n tagName: 'div',\n\n className: 'modal',\n\n id: 'top-legal-groups-modal',\n\n template: UC.views.resolveHandlebarsTemplate(\"public/attorney_legal_groups/attorney_top_legal_groups_modal\"),\n\n availableRanking: [1,2,3],\n \n events: {\n \"click #submit-top-legal-groups\" : \"submitTopLegalGroups\",\n \"hidden.bs.modal\" : \"deleteElement\"\n },\n\n initialize: function(opts) {\n this.allLegalGroups = opts.allLegalGroups;\n this.attorneyLegalGroups = opts.attorneyLegalGroups || [];\n this.origAttorneyTopLegalGroups = opts.attorneyTopLegalGroups || [];\n this.afterUpdateCallback = opts.afterUpdateCallback;\n\n this.selectedLegalGroupArr = [];\n\n this.render();\n },\n\n render: function() {\n this.$el.html(this.template({availableRanking: this.availableRanking}));\n this.$el.modal({\n backdrop: 'static'\n });\n this.initAllSelects();\n },\n\n gatherSelectedTopLegalGroups: function() {\n this.selectedLegalGroupArr = [];\n\n this.availableRanking.forEach(function(rankNum) {\n this.selectedLegalGroupArr.push(this.$topLegalGroupSelect(rankNum).val());\n }, this)\n },\n\n legalGroupName: function(legalGroupId) {\n return this.allLegalGroups[legalGroupId]['Name'];\n },\n \n legalGroupSelectOptions: function() {\n var legalGroupOpts = [];\n\n for(var i = 0, len = this.attorneyLegalGroups.length; i < len; i++) {\n var legalGroupId = this.attorneyLegalGroups[i];\n legalGroupOpts.push({id: legalGroupId, text: this.legalGroupName(legalGroupId)});\n }\n\n return legalGroupOpts;\n },\n\n sortedLegalGroupOpts: function() {\n return this.legalGroupSelectOptions().sort(function(opt1, opt2) {\n if (opt1 > opt2) return 1;\n if (opt1 < opt2) return -1;\n return 0;\n });\n },\n\n legalGroupSelectEnabled: function(rankNum) {\n return this.attorneyLegalGroups.length >= rankNum;\n },\n\n $topLegalGroupSelect: function(rankNum) {\n return this.$('select[name=\"top-legal-group-' + rankNum +'\"]')\n },\n\n initSelect: function(rankNum) {\n var selectConfig= {\n width: '100%'\n };\n\n var $select = this.$topLegalGroupSelect(rankNum);\n\n if (this.legalGroupSelectEnabled(rankNum)) {\n var selectOpts = this.sortedLegalGroupOpts();\n selectOpts.unshift({id: '', text: ''});\n\n selectConfig['data'] = selectOpts;\n selectConfig['placeholder'] = \"Select a practice area\";\n selectConfig['allowClear'] = true;\n } else {\n selectConfig['disabled'] = true;\n }\n\n $select.select2(selectConfig);\n\n var defaultTopGroup = this.origAttorneyTopLegalGroups[rankNum-1];\n\n if (defaultTopGroup) {\n $select.val(defaultTopGroup);\n $select.trigger('change');\n }\n\n },\n\n initAllSelects: function() {\n this.availableRanking.forEach(function(rankNum) {\n this.initSelect(rankNum);\n }, this);\n },\n\n submitTopLegalGroups: function() {\n if (this.validateSelections()) {\n UC.net.post(UC.constants.update_practice_areas_path, {TopLegalGroupIds: this.selectedLegalGroupArr})\n .done(this.afterUpdateCallback.bind(this))\n .fail(function() {\n this.$el.modal('hide');\n }.bind(this));\n }\n },\n\n validateSelections: function() {\n var valid = true;\n var errorMessages = [];\n\n this.$('#error-container').removeClass('has-error');\n\n this.gatherSelectedTopLegalGroups();\n\n if (!this.selectedLegalGroupArr[0]) {\n valid = false;\n errorMessages.push('You must select your top practice area.');\n }\n\n if (this.duplicateSelections()) {\n valid = false;\n errorMessages.push('You may not have duplicate selections.');\n }\n\n if (this.gapInRanking()) {\n valid = false;\n errorMessages.push('You may not have a gap in your ranked practice areas.');\n }\n\n if (!valid) {\n this.$('#error-container').addClass('has-error');\n this.$('.error-message').text(errorMessages.join(' '));\n }\n\n return valid;\n },\n\n duplicateSelections: function() {\n var selectedLegalGroupCount = {};\n var duplicatePresent = false;\n\n this.selectedLegalGroupArr.forEach(function(legalGroup) {\n if(legalGroup) {\n selectedLegalGroupCount[legalGroup] = selectedLegalGroupCount[legalGroup] || 0;\n selectedLegalGroupCount[legalGroup]++;\n if (selectedLegalGroupCount[legalGroup] > 1) duplicatePresent = true;\n }\n }, this);\n\n return duplicatePresent;\n },\n\n gapInRanking: function() {\n var lastRankPresent = true;\n var gapPresent = false;\n\n this.selectedLegalGroupArr.forEach(function(legalGroup) {\n if (legalGroup && !lastRankPresent) gapPresent = true;\n if (!legalGroup) lastRankPresent = false;\n }, this);\n\n return gapPresent;\n },\n\n deleteElement: function() {\n this.$el.remove();\n }\n\n});\n","UC.views.CheckoutModalPaymentReason = Backbone.View.extend({\n el: '#modalUpcounselPaymentReason',\n\n events: {\n 'hidden.bs.modal' : 'hideLoader',\n 'click #btnPayReasonModal' : 'btnPayClick'\n },\n\n initialize: function(options) {\n this.callback = options.callback;\n\n this.$saveButton = this.$el.find('#btnPayReasonModal')\n this.saveLoader = this.$saveButton.buttonLoader();\n },\n\n render: function() {\n this.$el.modal();\n },\n\n btnPayClick: function() {\n var reason = this.$el.find('#selectReason').val();\n \n this.saveLoader.showLoader();\n\n if (reason && reason != '##') {\n this.$el.modal('hide');\n this.callback(reason);\n } else {\n UC.utils.showNotification('UpCounsel Payment Reason is required', UC.constants.results.failure);\n }\n },\n\n hideLoader: function() {\n this.saveLoader.hideLoader();\n }\n});\n","UC.partials.JobNavMenu = Backbone.View.extend({\n el: '#jobNav',\n\n events: {\n 'click': 'jobNavClickHandler',\n 'click #navMenuToggleCaret': 'navMenuToggleCaretClickHandler'\n },\n\n jobNavClickHandler: function(e) {\n if (UC.utils.isMobileViewPort()) {\n e.stopPropagation();\n\n var nav = this.$el.closest('.job-nav');\n\n if (nav.hasClass('selected')) {\n $('.jn-tab').removeClass('active');\n this.$el.addClass('active');\n nav.removeClass('selected');\n } else {\n e.preventDefault();\n\n nav.addClass('selected');\n UC.utils.recordKissEvent('Mobile - Click job nav menu');\n }\n }\n },\n\n navMenuToggleCaretClickHandler: function(e) {\n e.stopPropagation();\n\n this.$el.closest('.job-nav').toggleClass('selected');\n }\n});\n","UC.partials.NewAdminLogEntryModal = Backbone.View.extend({\n\n template: UC.views.resolveHandlebarsTemplate(\"admin/notable/new_admin_log_entry_modal\"),\n\n tagName: 'div',\n\n className: 'modal fade',\n\n events: {\n \"hidden.bs.modal\" : \"deleteElement\",\n \"submit #admin-log-form\" : \"submitForm\"\n },\n\n initialize: function(opts) {\n var $btn = $(opts.btnSelector);\n $btn.on('click', this.showModal.bind(this));\n this.formSubmitCallback = opts.formSubmitCallback || function() { location.reload() };\n this.createUrl = opts.createUrl;\n },\n\n showModal: function(e) {\n if(e) e.preventDefault();\n this.render();\n },\n \n render: function() {\n this.$el.html(this.template(this));\n this.$el.modal();\n this.delegateEvents();\n this.$submitBtnLoader = this.$('#submit-admin-log-entry').buttonLoader();\n },\n\n deleteElement: function() {\n this.$el.remove();\n },\n\n validate: function() {\n var errors = [],\n $noteField = this.$('textarea[name=\"Entry\"]'),\n noteText = $noteField.val();\n\n UC.utils.clearValidationErrors('form-group');\n\n if (noteText.isBlank()) {\n errors.push({element: $noteField, text: 'Note may not be blank'});\n }\n\n if (errors.length === 0) {\n return true;\n } else {\n UC.utils.showValidationErrors(errors, {className: 'form-group'});\n }\n },\n\n disableSubmitBtn: function() {\n this.$submitBtnLoader.showLoader();\n },\n\n enableSubmitBtn: function() {\n this.$submitBtnLoader.hideLoader();\n },\n\n submitForm: function(e) {\n e.preventDefault();\n\n if (this.validate()) {\n var $form = this.$('#admin-log-form');\n this.disableSubmitBtn();\n\n UC.net.post($form.attr('action'), $form.serializeJSON())\n .done(this.formSubmitCallback.bind(this))\n .fail(this.enableSubmitBtn.bind(this));\n }\n }\n\n});\n","var adapters = {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordMessage() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\",\n remote: \"remote\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n const socketProtocols = [ ...protocols, ...this.consumer.subprotocols || [] ];\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0;\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n this.monitor.recordMessage();\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true;\n }\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return null;\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false;\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: true\n });\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {\n reconnected: false\n });\n }\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n this.subprotocols = [];\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n addSubProtocol(subprotocol) {\n this.subprotocols = [ ...this.subprotocols, subprotocol ];\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","// Backbone.js 1.6.0\n\n// (c) 2010-2024 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.6.0';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n\n // Just _.defaults would work fine, but the additional _.extends\n // is in there for historical reasons. See #3843.\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) {\n var prevId = this.id;\n this.id = this.get(this.idAttribute);\n this.trigger('changeId', this, prevId, options);\n }\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj, obj.idAttribute)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) {\n m.off('error', collection._forwardPristineError, collection);\n collection.add(m, callbackOpts);\n }\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n // In case of wait:true, our collection is not listening to any\n // of the model's events yet, so it will not forward the error\n // event. In this special case, we need to listen for it\n // separately and handle the event just once.\n // (The reason we don't need to do this for the sync event is\n // in the success handler above: we add the model first, which\n // causes the collection to listen, and then invoke the callback\n // that triggers the event.)\n if (wait) {\n model.once('error', this._forwardPristineError, this);\n }\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs, idAttribute) {\n return attrs[idAttribute || this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n\n var model;\n if (this.model.prototype) {\n model = new this.model(attrs, options);\n } else {\n // ES class methods didn't have prototype\n model = this.model(attrs, options);\n }\n\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n if (models.length > 0 && !options.silent) delete options.index;\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes, model.idAttribute);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'changeId') {\n var prevId = this.modelId(model.previousAttributes(), model.idAttribute);\n var id = this.modelId(model.attributes, model.idAttribute);\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n },\n\n // Internal callback method used in `create`. It serves as a\n // stand-in for the `_onModelEvent` method, which is not yet bound\n // during the `wait` period of the `create` call. We still want to\n // forward any `'error'` event at the end of the `wait` period,\n // hence a customized callback.\n _forwardPristineError: function(model, collection, options) {\n // Prevent double forward if the model was already in the\n // collection before the call to `create`.\n if (this.has(model)) return;\n this._onModelEvent('error', model, collection, options);\n }\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes, model.idAttribute);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._trailingSlash = this.options.trailingSlash;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) {\n if (!this.matchRoot()) return this.notfound();\n return false;\n }\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return this.notfound();\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n }) || this.notfound();\n },\n\n // When no route could be matched, this method is called internally to\n // trigger the `'notfound'` event. It returns `false` so that it can be used\n // in tail position.\n notfound: function() {\n this.trigger('notfound');\n return false;\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Strip trailing slash on the root unless _trailingSlash is true\n var rootPath = this.root;\n if (!this._trailingSlash && (fragment === '' || fragment.charAt(0) === '?')) {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n // Provide useful information when things go wrong. This method is not meant\n // to be used directly; it merely provides the necessary introspection for the\n // external `debugInfo` function.\n Backbone._debug = function() {\n return {root: root, _: _};\n };\n\n return Backbone;\n});\n","(function ($) {\n 'use strict';\n\n var clearClass = 'rating-clear',\n clearSelector = '.' + clearClass,\n hiddenClass = 'hidden',\n DEFAULTS = {\n 'min': 1,\n 'max': 5,\n 'empty-value': 0,\n 'iconLib': 'glyphicon',\n 'activeIcon': 'glyphicon-star',\n 'inactiveIcon': 'glyphicon-star-empty',\n 'clearable': false,\n 'clearableIcon': 'glyphicon-remove',\n 'inline': false,\n 'readonly': false\n };\n\n function starSelector(value) {\n return '[data-value' + (value ? ('=' + value) : '') + ']';\n }\n\n function toggleActive($el, active, options) {\n var activeClass = options.activeIcon,\n inactiveClass = options.inactiveIcon;\n $el.removeClass(active ? inactiveClass : activeClass).addClass(active ? activeClass : inactiveClass);\n }\n\n function parseOptions($input, options) {\n var data = $.extend({}, DEFAULTS, $input.data(), options);\n data.inline = data.inline === '' || data.inline;\n data.readonly = data.readonly === '' || data.readonly;\n if (data.clearable === false) {\n data.clearableLabel = '';\n } else {\n data.clearableLabel = data.clearable;\n }\n data.clearable = data.clearable === '' || data.clearable;\n return data;\n }\n\n function createRatingEl($input, options) {\n // Inline option\n if (options.inline) {\n var $ratingEl = $('');\n } else {\n var $ratingEl = $('
    ');\n }\n\n // Copy original classes but the rating class\n $ratingEl.addClass($input.attr('class'));\n $ratingEl.removeClass('rating');\n\n // Render rating icons\n for (var i = options.min; i <= options.max; i++) {\n $ratingEl.append('');\n }\n\n // Render clear link\n if (options.clearable && !options.readonly) {\n $ratingEl.append(' ').append(\n '' +\n '' +\n options.clearableLabel +\n ''\n );\n }\n return $ratingEl;\n }\n\n var Rating = function(input, options) {\n var $input = this.$input = input;\n this.options = parseOptions($input, options);\n var $ratingEl = this.$el = createRatingEl($input, this.options);\n $input.addClass(hiddenClass).before($ratingEl);\n $input.attr('type', 'hidden');\n this.highlight($input.val());\n };\n\n Rating.VERSION = '0.4.0';\n\n Rating.DEFAULTS = DEFAULTS;\n\n Rating.prototype = {\n\n clear: function() {\n this.setValue(this.options['empty-value']);\n },\n\n setValue: function(value) {\n this.highlight(value);\n this.updateInput(value);\n },\n\n highlight: function(value, skipClearable) {\n var options = this.options;\n var $el = this.$el;\n if (value >= this.options.min && value <= this.options.max) {\n var $selected = $el.find(starSelector(value));\n toggleActive($selected.prevAll('i').andSelf(), true, options);\n toggleActive($selected.nextAll('i'), false, options);\n } else {\n toggleActive($el.find(starSelector()), false, options);\n }\n if (!skipClearable) {\n if (!value || value == this.options['empty-value']) {\n $el.find(clearSelector).addClass(hiddenClass);\n } else {\n $el.find(clearSelector).removeClass(hiddenClass);\n }\n }\n },\n\n updateInput: function(value) {\n var $input = this.$input;\n if ($input.val() != value) {\n $input.val(value).change();\n }\n }\n\n };\n\n var Plugin = $.fn.rating = function(options) {\n return this.filter('input[type=number]').each(function() {\n var $input = $(this);\n var optionsObject = typeof options === 'object' && options || {};\n var rating = new Rating($input, optionsObject);\n if (!rating.options.readonly) {\n rating.$el\n .on('mouseenter', starSelector(), function() {\n rating.highlight($(this).data('value'), true);\n })\n .on('mouseleave', starSelector(), function() {\n rating.highlight($input.val(), true);\n })\n .on('click', starSelector(), function() {\n rating.setValue($(this).data('value'));\n })\n .on('click', clearSelector, function() {\n rating.clear();\n });\n }\n });\n };\n\n Plugin.Constructor = Rating;\n\n $(function() {\n $('input.rating[type=number]').each(function() {\n $(this).rating();\n });\n });\n\n}(jQuery));\n","// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequire('../../js/transition.js')\nrequire('../../js/alert.js')\nrequire('../../js/button.js')\nrequire('../../js/carousel.js')\nrequire('../../js/collapse.js')\nrequire('../../js/dropdown.js')\nrequire('../../js/modal.js')\nrequire('../../js/tooltip.js')\nrequire('../../js/popover.js')\nrequire('../../js/scrollspy.js')\nrequire('../../js/tab.js')\nrequire('../../js/affix.js')","/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#affix\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n this.$target = target\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.4.1'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.4.1'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n selector = selector === '#' ? [] : selector\n var $parent = $(document).find(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.4.1'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(document).find(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(document).find(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.4.1'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n var scrollbarWidth = this.scrollbarWidth\n if (this.bodyIsOverflowing) {\n this.$body.css('padding-right', bodyPad + scrollbarWidth)\n $(this.fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight\n var calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n })\n }\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n $(this.fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var target = $this.attr('data-target') ||\n (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n var $target = $(document).find(target)\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.4.1'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

    '\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n if (this.options.html) {\n var typeContent = typeof content\n\n if (this.options.sanitize) {\n title = this.sanitizeHtml(title)\n\n if (typeContent === 'string') {\n content = this.sanitizeHtml(content)\n }\n }\n\n $tip.find('.popover-title').html(title)\n $tip.find('.popover-content').children().detach().end()[\n typeContent === 'string' ? 'html' : 'append'\n ](content)\n } else {\n $tip.find('.popover-title').text(title)\n $tip.find('.popover-content').children().detach().end().text(content)\n }\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.4.1'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.4.1'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(document).find(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
    ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n","!function(e,i){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=i();else if(\"function\"==typeof define&&define.amd)define([],i);else{var t=i();for(var n in t)(\"object\"==typeof exports?exports:e)[n]=t[n]}}(this,(function(){return function(e){var i={};function t(n){if(i[n])return i[n].exports;var o=i[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:n})},t.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},t.t=function(e,i){if(1&i&&(e=t(e)),8&i)return e;if(4&i&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&i&&\"string\"!=typeof e)for(var o in e)t.d(n,o,function(i){return e[i]}.bind(null,o));return n},t.n=function(e){var i=e&&e.__esModule?function(){return e[\"default\"]}:function(){return e};return t.d(i,\"a\",i),i},t.o=function(e,i){return Object.prototype.hasOwnProperty.call(e,i)},t.p=\"\",t(t.s=0)}([function(e,i,t){\"use strict\";var n,o,r=t(1)(),a=t(3),s=t(4),l=t(6),u=function(){var e=new s;return n=e.getResult(),o=new l,this};u.prototype={getSoftwareVersion:function(){return\"0.1.11\"},getBrowserData:function(){return n},getFingerprint:function(){var e=\"|\",i=n.ua,t=this.getScreenPrint(),o=this.getPlugins(),r=this.getFonts(),s=this.isLocalStorage(),l=this.isSessionStorage(),u=this.getTimeZone(),c=this.getLanguage(),d=this.getSystemLanguage(),b=this.isCookie(),m=this.getCanvasPrint();return a(i+e+t+e+o+e+r+e+s+e+l+e+u+e+c+e+d+e+b+e+m,256)},getCustomFingerprint:function(){for(var e=\"|\",i=\"\",t=0;t 1.0\";return e.textBaseline=\"top\",e.font=\"14px 'Arial'\",e.textBaseline=\"alphabetic\",e.fillStyle=\"#f60\",e.fillRect(125,1,62,20),e.fillStyle=\"#069\",e.fillText(t,2,15),e.fillStyle=\"rgba(102, 204, 0, 0.7)\",e.fillText(t,4,17),i.toDataURL()}},i.ClientJS=u},function(e,i,t){\"use strict\";var n=t(2);e.exports=function(){return\"object\"==typeof global&&global&&global.Math===Math&&global.Array===Array?global:n}},function(e,i,t){\"use strict\";\"undefined\"!=typeof self?e.exports=self:\"undefined\"!=typeof window?e.exports=window:e.exports=Function(\"return this\")()},function(e,i,t){e.exports=function(e,i){var t,n,o,r,a,s,l,u;for(t=3&e.length,n=e.length-t,o=i,a=3432918353,s=461845907,u=0;u>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|o>>>19))+((5*(o>>>16)&65535)<<16)&4294967295))+((58964+(r>>>16)&65535)<<16);switch(l=0,t){case 3:l^=(255&e.charCodeAt(u+2))<<16;case 2:l^=(255&e.charCodeAt(u+1))<<8;case 1:o^=l=(65535&(l=(l=(65535&(l^=255&e.charCodeAt(u)))*a+(((l>>>16)*a&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return o^=e.length,o=2246822507*(65535&(o^=o>>>16))+((2246822507*(o>>>16)&65535)<<16)&4294967295,o=3266489909*(65535&(o^=o>>>13))+((3266489909*(o>>>16)&65535)<<16)&4294967295,(o^=o>>>16)>>>0}},function(e,i,t){var n;!function(o,r){\"use strict\";var a=\"function\",s=\"undefined\",l=\"object\",u=\"string\",c=\"model\",d=\"name\",b=\"type\",m=\"vendor\",w=\"version\",g=\"architecture\",p=\"console\",f=\"mobile\",h=\"tablet\",v=\"smarttv\",y=\"wearable\",x=\"embedded\",k=\"Amazon\",S=\"Apple\",C=\"ASUS\",M=\"BlackBerry\",P=\"Firefox\",T=\"Google\",B=\"Huawei\",A=\"LG\",L=\"Microsoft\",U=\"Motorola\",E=\"Opera\",G=\"Samsung\",N=\"Sony\",j=\"Xiaomi\",_=\"Zebra\",R=\"Facebook\",D=function(e){var i={};for(var t in e)i[e[t].toUpperCase()]=e[t];return i},I=function(e,i){return typeof e===u&&-1!==O(i).indexOf(O(e))},O=function(e){return e.toLowerCase()},z=function(e,i){if(typeof e===u)return e=e.replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\"),typeof i===s?e:e.substring(0,255)},F=function(e,i){for(var t,n,o,s,u,c,d=0;d0?2==s.length?typeof s[1]==a?this[s[0]]=s[1].call(this,c):this[s[0]]=s[1]:3==s.length?typeof s[1]!==a||s[1].exec&&s[1].test?this[s[0]]=c?c.replace(s[1],s[2]):r:this[s[0]]=c?s[1].call(this,c,s[2]):r:4==s.length&&(this[s[0]]=c?s[3].call(this,c.replace(s[1],s[2])):r):this[s]=c||r;d+=2}},q=function(e,i){for(var t in i)if(typeof i[t]===l&&i[t].length>0){for(var n=0;n255?z(e,255):e,this},this.setUA(t),this};H.VERSION=\"0.7.30\",H.BROWSER=D([d,w,\"major\"]),H.CPU=D([g]),H.DEVICE=D([c,m,b,p,f,v,h,y,x]),H.ENGINE=H.OS=D([d,w]),typeof i!==s?(typeof e!==s&&e.exports&&(i=e.exports=H),i.UAParser=H):t(5)?(n=function(){return H}.call(i,t,i,e))===r||(e.exports=n):typeof o!==s&&(o.UAParser=H);var K=typeof o!==s&&(o.jQuery||o.Zepto);if(K&&!K.ua){var Y=new H;K.ua=Y.getResult(),K.ua.get=function(){return Y.getUA()},K.ua.set=function(e){Y.setUA(e);var i=Y.getResult();for(var t in i)K.ua[t]=i[t]}}}(\"object\"==typeof window?window:this)},function(e,i){(function(i){e.exports=i}).call(this,{})},function(e,i){e.exports=function(){var e=[\"monospace\",\"sans-serif\",\"serif\"],i=document.getElementsByTagName(\"body\")[0],t=document.createElement(\"span\");t.style.fontSize=\"72px\",t.innerHTML=\"mmmmmmmmmmlli\";var n={},o={};for(var r in e)t.style.fontFamily=e[r],i.appendChild(t),n[e[r]]=t.offsetWidth,o[e[r]]=t.offsetHeight,i.removeChild(t);this.detect=function(r){var a=!1;for(var s in e){t.style.fontFamily=r+\",\"+e[s],i.appendChild(t);var l=t.offsetWidth!=n[e[s]]||t.offsetHeight!=o[e[s]];i.removeChild(t),a=a||l}return a}}}])}));\n//# sourceMappingURL=client.base.min.js.map","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.8';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (typeof Symbol === 'function' && context[Symbol.iterator]) {\n var newContext = [];\n var iterator = context[Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDbkUsWUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLFlBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBjb250ZXh0W1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgICAgY29uc3QgbmV3Q29udGV4dCA9IFtdO1xuICAgICAgICBjb25zdCBpdGVyYXRvciA9IGNvbnRleHRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICBmb3IgKGxldCBpdCA9IGl0ZXJhdG9yLm5leHQoKTsgIWl0LmRvbmU7IGl0ID0gaXRlcmF0b3IubmV4dCgpKSB7XG4gICAgICAgICAgbmV3Q29udGV4dC5wdXNoKGl0LnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb250ZXh0ID0gbmV3Q29udGV4dDtcbiAgICAgICAgZm9yIChsZXQgaiA9IGNvbnRleHQubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihpLCBpLCBpID09PSBjb250ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJpb3JLZXk7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY29udGV4dCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIC8vIFdlJ3JlIHJ1bm5pbmcgdGhlIGl0ZXJhdGlvbnMgb25lIHN0ZXAgb3V0IG9mIHN5bmMgc28gd2UgY2FuIGRldGVjdFxuICAgICAgICAgIC8vIHRoZSBsYXN0IGl0ZXJhdGlvbiB3aXRob3V0IGhhdmUgdG8gc2NhbiB0aGUgb2JqZWN0IHR3aWNlIGFuZCBjcmVhdGVcbiAgICAgICAgICAvLyBhbiBpdGVybWVkaWF0ZSBrZXlzIGFycmF5LlxuICAgICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByaW9yS2V5ID0ga2V5O1xuICAgICAgICAgIGkrKztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChwcmlvcktleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXhlY0l0ZXJhdGlvbihwcmlvcktleSwgaSAtIDEsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIHJldCA9IGludmVyc2UodGhpcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMvQyxXQUFXOzs7O0FBRTlCLElBQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFdEMsU0FBUyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUU7QUFDdkQsTUFBSSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELHdCQUFzQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUM5Qyx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNuRCx3QkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQzs7QUFFbkQsTUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVuRCwwQkFBd0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRTlDLFNBQU87QUFDTCxjQUFVLEVBQUU7QUFDVixlQUFTLEVBQUUsNkNBQ1Qsd0JBQXdCLEVBQ3hCLGNBQWMsQ0FBQyxzQkFBc0IsQ0FDdEM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQyw2QkFBNkI7S0FDM0Q7QUFDRCxXQUFPLEVBQUU7QUFDUCxlQUFTLEVBQUUsNkNBQ1Qsc0JBQXNCLEVBQ3RCLGNBQWMsQ0FBQyxtQkFBbUIsQ0FDbkM7QUFDRCxrQkFBWSxFQUFFLGNBQWMsQ0FBQywwQkFBMEI7S0FDeEQ7R0FDRixDQUFDO0NBQ0g7O0FBRU0sU0FBUyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRTtBQUN4RSxNQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtBQUNoQyxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDakUsTUFBTTtBQUNMLFdBQU8sY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztHQUNwRTtDQUNGOztBQUVELFNBQVMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRTtBQUMvRCxNQUFJLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUU7QUFDbkUsV0FBTyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDO0dBQ25FO0FBQ0QsTUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO0FBQ3hELFdBQU8seUJBQXlCLENBQUMsWUFBWSxDQUFDO0dBQy9DO0FBQ0QsZ0NBQThCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDN0MsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFlBQVksRUFBRTtBQUNwRCxNQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtBQUMzQyxvQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEMsd0JBQU8sR0FBRyxDQUNSLE9BQU8sRUFDUCxpRUFBK0QsWUFBWSxvSUFDSCxvSEFDMkMsQ0FDcEgsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxxQkFBcUIsR0FBRztBQUN0QyxRQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsWUFBWSxFQUFJO0FBQ3BELFdBQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7R0FDdkMsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoicHJvdG8tYWNjZXNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTmV3TG9va3VwT2JqZWN0IH0gZnJvbSAnLi9jcmVhdGUtbmV3LWxvb2t1cC1vYmplY3QnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBsb2dnZWRQcm9wZXJ0aWVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChydW50aW1lT3B0aW9ucykge1xuICBsZXQgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ2NvbnN0cnVjdG9yJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19kZWZpbmVHZXR0ZXJfXyddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lU2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2xvb2t1cEdldHRlcl9fJ10gPSBmYWxzZTtcblxuICBsZXQgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvXG4gIGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdFsnX19wcm90b19fJ10gPSBmYWxzZTtcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIHdoaXRlbGlzdDogY3JlYXRlTmV3TG9va3VwT2JqZWN0KFxuICAgICAgICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b1Byb3BlcnRpZXNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9Qcm9wZXJ0aWVzQnlEZWZhdWx0XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdCxcbiAgICAgICAgcnVudGltZU9wdGlvbnMuYWxsb3dlZFByb3RvTWV0aG9kc1xuICAgICAgKSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogcnVudGltZU9wdGlvbnMuYWxsb3dQcm90b01ldGhvZHNCeURlZmF1bHRcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXN1bHRJc0FsbG93ZWQocmVzdWx0LCBwcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkge1xuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBjaGVja1doaXRlTGlzdChwcm90b0FjY2Vzc0NvbnRyb2wubWV0aG9kcywgcHJvcGVydHlOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLnByb3BlcnRpZXMsIHByb3BlcnR5TmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZSwgcHJvcGVydHlOYW1lKSB7XG4gIGlmIChwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLndoaXRlbGlzdFtwcm9wZXJ0eU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSA9PT0gdHJ1ZTtcbiAgfVxuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBwcm90b0FjY2Vzc0NvbnRyb2xGb3JUeXBlLmRlZmF1bHRWYWx1ZTtcbiAgfVxuICBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsb2dVbmV4cGVjZWRQcm9wZXJ0eUFjY2Vzc09uY2UocHJvcGVydHlOYW1lKSB7XG4gIGlmIChsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gIT09IHRydWUpIHtcbiAgICBsb2dnZWRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSB0cnVlO1xuICAgIGxvZ2dlci5sb2coXG4gICAgICAnZXJyb3InLFxuICAgICAgYEhhbmRsZWJhcnM6IEFjY2VzcyBoYXMgYmVlbiBkZW5pZWQgdG8gcmVzb2x2ZSB0aGUgcHJvcGVydHkgXCIke3Byb3BlcnR5TmFtZX1cIiBiZWNhdXNlIGl0IGlzIG5vdCBhbiBcIm93biBwcm9wZXJ0eVwiIG9mIGl0cyBwYXJlbnQuXFxuYCArXG4gICAgICAgIGBZb3UgY2FuIGFkZCBhIHJ1bnRpbWUgb3B0aW9uIHRvIGRpc2FibGUgdGhlIGNoZWNrIG9yIHRoaXMgd2FybmluZzpcXG5gICtcbiAgICAgICAgYFNlZSBodHRwczovL2hhbmRsZWJhcnNqcy5jb20vYXBpLXJlZmVyZW5jZS9ydW50aW1lLW9wdGlvbnMuaHRtbCNvcHRpb25zLXRvLWNvbnRyb2wtcHJvdG90eXBlLWFjY2VzcyBmb3IgZGV0YWlsc2BcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldExvZ2dlZFByb3BlcnRpZXMoKSB7XG4gIE9iamVjdC5rZXlzKGxvZ2dlZFByb3BlcnRpZXMpLmZvckVhY2gocHJvcGVydHlOYW1lID0+IHtcbiAgICBkZWxldGUgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","/* global globalThis */\n'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n // https://mathiasbynens.be/notes/globalthis\n (function () {\n if (typeof globalThis === 'object') return;\n Object.prototype.__defineGetter__('__magic__', function () {\n return this;\n });\n __magic__.globalThis = __magic__; // eslint-disable-line no-undef\n delete Object.prototype.__magic__;\n })();\n\n var $Handlebars = globalThis.Handlebars;\n\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (globalThis.Handlebars === Handlebars) {\n globalThis.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O3FCQUNlLFVBQVMsVUFBVSxFQUFFOzs7QUFHbEMsR0FBQyxZQUFXO0FBQ1YsUUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsT0FBTztBQUMzQyxVQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxZQUFXO0FBQ3hELGFBQU8sSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDO0FBQ0gsYUFBUyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDakMsV0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztHQUNuQyxDQUFBLEVBQUcsQ0FBQzs7QUFFTCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDOzs7QUFHMUMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksVUFBVSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDeEMsZ0JBQVUsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0tBQ3JDO0FBQ0QsV0FBTyxVQUFVLENBQUM7R0FDbkIsQ0FBQztDQUNIIiwiZmlsZSI6Im5vLWNvbmZsaWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGdsb2JhbFRoaXMgKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKEhhbmRsZWJhcnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2dsb2JhbHRoaXNcbiAgKGZ1bmN0aW9uKCkge1xuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oJ19fbWFnaWNfXycsIGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSk7XG4gICAgX19tYWdpY19fLmdsb2JhbFRoaXMgPSBfX21hZ2ljX187IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiAgICBkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX21hZ2ljX187XG4gIH0pKCk7XG5cbiAgY29uc3QgJEhhbmRsZWJhcnMgPSBnbG9iYWxUaGlzLkhhbmRsZWJhcnM7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgSGFuZGxlYmFycy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuSGFuZGxlYmFycyA9PT0gSGFuZGxlYmFycykge1xuICAgICAgZ2xvYmFsVGhpcy5IYW5kbGViYXJzID0gJEhhbmRsZWJhcnM7XG4gICAgfVxuICAgIHJldHVybiBIYW5kbGViYXJzO1xuICB9O1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return container.lookupProperty(obj, name);\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztH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QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0=\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","/**!\n\n @license\n handlebars v4.7.8\n\nCopyright (C) 2011-2019 by Yehuda Katz\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Handlebars\"] = factory();\n\telse\n\t\troot[\"Handlebars\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireWildcard = __webpack_require__(1)['default'];\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _handlebarsBase = __webpack_require__(3);\n\n\tvar base = _interopRequireWildcard(_handlebarsBase);\n\n\t// Each of these augment the Handlebars object. No need to setup here.\n\t// (This is done to easily share code between commonjs and browse envs)\n\n\tvar _handlebarsSafeString = __webpack_require__(76);\n\n\tvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\n\tvar _handlebarsException = __webpack_require__(5);\n\n\tvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\n\tvar _handlebarsUtils = __webpack_require__(4);\n\n\tvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\n\tvar _handlebarsRuntime = __webpack_require__(77);\n\n\tvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\n\tvar _handlebarsNoConflict = __webpack_require__(82);\n\n\tvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n\t// For compatibility and usage outside of module systems, make the Handlebars object a namespace\n\tfunction create() {\n\t var hb = new base.HandlebarsEnvironment();\n\n\t Utils.extend(hb, base);\n\t hb.SafeString = _handlebarsSafeString2['default'];\n\t hb.Exception = _handlebarsException2['default'];\n\t hb.Utils = Utils;\n\t hb.escapeExpression = Utils.escapeExpression;\n\n\t hb.VM = runtime;\n\t hb.template = function (spec) {\n\t return runtime.template(spec, hb);\n\t };\n\n\t return hb;\n\t}\n\n\tvar inst = create();\n\tinst.create = create;\n\n\t_handlebarsNoConflict2['default'](inst);\n\n\tinst['default'] = inst;\n\n\texports['default'] = inst;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\texports[\"default\"] = function (obj) {\n\t if (obj && obj.__esModule) {\n\t return obj;\n\t } else {\n\t var newObj = {};\n\n\t if (obj != null) {\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n\t }\n\t }\n\n\t newObj[\"default\"] = obj;\n\t return newObj;\n\t }\n\t};\n\n\texports.__esModule = true;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\texports[\"default\"] = function (obj) {\n\t return obj && obj.__esModule ? obj : {\n\t \"default\": obj\n\t };\n\t};\n\n\texports.__esModule = true;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.HandlebarsEnvironment = HandlebarsEnvironment;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\tvar _helpers = __webpack_require__(9);\n\n\tvar _decorators = __webpack_require__(69);\n\n\tvar _logger = __webpack_require__(71);\n\n\tvar _logger2 = _interopRequireDefault(_logger);\n\n\tvar _internalProtoAccess = __webpack_require__(72);\n\n\tvar VERSION = '4.7.8';\n\texports.VERSION = VERSION;\n\tvar COMPILER_REVISION = 8;\n\texports.COMPILER_REVISION = COMPILER_REVISION;\n\tvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\n\texports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\n\tvar REVISION_CHANGES = {\n\t 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n\t 2: '== 1.0.0-rc.3',\n\t 3: '== 1.0.0-rc.4',\n\t 4: '== 1.x.x',\n\t 5: '== 2.0.0-alpha.x',\n\t 6: '>= 2.0.0-beta.1',\n\t 7: '>= 4.0.0 <4.3.0',\n\t 8: '>= 4.3.0'\n\t};\n\n\texports.REVISION_CHANGES = REVISION_CHANGES;\n\tvar objectType = '[object Object]';\n\n\tfunction HandlebarsEnvironment(helpers, partials, decorators) {\n\t this.helpers = helpers || {};\n\t this.partials = partials || {};\n\t this.decorators = decorators || {};\n\n\t _helpers.registerDefaultHelpers(this);\n\t _decorators.registerDefaultDecorators(this);\n\t}\n\n\tHandlebarsEnvironment.prototype = {\n\t constructor: HandlebarsEnvironment,\n\n\t logger: _logger2['default'],\n\t log: _logger2['default'].log,\n\n\t registerHelper: function registerHelper(name, fn) {\n\t if (_utils.toString.call(name) === objectType) {\n\t if (fn) {\n\t throw new _exception2['default']('Arg not supported with multiple helpers');\n\t }\n\t _utils.extend(this.helpers, name);\n\t } else {\n\t this.helpers[name] = fn;\n\t }\n\t },\n\t unregisterHelper: function unregisterHelper(name) {\n\t delete this.helpers[name];\n\t },\n\n\t registerPartial: function registerPartial(name, partial) {\n\t if (_utils.toString.call(name) === objectType) {\n\t _utils.extend(this.partials, name);\n\t } else {\n\t if (typeof partial === 'undefined') {\n\t throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n\t }\n\t this.partials[name] = partial;\n\t }\n\t },\n\t unregisterPartial: function unregisterPartial(name) {\n\t delete this.partials[name];\n\t },\n\n\t registerDecorator: function registerDecorator(name, fn) {\n\t if (_utils.toString.call(name) === objectType) {\n\t if (fn) {\n\t throw new _exception2['default']('Arg not supported with multiple decorators');\n\t }\n\t _utils.extend(this.decorators, name);\n\t } else {\n\t this.decorators[name] = fn;\n\t }\n\t },\n\t unregisterDecorator: function unregisterDecorator(name) {\n\t delete this.decorators[name];\n\t },\n\t /**\n\t * Reset the memory of illegal property accesses that have already been logged.\n\t * @deprecated should only be used in handlebars test-cases\n\t */\n\t resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n\t _internalProtoAccess.resetLoggedProperties();\n\t }\n\t};\n\n\tvar log = _logger2['default'].log;\n\n\texports.log = log;\n\texports.createFrame = _utils.createFrame;\n\texports.logger = _logger2['default'];\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\texports.extend = extend;\n\texports.indexOf = indexOf;\n\texports.escapeExpression = escapeExpression;\n\texports.isEmpty = isEmpty;\n\texports.createFrame = createFrame;\n\texports.blockParams = blockParams;\n\texports.appendContextPath = appendContextPath;\n\tvar escape = {\n\t '&': '&',\n\t '<': '<',\n\t '>': '>',\n\t '\"': '"',\n\t \"'\": ''',\n\t '`': '`',\n\t '=': '='\n\t};\n\n\tvar badChars = /[&<>\"'`=]/g,\n\t possible = /[&<>\"'`=]/;\n\n\tfunction escapeChar(chr) {\n\t return escape[chr];\n\t}\n\n\tfunction extend(obj /* , ...source */) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t for (var key in arguments[i]) {\n\t if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n\t obj[key] = arguments[i][key];\n\t }\n\t }\n\t }\n\n\t return obj;\n\t}\n\n\tvar toString = Object.prototype.toString;\n\n\texports.toString = toString;\n\t// Sourced from lodash\n\t// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n\t/* eslint-disable func-style */\n\tvar isFunction = function isFunction(value) {\n\t return typeof value === 'function';\n\t};\n\t// fallback for older versions of Chrome and Safari\n\t/* istanbul ignore next */\n\tif (isFunction(/x/)) {\n\t exports.isFunction = isFunction = function (value) {\n\t return typeof value === 'function' && toString.call(value) === '[object Function]';\n\t };\n\t}\n\texports.isFunction = isFunction;\n\n\t/* eslint-enable func-style */\n\n\t/* istanbul ignore next */\n\tvar isArray = Array.isArray || function (value) {\n\t return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n\t};\n\n\texports.isArray = isArray;\n\t// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\n\tfunction indexOf(array, value) {\n\t for (var i = 0, len = array.length; i < len; i++) {\n\t if (array[i] === value) {\n\t return i;\n\t }\n\t }\n\t return -1;\n\t}\n\n\tfunction escapeExpression(string) {\n\t if (typeof string !== 'string') {\n\t // don't escape SafeStrings, since they're already safe\n\t if (string && string.toHTML) {\n\t return string.toHTML();\n\t } else if (string == null) {\n\t return '';\n\t } else if (!string) {\n\t return string + '';\n\t }\n\n\t // Force a string conversion as this will be done by the append regardless and\n\t // the regex test will do this transparently behind the scenes, causing issues if\n\t // an object's to string has escaped characters in it.\n\t string = '' + string;\n\t }\n\n\t if (!possible.test(string)) {\n\t return string;\n\t }\n\t return string.replace(badChars, escapeChar);\n\t}\n\n\tfunction isEmpty(value) {\n\t if (!value && value !== 0) {\n\t return true;\n\t } else if (isArray(value) && value.length === 0) {\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t}\n\n\tfunction createFrame(object) {\n\t var frame = extend({}, object);\n\t frame._parent = object;\n\t return frame;\n\t}\n\n\tfunction blockParams(params, ids) {\n\t params.path = ids;\n\t return params;\n\t}\n\n\tfunction appendContextPath(contextPath, id) {\n\t return (contextPath ? contextPath + '.' : '') + id;\n\t}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Object$defineProperty = __webpack_require__(6)['default'];\n\n\texports.__esModule = true;\n\tvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\n\tfunction Exception(message, node) {\n\t var loc = node && node.loc,\n\t line = undefined,\n\t endLineNumber = undefined,\n\t column = undefined,\n\t endColumn = undefined;\n\n\t if (loc) {\n\t line = loc.start.line;\n\t endLineNumber = loc.end.line;\n\t column = loc.start.column;\n\t endColumn = loc.end.column;\n\n\t message += ' - ' + line + ':' + column;\n\t }\n\n\t var tmp = Error.prototype.constructor.call(this, message);\n\n\t // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n\t for (var idx = 0; idx < errorProps.length; idx++) {\n\t this[errorProps[idx]] = tmp[errorProps[idx]];\n\t }\n\n\t /* istanbul ignore else */\n\t if (Error.captureStackTrace) {\n\t Error.captureStackTrace(this, Exception);\n\t }\n\n\t try {\n\t if (loc) {\n\t this.lineNumber = line;\n\t this.endLineNumber = endLineNumber;\n\n\t // Work around issue under safari where we can't directly set the column value\n\t /* istanbul ignore next */\n\t if (_Object$defineProperty) {\n\t Object.defineProperty(this, 'column', {\n\t value: column,\n\t enumerable: true\n\t });\n\t Object.defineProperty(this, 'endColumn', {\n\t value: endColumn,\n\t enumerable: true\n\t });\n\t } else {\n\t this.column = column;\n\t this.endColumn = endColumn;\n\t }\n\t }\n\t } catch (nop) {\n\t /* Ignore if the browser is very particular */\n\t }\n\t}\n\n\tException.prototype = new Error();\n\n\texports['default'] = Exception;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(7), __esModule: true };\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(8);\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $.setDesc(it, key, desc);\n\t};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tvar $Object = Object;\n\tmodule.exports = {\n\t create: $Object.create,\n\t getProto: $Object.getPrototypeOf,\n\t isEnum: {}.propertyIsEnumerable,\n\t getDesc: $Object.getOwnPropertyDescriptor,\n\t setDesc: $Object.defineProperty,\n\t setDescs: $Object.defineProperties,\n\t getKeys: $Object.keys,\n\t getNames: $Object.getOwnPropertyNames,\n\t getSymbols: $Object.getOwnPropertySymbols,\n\t each: [].forEach\n\t};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.registerDefaultHelpers = registerDefaultHelpers;\n\texports.moveHelperToHooks = moveHelperToHooks;\n\n\tvar _helpersBlockHelperMissing = __webpack_require__(10);\n\n\tvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\n\tvar _helpersEach = __webpack_require__(11);\n\n\tvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\n\tvar _helpersHelperMissing = __webpack_require__(64);\n\n\tvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\n\tvar _helpersIf = __webpack_require__(65);\n\n\tvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\n\tvar _helpersLog = __webpack_require__(66);\n\n\tvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\n\tvar _helpersLookup = __webpack_require__(67);\n\n\tvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\n\tvar _helpersWith = __webpack_require__(68);\n\n\tvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\n\tfunction registerDefaultHelpers(instance) {\n\t _helpersBlockHelperMissing2['default'](instance);\n\t _helpersEach2['default'](instance);\n\t _helpersHelperMissing2['default'](instance);\n\t _helpersIf2['default'](instance);\n\t _helpersLog2['default'](instance);\n\t _helpersLookup2['default'](instance);\n\t _helpersWith2['default'](instance);\n\t}\n\n\tfunction moveHelperToHooks(instance, helperName, keepHelper) {\n\t if (instance.helpers[helperName]) {\n\t instance.hooks[helperName] = instance.helpers[helperName];\n\t if (!keepHelper) {\n\t delete instance.helpers[helperName];\n\t }\n\t }\n\t}\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('blockHelperMissing', function (context, options) {\n\t var inverse = options.inverse,\n\t fn = options.fn;\n\n\t if (context === true) {\n\t return fn(this);\n\t } else if (context === false || context == null) {\n\t return inverse(this);\n\t } else if (_utils.isArray(context)) {\n\t if (context.length > 0) {\n\t if (options.ids) {\n\t options.ids = [options.name];\n\t }\n\n\t return instance.helpers.each(context, options);\n\t } else {\n\t return inverse(this);\n\t }\n\t } else {\n\t if (options.data && options.ids) {\n\t var data = _utils.createFrame(options.data);\n\t data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n\t options = { data: data };\n\t }\n\n\t return fn(context, options);\n\t }\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Symbol = __webpack_require__(12)['default'];\n\n\tvar _Symbol$iterator = __webpack_require__(42)['default'];\n\n\tvar _getIterator = __webpack_require__(54)['default'];\n\n\tvar _Object$keys = __webpack_require__(59)['default'];\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('each', function (context, options) {\n\t if (!options) {\n\t throw new _exception2['default']('Must pass iterator to #each');\n\t }\n\n\t var fn = options.fn,\n\t inverse = options.inverse,\n\t i = 0,\n\t ret = '',\n\t data = undefined,\n\t contextPath = undefined;\n\n\t if (options.data && options.ids) {\n\t contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n\t }\n\n\t if (_utils.isFunction(context)) {\n\t context = context.call(this);\n\t }\n\n\t if (options.data) {\n\t data = _utils.createFrame(options.data);\n\t }\n\n\t function execIteration(field, index, last) {\n\t if (data) {\n\t data.key = field;\n\t data.index = index;\n\t data.first = index === 0;\n\t data.last = !!last;\n\n\t if (contextPath) {\n\t data.contextPath = contextPath + field;\n\t }\n\t }\n\n\t ret = ret + fn(context[field], {\n\t data: data,\n\t blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n\t });\n\t }\n\n\t if (context && typeof context === 'object') {\n\t if (_utils.isArray(context)) {\n\t for (var j = context.length; i < j; i++) {\n\t if (i in context) {\n\t execIteration(i, i, i === context.length - 1);\n\t }\n\t }\n\t } else if (typeof _Symbol === 'function' && context[_Symbol$iterator]) {\n\t var newContext = [];\n\t var iterator = _getIterator(context);\n\t for (var it = iterator.next(); !it.done; it = iterator.next()) {\n\t newContext.push(it.value);\n\t }\n\t context = newContext;\n\t for (var j = context.length; i < j; i++) {\n\t execIteration(i, i, i === context.length - 1);\n\t }\n\t } else {\n\t (function () {\n\t var priorKey = undefined;\n\n\t _Object$keys(context).forEach(function (key) {\n\t // We're running the iterations one step out of sync so we can detect\n\t // the last iteration without have to scan the object twice and create\n\t // an itermediate keys array.\n\t if (priorKey !== undefined) {\n\t execIteration(priorKey, i - 1);\n\t }\n\t priorKey = key;\n\t i++;\n\t });\n\t if (priorKey !== undefined) {\n\t execIteration(priorKey, i - 1, true);\n\t }\n\t })();\n\t }\n\t }\n\n\t if (i === 0) {\n\t ret = inverse(this);\n\t }\n\n\t return ret;\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(13), __esModule: true };\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(14);\n\t__webpack_require__(41);\n\tmodule.exports = __webpack_require__(20).Symbol;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar $ = __webpack_require__(8)\n\t , global = __webpack_require__(15)\n\t , has = __webpack_require__(16)\n\t , DESCRIPTORS = __webpack_require__(17)\n\t , $export = __webpack_require__(19)\n\t , redefine = __webpack_require__(23)\n\t , $fails = __webpack_require__(18)\n\t , shared = __webpack_require__(26)\n\t , setToStringTag = __webpack_require__(27)\n\t , uid = __webpack_require__(29)\n\t , wks = __webpack_require__(28)\n\t , keyOf = __webpack_require__(30)\n\t , $names = __webpack_require__(35)\n\t , enumKeys = __webpack_require__(36)\n\t , isArray = __webpack_require__(37)\n\t , anObject = __webpack_require__(38)\n\t , toIObject = __webpack_require__(31)\n\t , createDesc = __webpack_require__(25)\n\t , getDesc = $.getDesc\n\t , setDesc = $.setDesc\n\t , _create = $.create\n\t , getNames = $names.get\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , setter = false\n\t , HIDDEN = wks('_hidden')\n\t , isEnum = $.isEnum\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , useNative = typeof $Symbol == 'function'\n\t , ObjectProto = Object.prototype;\n\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(setDesc({}, 'a', {\n\t get: function(){ return setDesc(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = getDesc(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t setDesc(it, key, D);\n\t if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);\n\t} : setDesc;\n\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol.prototype);\n\t sym._k = tag;\n\t DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {\n\t configurable: true,\n\t set: function(value){\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t }\n\t });\n\t return sym;\n\t};\n\n\tvar isSymbol = function(it){\n\t return typeof it == 'symbol';\n\t};\n\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(D && has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return setDesc(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key);\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key]\n\t ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t var D = getDesc(it = toIObject(it), key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key);\n\t return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var names = getNames(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]);\n\t return result;\n\t};\n\tvar $stringify = function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , $$ = arguments\n\t , replacer, $replacer;\n\t while($$.length > i)args.push($$[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t};\n\tvar buggyJSON = $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t});\n\n\t// 19.4.1.1 Symbol([description])\n\tif(!useNative){\n\t $Symbol = function Symbol(){\n\t if(isSymbol(this))throw TypeError('Symbol is not a constructor');\n\t return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));\n\t };\n\t redefine($Symbol.prototype, 'toString', function toString(){\n\t return this._k;\n\t });\n\n\t isSymbol = function(it){\n\t return it instanceof $Symbol;\n\t };\n\n\t $.create = $create;\n\t $.isEnum = $propertyIsEnumerable;\n\t $.getDesc = $getOwnPropertyDescriptor;\n\t $.setDesc = $defineProperty;\n\t $.setDescs = $defineProperties;\n\t $.getNames = $names.get = $getOwnPropertyNames;\n\t $.getSymbols = $getOwnPropertySymbols;\n\n\t if(DESCRIPTORS && !__webpack_require__(40)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t}\n\n\tvar symbolStatics = {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t return keyOf(SymbolRegistry, key);\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t};\n\t// 19.4.2.2 Symbol.hasInstance\n\t// 19.4.2.3 Symbol.isConcatSpreadable\n\t// 19.4.2.4 Symbol.iterator\n\t// 19.4.2.6 Symbol.match\n\t// 19.4.2.8 Symbol.replace\n\t// 19.4.2.9 Symbol.search\n\t// 19.4.2.10 Symbol.species\n\t// 19.4.2.11 Symbol.split\n\t// 19.4.2.12 Symbol.toPrimitive\n\t// 19.4.2.13 Symbol.toStringTag\n\t// 19.4.2.14 Symbol.unscopables\n\t$.each.call((\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +\n\t 'species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), function(it){\n\t var sym = wks(it);\n\t symbolStatics[it] = useNative ? sym : wrap(sym);\n\t});\n\n\tsetter = true;\n\n\t$export($export.G + $export.W, {Symbol: $Symbol});\n\n\t$export($export.S, 'Symbol', symbolStatics);\n\n\t$export($export.S + $export.F * !useNative, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify});\n\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\tif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tmodule.exports = function(it, key){\n\t return hasOwnProperty.call(it, key);\n\t};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// Thank's IE8 for his funny defineProperty\n\tmodule.exports = !__webpack_require__(18)(function(){\n\t return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(exec){\n\t try {\n\t return !!exec();\n\t } catch(e){\n\t return true;\n\t }\n\t};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(15)\n\t , core = __webpack_require__(20)\n\t , ctx = __webpack_require__(21)\n\t , PROTOTYPE = 'prototype';\n\n\tvar $export = function(type, name, source){\n\t var IS_FORCED = type & $export.F\n\t , IS_GLOBAL = type & $export.G\n\t , IS_STATIC = type & $export.S\n\t , IS_PROTO = type & $export.P\n\t , IS_BIND = type & $export.B\n\t , IS_WRAP = type & $export.W\n\t , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n\t , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n\t , key, own, out;\n\t if(IS_GLOBAL)source = name;\n\t for(key in source){\n\t // contains in native\n\t own = !IS_FORCED && target && key in target;\n\t if(own && key in exports)continue;\n\t // export native or passed\n\t out = own ? target[key] : source[key];\n\t // prevent global pollution for namespaces\n\t exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n\t // bind timers to global for call from export context\n\t : IS_BIND && own ? ctx(out, global)\n\t // wrap global constructors for prevent change them in library\n\t : IS_WRAP && target[key] == out ? (function(C){\n\t var F = function(param){\n\t return this instanceof C ? new C(param) : C(param);\n\t };\n\t F[PROTOTYPE] = C[PROTOTYPE];\n\t return F;\n\t // make static versions for prototype methods\n\t })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n\t if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;\n\t }\n\t};\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\tmodule.exports = $export;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\n\tvar core = module.exports = {version: '1.2.6'};\n\tif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(22);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(24);\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(8)\n\t , createDesc = __webpack_require__(25);\n\tmodule.exports = __webpack_require__(17) ? function(object, key, value){\n\t return $.setDesc(object, key, createDesc(1, value));\n\t} : function(object, key, value){\n\t object[key] = value;\n\t return object;\n\t};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(bitmap, value){\n\t return {\n\t enumerable : !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable : !(bitmap & 4),\n\t value : value\n\t };\n\t};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(15)\n\t , SHARED = '__core-js_shared__'\n\t , store = global[SHARED] || (global[SHARED] = {});\n\tmodule.exports = function(key){\n\t return store[key] || (store[key] = {});\n\t};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar def = __webpack_require__(8).setDesc\n\t , has = __webpack_require__(16)\n\t , TAG = __webpack_require__(28)('toStringTag');\n\n\tmodule.exports = function(it, tag, stat){\n\t if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n\t};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar store = __webpack_require__(26)('wks')\n\t , uid = __webpack_require__(29)\n\t , Symbol = __webpack_require__(15).Symbol;\n\tmodule.exports = function(name){\n\t return store[name] || (store[name] =\n\t Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));\n\t};\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n\tvar id = 0\n\t , px = Math.random();\n\tmodule.exports = function(key){\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(8)\n\t , toIObject = __webpack_require__(31);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = $.getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// to indexed object, toObject with fallback for non-array-like ES3 strings\n\tvar IObject = __webpack_require__(32)\n\t , defined = __webpack_require__(34);\n\tmodule.exports = function(it){\n\t return IObject(defined(it));\n\t};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(33);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\n\tvar toString = {}.toString;\n\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tmodule.exports = function(it){\n\t if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n\t return it;\n\t};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(31)\n\t , getNames = __webpack_require__(8).getNames\n\t , toString = {}.toString;\n\n\tvar windowNames = typeof window == 'object' && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\n\tvar getWindowNames = function(it){\n\t try {\n\t return getNames(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\n\tmodule.exports.get = function getOwnPropertyNames(it){\n\t if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it);\n\t return getNames(toIObject(it));\n\t};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar $ = __webpack_require__(8);\n\tmodule.exports = function(it){\n\t var keys = $.getKeys(it)\n\t , getSymbols = $.getSymbols;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = $.isEnum\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);\n\t }\n\t return keys;\n\t};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(33);\n\tmodule.exports = Array.isArray || function(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(39);\n\tmodule.exports = function(it){\n\t if(!isObject(it))throw TypeError(it + ' is not an object!');\n\t return it;\n\t};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(it){\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = true;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports) {\n\n\t\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(43), __esModule: true };\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(44);\n\t__webpack_require__(50);\n\tmodule.exports = __webpack_require__(28)('iterator');\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(45)(true);\n\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(47)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(46)\n\t , defined = __webpack_require__(34);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil\n\t , floor = Math.floor;\n\tmodule.exports = function(it){\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(40)\n\t , $export = __webpack_require__(19)\n\t , redefine = __webpack_require__(23)\n\t , hide = __webpack_require__(24)\n\t , has = __webpack_require__(16)\n\t , Iterators = __webpack_require__(48)\n\t , $iterCreate = __webpack_require__(49)\n\t , setToStringTag = __webpack_require__(27)\n\t , getProto = __webpack_require__(8).getProto\n\t , ITERATOR = __webpack_require__(28)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\n\tvar returnThis = function(){ return this; };\n\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , methods, key;\n\t // Fix native\n\t if($native){\n\t var IteratorPrototype = getProto($default.call(new Base));\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // FF fix\n\t if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: !DEF_VALUES ? $default : getMethod('entries')\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = {};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $ = __webpack_require__(8)\n\t , descriptor = __webpack_require__(25)\n\t , setToStringTag = __webpack_require__(27)\n\t , IteratorPrototype = {};\n\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(24)(IteratorPrototype, __webpack_require__(28)('iterator'), function(){ return this; });\n\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(51);\n\tvar Iterators = __webpack_require__(48);\n\tIterators.NodeList = Iterators.HTMLCollection = Iterators.Array;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(52)\n\t , step = __webpack_require__(53)\n\t , Iterators = __webpack_require__(48)\n\t , toIObject = __webpack_require__(31);\n\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(47)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(55), __esModule: true };\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(50);\n\t__webpack_require__(44);\n\tmodule.exports = __webpack_require__(56);\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar anObject = __webpack_require__(38)\n\t , get = __webpack_require__(57);\n\tmodule.exports = __webpack_require__(20).getIterator = function(it){\n\t var iterFn = get(it);\n\t if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');\n\t return anObject(iterFn.call(it));\n\t};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(58)\n\t , ITERATOR = __webpack_require__(28)('iterator')\n\t , Iterators = __webpack_require__(48);\n\tmodule.exports = __webpack_require__(20).getIteratorMethod = function(it){\n\t if(it != undefined)return it[ITERATOR]\n\t || it['@@iterator']\n\t || Iterators[classof(it)];\n\t};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// getting tag from 19.1.3.6 Object.prototype.toString()\n\tvar cof = __webpack_require__(33)\n\t , TAG = __webpack_require__(28)('toStringTag')\n\t // ES3 wrong here\n\t , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n\tmodule.exports = function(it){\n\t var O, T, B;\n\t return it === undefined ? 'Undefined' : it === null ? 'Null'\n\t // @@toStringTag case\n\t : typeof (T = (O = Object(it))[TAG]) == 'string' ? T\n\t // builtinTag case\n\t : ARG ? cof(O)\n\t // ES3 arguments fallback\n\t : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n\t};\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(60), __esModule: true };\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(61);\n\tmodule.exports = __webpack_require__(20).Object.keys;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 Object.keys(O)\n\tvar toObject = __webpack_require__(62);\n\n\t__webpack_require__(63)('keys', function($keys){\n\t return function keys(it){\n\t return $keys(toObject(it));\n\t };\n\t});\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(34);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(19)\n\t , core = __webpack_require__(20)\n\t , fails = __webpack_require__(18);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('helperMissing', function () /* [args, ]options */{\n\t if (arguments.length === 1) {\n\t // A missing field in a {{foo}} construct.\n\t return undefined;\n\t } else {\n\t // Someone is actually trying to call something, blow up.\n\t throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n\t }\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('if', function (conditional, options) {\n\t if (arguments.length != 2) {\n\t throw new _exception2['default']('#if requires exactly one argument');\n\t }\n\t if (_utils.isFunction(conditional)) {\n\t conditional = conditional.call(this);\n\t }\n\n\t // Default behavior is to render the positive path if the value is truthy and not empty.\n\t // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n\t // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n\t if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n\t return options.inverse(this);\n\t } else {\n\t return options.fn(this);\n\t }\n\t });\n\n\t instance.registerHelper('unless', function (conditional, options) {\n\t if (arguments.length != 2) {\n\t throw new _exception2['default']('#unless requires exactly one argument');\n\t }\n\t return instance.helpers['if'].call(this, conditional, {\n\t fn: options.inverse,\n\t inverse: options.fn,\n\t hash: options.hash\n\t });\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('log', function () /* message, options */{\n\t var args = [undefined],\n\t options = arguments[arguments.length - 1];\n\t for (var i = 0; i < arguments.length - 1; i++) {\n\t args.push(arguments[i]);\n\t }\n\n\t var level = 1;\n\t if (options.hash.level != null) {\n\t level = options.hash.level;\n\t } else if (options.data && options.data.level != null) {\n\t level = options.data.level;\n\t }\n\t args[0] = level;\n\n\t instance.log.apply(instance, args);\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('lookup', function (obj, field, options) {\n\t if (!obj) {\n\t // Note for 5.0: Change to \"obj == null\" in 5.0\n\t return obj;\n\t }\n\t return options.lookupProperty(obj, field);\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\texports['default'] = function (instance) {\n\t instance.registerHelper('with', function (context, options) {\n\t if (arguments.length != 2) {\n\t throw new _exception2['default']('#with requires exactly one argument');\n\t }\n\t if (_utils.isFunction(context)) {\n\t context = context.call(this);\n\t }\n\n\t var fn = options.fn;\n\n\t if (!_utils.isEmpty(context)) {\n\t var data = options.data;\n\t if (options.data && options.ids) {\n\t data = _utils.createFrame(options.data);\n\t data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n\t }\n\n\t return fn(context, {\n\t data: data,\n\t blockParams: _utils.blockParams([context], [data && data.contextPath])\n\t });\n\t } else {\n\t return options.inverse(this);\n\t }\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.registerDefaultDecorators = registerDefaultDecorators;\n\n\tvar _decoratorsInline = __webpack_require__(70);\n\n\tvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\n\tfunction registerDefaultDecorators(instance) {\n\t _decoratorsInline2['default'](instance);\n\t}\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\texports['default'] = function (instance) {\n\t instance.registerDecorator('inline', function (fn, props, container, options) {\n\t var ret = fn;\n\t if (!props.partials) {\n\t props.partials = {};\n\t ret = function (context, options) {\n\t // Create a new partials stack frame prior to exec.\n\t var original = container.partials;\n\t container.partials = _utils.extend({}, original, props.partials);\n\t var ret = fn(context, options);\n\t container.partials = original;\n\t return ret;\n\t };\n\t }\n\n\t props.partials[options.args[0]] = options.fn;\n\n\t return ret;\n\t });\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar logger = {\n\t methodMap: ['debug', 'info', 'warn', 'error'],\n\t level: 'info',\n\n\t // Maps a given level value to the `methodMap` indexes above.\n\t lookupLevel: function lookupLevel(level) {\n\t if (typeof level === 'string') {\n\t var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n\t if (levelMap >= 0) {\n\t level = levelMap;\n\t } else {\n\t level = parseInt(level, 10);\n\t }\n\t }\n\n\t return level;\n\t },\n\n\t // Can be overridden in the host environment\n\t log: function log(level) {\n\t level = logger.lookupLevel(level);\n\n\t if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n\t var method = logger.methodMap[level];\n\t // eslint-disable-next-line no-console\n\t if (!console[method]) {\n\t method = 'log';\n\t }\n\n\t for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t message[_key - 1] = arguments[_key];\n\t }\n\n\t console[method].apply(console, message); // eslint-disable-line no-console\n\t }\n\t }\n\t};\n\n\texports['default'] = logger;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Object$create = __webpack_require__(73)['default'];\n\n\tvar _Object$keys = __webpack_require__(59)['default'];\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.createProtoAccessControl = createProtoAccessControl;\n\texports.resultIsAllowed = resultIsAllowed;\n\texports.resetLoggedProperties = resetLoggedProperties;\n\n\tvar _createNewLookupObject = __webpack_require__(75);\n\n\tvar _logger = __webpack_require__(71);\n\n\tvar _logger2 = _interopRequireDefault(_logger);\n\n\tvar loggedProperties = _Object$create(null);\n\n\tfunction createProtoAccessControl(runtimeOptions) {\n\t var defaultMethodWhiteList = _Object$create(null);\n\t defaultMethodWhiteList['constructor'] = false;\n\t defaultMethodWhiteList['__defineGetter__'] = false;\n\t defaultMethodWhiteList['__defineSetter__'] = false;\n\t defaultMethodWhiteList['__lookupGetter__'] = false;\n\n\t var defaultPropertyWhiteList = _Object$create(null);\n\t // eslint-disable-next-line no-proto\n\t defaultPropertyWhiteList['__proto__'] = false;\n\n\t return {\n\t properties: {\n\t whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n\t defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n\t },\n\t methods: {\n\t whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n\t defaultValue: runtimeOptions.allowProtoMethodsByDefault\n\t }\n\t };\n\t}\n\n\tfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n\t if (typeof result === 'function') {\n\t return checkWhiteList(protoAccessControl.methods, propertyName);\n\t } else {\n\t return checkWhiteList(protoAccessControl.properties, propertyName);\n\t }\n\t}\n\n\tfunction checkWhiteList(protoAccessControlForType, propertyName) {\n\t if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n\t return protoAccessControlForType.whitelist[propertyName] === true;\n\t }\n\t if (protoAccessControlForType.defaultValue !== undefined) {\n\t return protoAccessControlForType.defaultValue;\n\t }\n\t logUnexpecedPropertyAccessOnce(propertyName);\n\t return false;\n\t}\n\n\tfunction logUnexpecedPropertyAccessOnce(propertyName) {\n\t if (loggedProperties[propertyName] !== true) {\n\t loggedProperties[propertyName] = true;\n\t _logger2['default'].log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n\t }\n\t}\n\n\tfunction resetLoggedProperties() {\n\t _Object$keys(loggedProperties).forEach(function (propertyName) {\n\t delete loggedProperties[propertyName];\n\t });\n\t}\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(74), __esModule: true };\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar $ = __webpack_require__(8);\n\tmodule.exports = function create(P, D){\n\t return $.create(P, D);\n\t};\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Object$create = __webpack_require__(73)['default'];\n\n\texports.__esModule = true;\n\texports.createNewLookupObject = createNewLookupObject;\n\n\tvar _utils = __webpack_require__(4);\n\n\t/**\n\t * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n\t * The resulting object can be used with \"object[property]\" to check if a property exists\n\t * @param {...object} sources a varargs parameter of source objects that will be merged\n\t * @returns {object}\n\t */\n\n\tfunction createNewLookupObject() {\n\t for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n\t sources[_key] = arguments[_key];\n\t }\n\n\t return _utils.extend.apply(undefined, [_Object$create(null)].concat(sources));\n\t}\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\n\t// Build out our basic SafeString type\n\t'use strict';\n\n\texports.__esModule = true;\n\tfunction SafeString(string) {\n\t this.string = string;\n\t}\n\n\tSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n\t return '' + this.string;\n\t};\n\n\texports['default'] = SafeString;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar _Object$seal = __webpack_require__(78)['default'];\n\n\tvar _Object$keys = __webpack_require__(59)['default'];\n\n\tvar _interopRequireWildcard = __webpack_require__(1)['default'];\n\n\tvar _interopRequireDefault = __webpack_require__(2)['default'];\n\n\texports.__esModule = true;\n\texports.checkRevision = checkRevision;\n\texports.template = template;\n\texports.wrapProgram = wrapProgram;\n\texports.resolvePartial = resolvePartial;\n\texports.invokePartial = invokePartial;\n\texports.noop = noop;\n\n\tvar _utils = __webpack_require__(4);\n\n\tvar Utils = _interopRequireWildcard(_utils);\n\n\tvar _exception = __webpack_require__(5);\n\n\tvar _exception2 = _interopRequireDefault(_exception);\n\n\tvar _base = __webpack_require__(3);\n\n\tvar _helpers = __webpack_require__(9);\n\n\tvar _internalWrapHelper = __webpack_require__(81);\n\n\tvar _internalProtoAccess = __webpack_require__(72);\n\n\tfunction checkRevision(compilerInfo) {\n\t var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n\t currentRevision = _base.COMPILER_REVISION;\n\n\t if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n\t return;\n\t }\n\n\t if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n\t var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n\t compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n\t throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n\t } else {\n\t // Use the embedded version info since the runtime doesn't know about this revision yet\n\t throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n\t }\n\t}\n\n\tfunction template(templateSpec, env) {\n\t /* istanbul ignore next */\n\t if (!env) {\n\t throw new _exception2['default']('No environment passed to template');\n\t }\n\t if (!templateSpec || !templateSpec.main) {\n\t throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n\t }\n\n\t templateSpec.main.decorator = templateSpec.main_d;\n\n\t // Note: Using env.VM references rather than local var references throughout this section to allow\n\t // for external users to override these as pseudo-supported APIs.\n\t env.VM.checkRevision(templateSpec.compiler);\n\n\t // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n\t var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n\t function invokePartialWrapper(partial, context, options) {\n\t if (options.hash) {\n\t context = Utils.extend({}, context, options.hash);\n\t if (options.ids) {\n\t options.ids[0] = true;\n\t }\n\t }\n\t partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n\t var extendedOptions = Utils.extend({}, options, {\n\t hooks: this.hooks,\n\t protoAccessControl: this.protoAccessControl\n\t });\n\n\t var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n\t if (result == null && env.compile) {\n\t options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n\t result = options.partials[options.name](context, extendedOptions);\n\t }\n\t if (result != null) {\n\t if (options.indent) {\n\t var lines = result.split('\\n');\n\t for (var i = 0, l = lines.length; i < l; i++) {\n\t if (!lines[i] && i + 1 === l) {\n\t break;\n\t }\n\n\t lines[i] = options.indent + lines[i];\n\t }\n\t result = lines.join('\\n');\n\t }\n\t return result;\n\t } else {\n\t throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n\t }\n\t }\n\n\t // Just add water\n\t var container = {\n\t strict: function strict(obj, name, loc) {\n\t if (!obj || !(name in obj)) {\n\t throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n\t loc: loc\n\t });\n\t }\n\t return container.lookupProperty(obj, name);\n\t },\n\t lookupProperty: function lookupProperty(parent, propertyName) {\n\t var result = parent[propertyName];\n\t if (result == null) {\n\t return result;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n\t return result;\n\t }\n\n\t if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n\t return result;\n\t }\n\t return undefined;\n\t },\n\t lookup: function lookup(depths, name) {\n\t var len = depths.length;\n\t for (var i = 0; i < len; i++) {\n\t var result = depths[i] && container.lookupProperty(depths[i], name);\n\t if (result != null) {\n\t return depths[i][name];\n\t }\n\t }\n\t },\n\t lambda: function lambda(current, context) {\n\t return typeof current === 'function' ? current.call(context) : current;\n\t },\n\n\t escapeExpression: Utils.escapeExpression,\n\t invokePartial: invokePartialWrapper,\n\n\t fn: function fn(i) {\n\t var ret = templateSpec[i];\n\t ret.decorator = templateSpec[i + '_d'];\n\t return ret;\n\t },\n\n\t programs: [],\n\t program: function program(i, data, declaredBlockParams, blockParams, depths) {\n\t var programWrapper = this.programs[i],\n\t fn = this.fn(i);\n\t if (data || depths || blockParams || declaredBlockParams) {\n\t programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n\t } else if (!programWrapper) {\n\t programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n\t }\n\t return programWrapper;\n\t },\n\n\t data: function data(value, depth) {\n\t while (value && depth--) {\n\t value = value._parent;\n\t }\n\t return value;\n\t },\n\t mergeIfNeeded: function mergeIfNeeded(param, common) {\n\t var obj = param || common;\n\n\t if (param && common && param !== common) {\n\t obj = Utils.extend({}, common, param);\n\t }\n\n\t return obj;\n\t },\n\t // An empty object to use as replacement for null-contexts\n\t nullContext: _Object$seal({}),\n\n\t noop: env.VM.noop,\n\t compilerInfo: templateSpec.compiler\n\t };\n\n\t function ret(context) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t var data = options.data;\n\n\t ret._setup(options);\n\t if (!options.partial && templateSpec.useData) {\n\t data = initData(context, data);\n\t }\n\t var depths = undefined,\n\t blockParams = templateSpec.useBlockParams ? [] : undefined;\n\t if (templateSpec.useDepths) {\n\t if (options.depths) {\n\t depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n\t } else {\n\t depths = [context];\n\t }\n\t }\n\n\t function main(context /*, options*/) {\n\t return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n\t }\n\n\t main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n\t return main(context, options);\n\t }\n\n\t ret.isTop = true;\n\n\t ret._setup = function (options) {\n\t if (!options.partial) {\n\t var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n\t wrapHelpersToPassLookupProperty(mergedHelpers, container);\n\t container.helpers = mergedHelpers;\n\n\t if (templateSpec.usePartial) {\n\t // Use mergeIfNeeded here to prevent compiling global partials multiple times\n\t container.partials = container.mergeIfNeeded(options.partials, env.partials);\n\t }\n\t if (templateSpec.usePartial || templateSpec.useDecorators) {\n\t container.decorators = Utils.extend({}, env.decorators, options.decorators);\n\t }\n\n\t container.hooks = {};\n\t container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n\t var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n\t _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n\t _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n\t } else {\n\t container.protoAccessControl = options.protoAccessControl; // internal option\n\t container.helpers = options.helpers;\n\t container.partials = options.partials;\n\t container.decorators = options.decorators;\n\t container.hooks = options.hooks;\n\t }\n\t };\n\n\t ret._child = function (i, data, blockParams, depths) {\n\t if (templateSpec.useBlockParams && !blockParams) {\n\t throw new _exception2['default']('must pass block params');\n\t }\n\t if (templateSpec.useDepths && !depths) {\n\t throw new _exception2['default']('must pass parent depths');\n\t }\n\n\t return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n\t };\n\t return ret;\n\t}\n\n\tfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n\t function prog(context) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t var currentDepths = depths;\n\t if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n\t currentDepths = [context].concat(depths);\n\t }\n\n\t return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n\t }\n\n\t prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n\t prog.program = i;\n\t prog.depth = depths ? depths.length : 0;\n\t prog.blockParams = declaredBlockParams || 0;\n\t return prog;\n\t}\n\n\t/**\n\t * This is currently part of the official API, therefore implementation details should not be changed.\n\t */\n\n\tfunction resolvePartial(partial, context, options) {\n\t if (!partial) {\n\t if (options.name === '@partial-block') {\n\t partial = options.data['partial-block'];\n\t } else {\n\t partial = options.partials[options.name];\n\t }\n\t } else if (!partial.call && !options.name) {\n\t // This is a dynamic partial that returned a string\n\t options.name = partial;\n\t partial = options.partials[partial];\n\t }\n\t return partial;\n\t}\n\n\tfunction invokePartial(partial, context, options) {\n\t // Use the current closure context to save the partial-block if this partial\n\t var currentPartialBlock = options.data && options.data['partial-block'];\n\t options.partial = true;\n\t if (options.ids) {\n\t options.data.contextPath = options.ids[0] || options.data.contextPath;\n\t }\n\n\t var partialBlock = undefined;\n\t if (options.fn && options.fn !== noop) {\n\t (function () {\n\t options.data = _base.createFrame(options.data);\n\t // Wrapper function to get access to currentPartialBlock from the closure\n\t var fn = options.fn;\n\t partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t // Restore the partial-block from the closure for the execution of the block\n\t // i.e. the part inside the block of the partial call.\n\t options.data = _base.createFrame(options.data);\n\t options.data['partial-block'] = currentPartialBlock;\n\t return fn(context, options);\n\t };\n\t if (fn.partials) {\n\t options.partials = Utils.extend({}, options.partials, fn.partials);\n\t }\n\t })();\n\t }\n\n\t if (partial === undefined && partialBlock) {\n\t partial = partialBlock;\n\t }\n\n\t if (partial === undefined) {\n\t throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n\t } else if (partial instanceof Function) {\n\t return partial(context, options);\n\t }\n\t}\n\n\tfunction noop() {\n\t return '';\n\t}\n\n\tfunction initData(context, data) {\n\t if (!data || !('root' in data)) {\n\t data = data ? _base.createFrame(data) : {};\n\t data.root = context;\n\t }\n\t return data;\n\t}\n\n\tfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n\t if (fn.decorator) {\n\t var props = {};\n\t prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n\t Utils.extend(prog, props);\n\t }\n\t return prog;\n\t}\n\n\tfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n\t _Object$keys(mergedHelpers).forEach(function (helperName) {\n\t var helper = mergedHelpers[helperName];\n\t mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n\t });\n\t}\n\n\tfunction passLookupPropertyOption(helper, container) {\n\t var lookupProperty = container.lookupProperty;\n\t return _internalWrapHelper.wrapHelper(helper, function (options) {\n\t return Utils.extend({ lookupProperty: lookupProperty }, options);\n\t });\n\t}\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(79), __esModule: true };\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(80);\n\tmodule.exports = __webpack_require__(20).Object.seal;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.17 Object.seal(O)\n\tvar isObject = __webpack_require__(39);\n\n\t__webpack_require__(63)('seal', function($seal){\n\t return function seal(it){\n\t return $seal && isObject(it) ? $seal(it) : it;\n\t };\n\t});\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\texports.__esModule = true;\n\texports.wrapHelper = wrapHelper;\n\n\tfunction wrapHelper(helper, transformOptionsFn) {\n\t if (typeof helper !== 'function') {\n\t // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n\t // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n\t return helper;\n\t }\n\t var wrapper = function wrapper() /* dynamic arguments */{\n\t var options = arguments[arguments.length - 1];\n\t arguments[arguments.length - 1] = transformOptionsFn(options);\n\t return helper.apply(this, arguments);\n\t };\n\t return wrapper;\n\t}\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\n\t/* global globalThis */\n\t'use strict';\n\n\texports.__esModule = true;\n\n\texports['default'] = function (Handlebars) {\n\t /* istanbul ignore next */\n\t // https://mathiasbynens.be/notes/globalthis\n\t (function () {\n\t if (typeof globalThis === 'object') return;\n\t Object.prototype.__defineGetter__('__magic__', function () {\n\t return this;\n\t });\n\t __magic__.globalThis = __magic__; // eslint-disable-line no-undef\n\t delete Object.prototype.__magic__;\n\t })();\n\n\t var $Handlebars = globalThis.Handlebars;\n\n\t /* istanbul ignore next */\n\t Handlebars.noConflict = function () {\n\t if (globalThis.Handlebars === Handlebars) {\n\t globalThis.Handlebars = $Handlebars;\n\t }\n\t return Handlebars;\n\t };\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ })\n/******/ ])\n});\n;","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","module.exports = require('./umd/embedded.development.js'); // eslint-disable-line global-require\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"HelloSign\"] = factory();\n\telse\n\t\troot[\"HelloSign\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/common-tags/es/TemplateTag/TemplateTag.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/common-tags/es/TemplateTag/TemplateTag.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.object.freeze */ \"./node_modules/core-js/modules/es6.object.freeze.js\");\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\n\n\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n } // else, return a transformed end result of processing the template with our tag\n\n\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n }; // if first argument is an array, extrude it as a list of transformers\n\n\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n } // if any transformers are functions, this means they are not initiated - automatically initiate them\n\n\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n }); // return an ES2015 template tag\n\n return this.tag;\n }\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n\n return this.transformers.reduce(cb, str);\n }\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n\n return this.transformers.reduce(cb, substitution);\n }\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nvar _default = TemplateTag;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/TemplateTag/index.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/common-tags/es/TemplateTag/index.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _TemplateTag.default;\n }\n});\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ./TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/TemplateTag.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/codeBlock/index.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/common-tags/es/codeBlock/index.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _html.default;\n }\n});\n\nvar _html = _interopRequireDefault(__webpack_require__(/*! ../html */ \"./node_modules/common-tags/es/html/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/commaLists/commaLists.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/common-tags/es/commaLists/commaLists.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar commaLists = new _TemplateTag.default((0, _inlineArrayTransformer.default)({\n separator: ','\n}), _stripIndentTransformer.default, _trimResultTransformer.default);\nvar _default = commaLists;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/commaLists/index.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/common-tags/es/commaLists/index.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _commaLists.default;\n }\n});\n\nvar _commaLists = _interopRequireDefault(__webpack_require__(/*! ./commaLists */ \"./node_modules/common-tags/es/commaLists/commaLists.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar commaListsAnd = new _TemplateTag.default((0, _inlineArrayTransformer.default)({\n separator: ',',\n conjunction: 'and'\n}), _stripIndentTransformer.default, _trimResultTransformer.default);\nvar _default = commaListsAnd;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/commaListsAnd/index.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/common-tags/es/commaListsAnd/index.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _commaListsAnd.default;\n }\n});\n\nvar _commaListsAnd = _interopRequireDefault(__webpack_require__(/*! ./commaListsAnd */ \"./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/commaListsOr/commaListsOr.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/common-tags/es/commaListsOr/commaListsOr.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar commaListsOr = new _TemplateTag.default((0, _inlineArrayTransformer.default)({\n separator: ',',\n conjunction: 'or'\n}), _stripIndentTransformer.default, _trimResultTransformer.default);\nvar _default = commaListsOr;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/commaListsOr/index.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/common-tags/es/commaListsOr/index.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _commaListsOr.default;\n }\n});\n\nvar _commaListsOr = _interopRequireDefault(__webpack_require__(/*! ./commaListsOr */ \"./node_modules/common-tags/es/commaListsOr/commaListsOr.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/html/html.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/common-tags/es/html/html.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _splitStringTransformer = _interopRequireDefault(__webpack_require__(/*! ../splitStringTransformer */ \"./node_modules/common-tags/es/splitStringTransformer/index.js\"));\n\nvar _removeNonPrintingValuesTransformer = _interopRequireDefault(__webpack_require__(/*! ../removeNonPrintingValuesTransformer */ \"./node_modules/common-tags/es/removeNonPrintingValuesTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar html = new _TemplateTag.default((0, _splitStringTransformer.default)('\\n'), _removeNonPrintingValuesTransformer.default, _inlineArrayTransformer.default, _stripIndentTransformer.default, _trimResultTransformer.default);\nvar _default = html;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/html/index.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/common-tags/es/html/index.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _html.default;\n }\n});\n\nvar _html = _interopRequireDefault(__webpack_require__(/*! ./html */ \"./node_modules/common-tags/es/html/html.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/index.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/common-tags/es/index.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"TemplateTag\", {\n enumerable: true,\n get: function get() {\n return _TemplateTag2.default;\n }\n});\nObject.defineProperty(exports, \"trimResultTransformer\", {\n enumerable: true,\n get: function get() {\n return _trimResultTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"stripIndentTransformer\", {\n enumerable: true,\n get: function get() {\n return _stripIndentTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"replaceResultTransformer\", {\n enumerable: true,\n get: function get() {\n return _replaceResultTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"replaceSubstitutionTransformer\", {\n enumerable: true,\n get: function get() {\n return _replaceSubstitutionTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"replaceStringTransformer\", {\n enumerable: true,\n get: function get() {\n return _replaceStringTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"inlineArrayTransformer\", {\n enumerable: true,\n get: function get() {\n return _inlineArrayTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"splitStringTransformer\", {\n enumerable: true,\n get: function get() {\n return _splitStringTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"removeNonPrintingValuesTransformer\", {\n enumerable: true,\n get: function get() {\n return _removeNonPrintingValuesTransformer2.default;\n }\n});\nObject.defineProperty(exports, \"commaLists\", {\n enumerable: true,\n get: function get() {\n return _commaLists2.default;\n }\n});\nObject.defineProperty(exports, \"commaListsAnd\", {\n enumerable: true,\n get: function get() {\n return _commaListsAnd2.default;\n }\n});\nObject.defineProperty(exports, \"commaListsOr\", {\n enumerable: true,\n get: function get() {\n return _commaListsOr2.default;\n }\n});\nObject.defineProperty(exports, \"html\", {\n enumerable: true,\n get: function get() {\n return _html2.default;\n }\n});\nObject.defineProperty(exports, \"codeBlock\", {\n enumerable: true,\n get: function get() {\n return _codeBlock2.default;\n }\n});\nObject.defineProperty(exports, \"source\", {\n enumerable: true,\n get: function get() {\n return _source2.default;\n }\n});\nObject.defineProperty(exports, \"safeHtml\", {\n enumerable: true,\n get: function get() {\n return _safeHtml2.default;\n }\n});\nObject.defineProperty(exports, \"oneLine\", {\n enumerable: true,\n get: function get() {\n return _oneLine2.default;\n }\n});\nObject.defineProperty(exports, \"oneLineTrim\", {\n enumerable: true,\n get: function get() {\n return _oneLineTrim2.default;\n }\n});\nObject.defineProperty(exports, \"oneLineCommaLists\", {\n enumerable: true,\n get: function get() {\n return _oneLineCommaLists2.default;\n }\n});\nObject.defineProperty(exports, \"oneLineCommaListsOr\", {\n enumerable: true,\n get: function get() {\n return _oneLineCommaListsOr2.default;\n }\n});\nObject.defineProperty(exports, \"oneLineCommaListsAnd\", {\n enumerable: true,\n get: function get() {\n return _oneLineCommaListsAnd2.default;\n }\n});\nObject.defineProperty(exports, \"inlineLists\", {\n enumerable: true,\n get: function get() {\n return _inlineLists2.default;\n }\n});\nObject.defineProperty(exports, \"oneLineInlineLists\", {\n enumerable: true,\n get: function get() {\n return _oneLineInlineLists2.default;\n }\n});\nObject.defineProperty(exports, \"stripIndent\", {\n enumerable: true,\n get: function get() {\n return _stripIndent2.default;\n }\n});\nObject.defineProperty(exports, \"stripIndents\", {\n enumerable: true,\n get: function get() {\n return _stripIndents2.default;\n }\n});\n\nvar _TemplateTag2 = _interopRequireDefault(__webpack_require__(/*! ./TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _trimResultTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _stripIndentTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _replaceResultTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nvar _replaceSubstitutionTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./replaceSubstitutionTransformer */ \"./node_modules/common-tags/es/replaceSubstitutionTransformer/index.js\"));\n\nvar _replaceStringTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./replaceStringTransformer */ \"./node_modules/common-tags/es/replaceStringTransformer/index.js\"));\n\nvar _inlineArrayTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _splitStringTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./splitStringTransformer */ \"./node_modules/common-tags/es/splitStringTransformer/index.js\"));\n\nvar _removeNonPrintingValuesTransformer2 = _interopRequireDefault(__webpack_require__(/*! ./removeNonPrintingValuesTransformer */ \"./node_modules/common-tags/es/removeNonPrintingValuesTransformer/index.js\"));\n\nvar _commaLists2 = _interopRequireDefault(__webpack_require__(/*! ./commaLists */ \"./node_modules/common-tags/es/commaLists/index.js\"));\n\nvar _commaListsAnd2 = _interopRequireDefault(__webpack_require__(/*! ./commaListsAnd */ \"./node_modules/common-tags/es/commaListsAnd/index.js\"));\n\nvar _commaListsOr2 = _interopRequireDefault(__webpack_require__(/*! ./commaListsOr */ \"./node_modules/common-tags/es/commaListsOr/index.js\"));\n\nvar _html2 = _interopRequireDefault(__webpack_require__(/*! ./html */ \"./node_modules/common-tags/es/html/index.js\"));\n\nvar _codeBlock2 = _interopRequireDefault(__webpack_require__(/*! ./codeBlock */ \"./node_modules/common-tags/es/codeBlock/index.js\"));\n\nvar _source2 = _interopRequireDefault(__webpack_require__(/*! ./source */ \"./node_modules/common-tags/es/source/index.js\"));\n\nvar _safeHtml2 = _interopRequireDefault(__webpack_require__(/*! ./safeHtml */ \"./node_modules/common-tags/es/safeHtml/index.js\"));\n\nvar _oneLine2 = _interopRequireDefault(__webpack_require__(/*! ./oneLine */ \"./node_modules/common-tags/es/oneLine/index.js\"));\n\nvar _oneLineTrim2 = _interopRequireDefault(__webpack_require__(/*! ./oneLineTrim */ \"./node_modules/common-tags/es/oneLineTrim/index.js\"));\n\nvar _oneLineCommaLists2 = _interopRequireDefault(__webpack_require__(/*! ./oneLineCommaLists */ \"./node_modules/common-tags/es/oneLineCommaLists/index.js\"));\n\nvar _oneLineCommaListsOr2 = _interopRequireDefault(__webpack_require__(/*! ./oneLineCommaListsOr */ \"./node_modules/common-tags/es/oneLineCommaListsOr/index.js\"));\n\nvar _oneLineCommaListsAnd2 = _interopRequireDefault(__webpack_require__(/*! ./oneLineCommaListsAnd */ \"./node_modules/common-tags/es/oneLineCommaListsAnd/index.js\"));\n\nvar _inlineLists2 = _interopRequireDefault(__webpack_require__(/*! ./inlineLists */ \"./node_modules/common-tags/es/inlineLists/index.js\"));\n\nvar _oneLineInlineLists2 = _interopRequireDefault(__webpack_require__(/*! ./oneLineInlineLists */ \"./node_modules/common-tags/es/oneLineInlineLists/index.js\"));\n\nvar _stripIndent2 = _interopRequireDefault(__webpack_require__(/*! ./stripIndent */ \"./node_modules/common-tags/es/stripIndent/index.js\"));\n\nvar _stripIndents2 = _interopRequireDefault(__webpack_require__(/*! ./stripIndents */ \"./node_modules/common-tags/es/stripIndents/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/common-tags/es/inlineArrayTransformer/index.js ***!\n \\*********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _inlineArrayTransformer.default;\n }\n});\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ./inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js\":\n/*!**************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js ***!\n \\**************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.match */ \"./node_modules/core-js/modules/es6.regexp.match.js\");\n\nvar defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\n\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial; // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n\n\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n\n return substitution;\n }\n };\n};\n\nvar _default = inlineArrayTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/inlineLists/index.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/common-tags/es/inlineLists/index.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _inlineLists.default;\n }\n});\n\nvar _inlineLists = _interopRequireDefault(__webpack_require__(/*! ./inlineLists */ \"./node_modules/common-tags/es/inlineLists/inlineLists.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/inlineLists/inlineLists.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/common-tags/es/inlineLists/inlineLists.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar inlineLists = new _TemplateTag.default(_inlineArrayTransformer.default, _stripIndentTransformer.default, _trimResultTransformer.default);\nvar _default = inlineLists;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLine/index.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLine/index.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _oneLine.default;\n }\n});\n\nvar _oneLine = _interopRequireDefault(__webpack_require__(/*! ./oneLine */ \"./node_modules/common-tags/es/oneLine/oneLine.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLine/oneLine.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLine/oneLine.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar oneLine = new _TemplateTag.default((0, _replaceResultTransformer.default)(/(?:\\n(?:\\s*))+/g, ' '), _trimResultTransformer.default);\nvar _default = oneLine;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineCommaLists/index.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineCommaLists/index.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _oneLineCommaLists.default;\n }\n});\n\nvar _oneLineCommaLists = _interopRequireDefault(__webpack_require__(/*! ./oneLineCommaLists */ \"./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js\":\n/*!****************************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js ***!\n \\****************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar oneLineCommaLists = new _TemplateTag.default((0, _inlineArrayTransformer.default)({\n separator: ','\n}), (0, _replaceResultTransformer.default)(/(?:\\s+)/g, ' '), _trimResultTransformer.default);\nvar _default = oneLineCommaLists;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineCommaListsAnd/index.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineCommaListsAnd/index.js ***!\n \\*******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _oneLineCommaListsAnd.default;\n }\n});\n\nvar _oneLineCommaListsAnd = _interopRequireDefault(__webpack_require__(/*! ./oneLineCommaListsAnd */ \"./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js\":\n/*!**********************************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js ***!\n \\**********************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar oneLineCommaListsAnd = new _TemplateTag.default((0, _inlineArrayTransformer.default)({\n separator: ',',\n conjunction: 'and'\n}), (0, _replaceResultTransformer.default)(/(?:\\s+)/g, ' '), _trimResultTransformer.default);\nvar _default = oneLineCommaListsAnd;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineCommaListsOr/index.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineCommaListsOr/index.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _oneLineCommaListsOr.default;\n }\n});\n\nvar _oneLineCommaListsOr = _interopRequireDefault(__webpack_require__(/*! ./oneLineCommaListsOr */ \"./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js\":\n/*!********************************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js ***!\n \\********************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar oneLineCommaListsOr = new _TemplateTag.default((0, _inlineArrayTransformer.default)({\n separator: ',',\n conjunction: 'or'\n}), (0, _replaceResultTransformer.default)(/(?:\\s+)/g, ' '), _trimResultTransformer.default);\nvar _default = oneLineCommaListsOr;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineInlineLists/index.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineInlineLists/index.js ***!\n \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _oneLineInlineLists.default;\n }\n});\n\nvar _oneLineInlineLists = _interopRequireDefault(__webpack_require__(/*! ./oneLineInlineLists */ \"./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js\":\n/*!******************************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js ***!\n \\******************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar oneLineInlineLists = new _TemplateTag.default(_inlineArrayTransformer.default, (0, _replaceResultTransformer.default)(/(?:\\s+)/g, ' '), _trimResultTransformer.default);\nvar _default = oneLineInlineLists;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineTrim/index.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineTrim/index.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _oneLineTrim.default;\n }\n});\n\nvar _oneLineTrim = _interopRequireDefault(__webpack_require__(/*! ./oneLineTrim */ \"./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar oneLineTrim = new _TemplateTag.default((0, _replaceResultTransformer.default)(/(?:\\n\\s*)/g, ''), _trimResultTransformer.default);\nvar _default = oneLineTrim;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/removeNonPrintingValuesTransformer/index.js\":\n/*!*********************************************************************************!*\\\n !*** ./node_modules/common-tags/es/removeNonPrintingValuesTransformer/index.js ***!\n \\*********************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _removeNonPrintingValuesTransformer.default;\n }\n});\n\nvar _removeNonPrintingValuesTransformer = _interopRequireDefault(__webpack_require__(/*! ./removeNonPrintingValuesTransformer */ \"./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js\":\n/*!**************************************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js ***!\n \\**************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.number.constructor */ \"./node_modules/core-js/modules/es6.number.constructor.js\");\n\n__webpack_require__(/*! core-js/modules/es6.number.is-nan */ \"./node_modules/core-js/modules/es6.number.is-nan.js\");\n\nvar isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n\n if (isValidValue(substitution)) {\n return substitution;\n }\n\n return '';\n }\n };\n};\n\nvar _default = removeNonPrintingValuesTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/replaceResultTransformer/index.js\":\n/*!***********************************************************************!*\\\n !*** ./node_modules/common-tags/es/replaceResultTransformer/index.js ***!\n \\***********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _replaceResultTransformer.default;\n }\n});\n\nvar _replaceResultTransformer = _interopRequireDefault(__webpack_require__(/*! ./replaceResultTransformer */ \"./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js\":\n/*!******************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js ***!\n \\******************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\n/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nvar _default = replaceResultTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/replaceStringTransformer/index.js\":\n/*!***********************************************************************!*\\\n !*** ./node_modules/common-tags/es/replaceStringTransformer/index.js ***!\n \\***********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _replaceStringTransformer.default;\n }\n});\n\nvar _replaceStringTransformer = _interopRequireDefault(__webpack_require__(/*! ./replaceStringTransformer */ \"./node_modules/common-tags/es/replaceStringTransformer/replaceStringTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/replaceStringTransformer/replaceStringTransformer.js\":\n/*!******************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/replaceStringTransformer/replaceStringTransformer.js ***!\n \\******************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\nvar replaceStringTransformer = function replaceStringTransformer(replaceWhat, replaceWith) {\n return {\n onString: function onString(str) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceStringTransformer requires at least 2 arguments.');\n }\n\n return str.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nvar _default = replaceStringTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/replaceSubstitutionTransformer/index.js\":\n/*!*****************************************************************************!*\\\n !*** ./node_modules/common-tags/es/replaceSubstitutionTransformer/index.js ***!\n \\*****************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _replaceSubstitutionTransformer.default;\n }\n});\n\nvar _replaceSubstitutionTransformer = _interopRequireDefault(__webpack_require__(/*! ./replaceSubstitutionTransformer */ \"./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js\":\n/*!******************************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js ***!\n \\******************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.to-string */ \"./node_modules/core-js/modules/es6.regexp.to-string.js\");\n\n__webpack_require__(/*! core-js/modules/es6.date.to-string */ \"./node_modules/core-js/modules/es6.date.to-string.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\nvar replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n } // Do not touch if null or undefined\n\n\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nvar _default = replaceSubstitutionTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/safeHtml/index.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/common-tags/es/safeHtml/index.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _safeHtml.default;\n }\n});\n\nvar _safeHtml = _interopRequireDefault(__webpack_require__(/*! ./safeHtml */ \"./node_modules/common-tags/es/safeHtml/safeHtml.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/safeHtml/safeHtml.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/common-tags/es/safeHtml/safeHtml.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _inlineArrayTransformer = _interopRequireDefault(__webpack_require__(/*! ../inlineArrayTransformer */ \"./node_modules/common-tags/es/inlineArrayTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nvar _splitStringTransformer = _interopRequireDefault(__webpack_require__(/*! ../splitStringTransformer */ \"./node_modules/common-tags/es/splitStringTransformer/index.js\"));\n\nvar _replaceSubstitutionTransformer = _interopRequireDefault(__webpack_require__(/*! ../replaceSubstitutionTransformer */ \"./node_modules/common-tags/es/replaceSubstitutionTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar safeHtml = new _TemplateTag.default((0, _splitStringTransformer.default)('\\n'), _inlineArrayTransformer.default, _stripIndentTransformer.default, _trimResultTransformer.default, (0, _replaceSubstitutionTransformer.default)(/&/g, '&'), (0, _replaceSubstitutionTransformer.default)(//g, '>'), (0, _replaceSubstitutionTransformer.default)(/\"/g, '"'), (0, _replaceSubstitutionTransformer.default)(/'/g, '''), (0, _replaceSubstitutionTransformer.default)(/`/g, '`'));\nvar _default = safeHtml;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/source/index.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/common-tags/es/source/index.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _html.default;\n }\n});\n\nvar _html = _interopRequireDefault(__webpack_require__(/*! ../html */ \"./node_modules/common-tags/es/html/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/splitStringTransformer/index.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/common-tags/es/splitStringTransformer/index.js ***!\n \\*********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _splitStringTransformer.default;\n }\n});\n\nvar _splitStringTransformer = _interopRequireDefault(__webpack_require__(/*! ./splitStringTransformer */ \"./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js\":\n/*!**************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js ***!\n \\**************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.split */ \"./node_modules/core-js/modules/es6.regexp.split.js\");\n\n__webpack_require__(/*! core-js/modules/es7.array.includes */ \"./node_modules/core-js/modules/es7.array.includes.js\");\n\n__webpack_require__(/*! core-js/modules/es6.string.includes */ \"./node_modules/core-js/modules/es6.string.includes.js\");\n\nvar splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n\n return substitution;\n }\n };\n};\n\nvar _default = splitStringTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/stripIndent/index.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/common-tags/es/stripIndent/index.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _stripIndent.default;\n }\n});\n\nvar _stripIndent = _interopRequireDefault(__webpack_require__(/*! ./stripIndent */ \"./node_modules/common-tags/es/stripIndent/stripIndent.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/stripIndent/stripIndent.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/common-tags/es/stripIndent/stripIndent.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar stripIndent = new _TemplateTag.default(_stripIndentTransformer.default, _trimResultTransformer.default);\nvar _default = stripIndent;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/common-tags/es/stripIndentTransformer/index.js ***!\n \\*********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _stripIndentTransformer.default;\n }\n});\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ./stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js\":\n/*!**************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js ***!\n \\**************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.constructor */ \"./node_modules/core-js/modules/es6.regexp.constructor.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.match */ \"./node_modules/core-js/modules/es6.regexp.match.js\");\n\n__webpack_require__(/*! core-js/modules/es6.string.iterator */ \"./node_modules/core-js/modules/es6.string.iterator.js\");\n\n__webpack_require__(/*! core-js/modules/es6.array.from */ \"./node_modules/core-js/modules/es6.array.from.js\");\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\n\n\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n\n return endResult;\n }\n\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nvar _default = stripIndentTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/stripIndents/index.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/common-tags/es/stripIndents/index.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _stripIndents.default;\n }\n});\n\nvar _stripIndents = _interopRequireDefault(__webpack_require__(/*! ./stripIndents */ \"./node_modules/common-tags/es/stripIndents/stripIndents.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/stripIndents/stripIndents.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/common-tags/es/stripIndents/stripIndents.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _TemplateTag = _interopRequireDefault(__webpack_require__(/*! ../TemplateTag */ \"./node_modules/common-tags/es/TemplateTag/index.js\"));\n\nvar _stripIndentTransformer = _interopRequireDefault(__webpack_require__(/*! ../stripIndentTransformer */ \"./node_modules/common-tags/es/stripIndentTransformer/index.js\"));\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ../trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar stripIndents = new _TemplateTag.default((0, _stripIndentTransformer.default)('all'), _trimResultTransformer.default);\nvar _default = stripIndents;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/trimResultTransformer/index.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/common-tags/es/trimResultTransformer/index.js ***!\n \\********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _trimResultTransformer.default;\n }\n});\n\nvar _trimResultTransformer = _interopRequireDefault(__webpack_require__(/*! ./trimResultTransformer */ \"./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n\n/***/ \"./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js\":\n/*!************************************************************************************!*\\\n !*** ./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js ***!\n \\************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\n/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nvar _default = trimResultTransformer;\nexports.default = _default;\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_a-function.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_a-function.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_add-to-unscopables.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/_add-to-unscopables.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_advance-string-index.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/_advance-string-index.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(/*! ./_string-at */ \"./node_modules/core-js/modules/_string-at.js\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_an-object.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_an-object.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_array-includes.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/_array-includes.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/core-js/modules/_to-iobject.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/core-js/modules/_to-length.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ \"./node_modules/core-js/modules/_to-absolute-index.js\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_classof.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/modules/_classof.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/core-js/modules/_cof.js\");\nvar TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_cof.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/core-js/modules/_cof.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_core.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/modules/_core.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_create-property.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/_create-property.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/core-js/modules/_property-desc.js\");\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_ctx.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/core-js/modules/_ctx.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(/*! ./_a-function */ \"./node_modules/core-js/modules/_a-function.js\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_defined.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/modules/_defined.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_descriptors.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_descriptors.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_dom-create.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_dom-create.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar document = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_enum-bug-keys.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/_enum-bug-keys.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_enum-keys.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_enum-keys.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/modules/_object-keys.js\");\nvar gOPS = __webpack_require__(/*! ./_object-gops */ \"./node_modules/core-js/modules/_object-gops.js\");\nvar pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/core-js/modules/_object-pie.js\");\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_export.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/core-js/modules/_export.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/core-js/modules/_core.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\");\nvar ctx = __webpack_require__(/*! ./_ctx */ \"./node_modules/core-js/modules/_ctx.js\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_fails-is-regexp.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/_fails-is-regexp.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_fails.js\":\n/*!************************************************!*\\\n !*** ./node_modules/core-js/modules/_fails.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_fix-re-wks.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_fix-re-wks.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(/*! ./es6.regexp.exec */ \"./node_modules/core-js/modules/es6.regexp.exec.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\");\nvar fails = __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/core-js/modules/_defined.js\");\nvar wks = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\");\nvar regexpExec = __webpack_require__(/*! ./_regexp-exec */ \"./node_modules/core-js/modules/_regexp-exec.js\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_flags.js\":\n/*!************************************************!*\\\n !*** ./node_modules/core-js/modules/_flags.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_function-to-string.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/_function-to-string.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! ./_shared */ \"./node_modules/core-js/modules/_shared.js\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_global.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/core-js/modules/_global.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_has.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/core-js/modules/_has.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_hide.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/modules/_hide.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/core-js/modules/_property-desc.js\");\nmodule.exports = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_html.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/modules/_html.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_ie8-dom-define.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/_ie8-dom-define.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") && !__webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\")(function () {\n return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ \"./node_modules/core-js/modules/_dom-create.js\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_inherit-if-required.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/modules/_inherit-if-required.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar setPrototypeOf = __webpack_require__(/*! ./_set-proto */ \"./node_modules/core-js/modules/_set-proto.js\").set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iobject.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/modules/_iobject.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/core-js/modules/_cof.js\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_is-array-iter.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/_is-array-iter.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/core-js/modules/_iterators.js\");\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_is-array.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/modules/_is-array.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/core-js/modules/_cof.js\");\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_is-object.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_is-object.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_is-regexp.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_is-regexp.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/core-js/modules/_cof.js\");\nvar MATCH = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iter-call.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_iter-call.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iter-create.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_iter-create.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(/*! ./_object-create */ \"./node_modules/core-js/modules/_object-create.js\");\nvar descriptor = __webpack_require__(/*! ./_property-desc */ \"./node_modules/core-js/modules/_property-desc.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/core-js/modules/_set-to-string-tag.js\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\")(IteratorPrototype, __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iter-define.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_iter-define.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(/*! ./_library */ \"./node_modules/core-js/modules/_library.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/core-js/modules/_iterators.js\");\nvar $iterCreate = __webpack_require__(/*! ./_iter-create */ \"./node_modules/core-js/modules/_iter-create.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/core-js/modules/_set-to-string-tag.js\");\nvar getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ \"./node_modules/core-js/modules/_object-gpo.js\");\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iter-detect.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_iter-detect.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iter-step.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_iter-step.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_iterators.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_iterators.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_library.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/modules/_library.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_meta.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/modules/_meta.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(/*! ./_uid */ \"./node_modules/core-js/modules/_uid.js\")('meta');\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar setDesc = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\")(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-create.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-create.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar dPs = __webpack_require__(/*! ./_object-dps */ \"./node_modules/core-js/modules/_object-dps.js\");\nvar enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/core-js/modules/_enum-bug-keys.js\");\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/core-js/modules/_shared-key.js\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(/*! ./_dom-create */ \"./node_modules/core-js/modules/_dom-create.js\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(/*! ./_html */ \"./node_modules/core-js/modules/_html.js\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-dp.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-dp.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ \"./node_modules/core-js/modules/_ie8-dom-define.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/core-js/modules/_to-primitive.js\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-dps.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-dps.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/modules/_object-keys.js\");\n\nmodule.exports = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-gopd.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-gopd.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(/*! ./_object-pie */ \"./node_modules/core-js/modules/_object-pie.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/core-js/modules/_property-desc.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/core-js/modules/_to-iobject.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/core-js/modules/_to-primitive.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ \"./node_modules/core-js/modules/_ie8-dom-define.js\");\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-gopn-ext.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-gopn-ext.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/core-js/modules/_to-iobject.js\");\nvar gOPN = __webpack_require__(/*! ./_object-gopn */ \"./node_modules/core-js/modules/_object-gopn.js\").f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-gopn.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-gopn.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(/*! ./_object-keys-internal */ \"./node_modules/core-js/modules/_object-keys-internal.js\");\nvar hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/core-js/modules/_enum-bug-keys.js\").concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-gops.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-gops.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-gpo.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-gpo.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/core-js/modules/_to-object.js\");\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/core-js/modules/_shared-key.js\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-keys-internal.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-keys-internal.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/core-js/modules/_to-iobject.js\");\nvar arrayIndexOf = __webpack_require__(/*! ./_array-includes */ \"./node_modules/core-js/modules/_array-includes.js\")(false);\nvar IE_PROTO = __webpack_require__(/*! ./_shared-key */ \"./node_modules/core-js/modules/_shared-key.js\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-keys.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-keys.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(/*! ./_object-keys-internal */ \"./node_modules/core-js/modules/_object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ \"./node_modules/core-js/modules/_enum-bug-keys.js\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-pie.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-pie.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_object-sap.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_object-sap.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/core-js/modules/_core.js\");\nvar fails = __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_property-desc.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/_property-desc.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_redefine.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/modules/_redefine.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar SRC = __webpack_require__(/*! ./_uid */ \"./node_modules/core-js/modules/_uid.js\")('src');\nvar $toString = __webpack_require__(/*! ./_function-to-string */ \"./node_modules/core-js/modules/_function-to-string.js\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(/*! ./_core */ \"./node_modules/core-js/modules/_core.js\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_regexp-exec-abstract.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/_regexp-exec-abstract.js ***!\n \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(/*! ./_classof */ \"./node_modules/core-js/modules/_classof.js\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_regexp-exec.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_regexp-exec.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(/*! ./_flags */ \"./node_modules/core-js/modules/_flags.js\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_same-value.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_same-value.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_set-proto.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_set-proto.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = __webpack_require__(/*! ./_ctx */ \"./node_modules/core-js/modules/_ctx.js\")(Function.call, __webpack_require__(/*! ./_object-gopd */ \"./node_modules/core-js/modules/_object-gopd.js\").f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_set-species.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_set-species.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\");\nvar SPECIES = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_set-to-string-tag.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/_set-to-string-tag.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f;\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar TAG = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_shared-key.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_shared-key.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(/*! ./_shared */ \"./node_modules/core-js/modules/_shared.js\")('keys');\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/core-js/modules/_uid.js\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_shared.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/core-js/modules/_shared.js ***!\n \\*************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/core-js/modules/_core.js\");\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(/*! ./_library */ \"./node_modules/core-js/modules/_library.js\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_species-constructor.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/modules/_species-constructor.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar aFunction = __webpack_require__(/*! ./_a-function */ \"./node_modules/core-js/modules/_a-function.js\");\nvar SPECIES = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_string-at.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_string-at.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/core-js/modules/_to-integer.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/core-js/modules/_defined.js\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_string-context.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/_string-context.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(/*! ./_is-regexp */ \"./node_modules/core-js/modules/_is-regexp.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/core-js/modules/_defined.js\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_string-trim.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/_string-trim.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/core-js/modules/_defined.js\");\nvar fails = __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\");\nvar spaces = __webpack_require__(/*! ./_string-ws */ \"./node_modules/core-js/modules/_string-ws.js\");\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_string-ws.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_string-ws.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_to-absolute-index.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/_to-absolute-index.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/core-js/modules/_to-integer.js\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_to-integer.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_to-integer.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_to-iobject.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_to-iobject.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(/*! ./_iobject */ \"./node_modules/core-js/modules/_iobject.js\");\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/core-js/modules/_defined.js\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_to-length.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_to-length.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/core-js/modules/_to-integer.js\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_to-object.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/_to-object.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(/*! ./_defined */ \"./node_modules/core-js/modules/_defined.js\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_to-primitive.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/modules/_to-primitive.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_uid.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/core-js/modules/_uid.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_wks-define.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/modules/_wks-define.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar core = __webpack_require__(/*! ./_core */ \"./node_modules/core-js/modules/_core.js\");\nvar LIBRARY = __webpack_require__(/*! ./_library */ \"./node_modules/core-js/modules/_library.js\");\nvar wksExt = __webpack_require__(/*! ./_wks-ext */ \"./node_modules/core-js/modules/_wks-ext.js\");\nvar defineProperty = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_wks-ext.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/modules/_wks-ext.js ***!\n \\**************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.f = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\");\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/_wks.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/core-js/modules/_wks.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(/*! ./_shared */ \"./node_modules/core-js/modules/_shared.js\")('wks');\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/core-js/modules/_uid.js\");\nvar Symbol = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/core.get-iterator-method.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/core-js/modules/core.get-iterator-method.js ***!\n \\******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(/*! ./_classof */ \"./node_modules/core-js/modules/_classof.js\");\nvar ITERATOR = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('iterator');\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/core-js/modules/_iterators.js\");\nmodule.exports = __webpack_require__(/*! ./_core */ \"./node_modules/core-js/modules/_core.js\").getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.array.from.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.array.from.js ***!\n \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(/*! ./_ctx */ \"./node_modules/core-js/modules/_ctx.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/core-js/modules/_to-object.js\");\nvar call = __webpack_require__(/*! ./_iter-call */ \"./node_modules/core-js/modules/_iter-call.js\");\nvar isArrayIter = __webpack_require__(/*! ./_is-array-iter */ \"./node_modules/core-js/modules/_is-array-iter.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/core-js/modules/_to-length.js\");\nvar createProperty = __webpack_require__(/*! ./_create-property */ \"./node_modules/core-js/modules/_create-property.js\");\nvar getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ \"./node_modules/core-js/modules/core.get-iterator-method.js\");\n\n$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ \"./node_modules/core-js/modules/_iter-detect.js\")(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.array.iterator.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.array.iterator.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ \"./node_modules/core-js/modules/_add-to-unscopables.js\");\nvar step = __webpack_require__(/*! ./_iter-step */ \"./node_modules/core-js/modules/_iter-step.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/core-js/modules/_iterators.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/core-js/modules/_to-iobject.js\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(/*! ./_iter-define */ \"./node_modules/core-js/modules/_iter-define.js\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.date.to-string.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.date.to-string.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\")(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.function.name.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.function.name.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.number.constructor.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.number.constructor.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar cof = __webpack_require__(/*! ./_cof */ \"./node_modules/core-js/modules/_cof.js\");\nvar inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ \"./node_modules/core-js/modules/_inherit-if-required.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/core-js/modules/_to-primitive.js\");\nvar fails = __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\");\nvar gOPN = __webpack_require__(/*! ./_object-gopn */ \"./node_modules/core-js/modules/_object-gopn.js\").f;\nvar gOPD = __webpack_require__(/*! ./_object-gopd */ \"./node_modules/core-js/modules/_object-gopd.js\").f;\nvar dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f;\nvar $trim = __webpack_require__(/*! ./_string-trim */ \"./node_modules/core-js/modules/_string-trim.js\").trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(__webpack_require__(/*! ./_object-create */ \"./node_modules/core-js/modules/_object-create.js\")(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\")(global, NUMBER, $Number);\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.number.is-nan.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.number.is-nan.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.1.2.4 Number.isNaN(number)\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.object.freeze.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.object.freeze.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.5 Object.freeze(O)\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar meta = __webpack_require__(/*! ./_meta */ \"./node_modules/core-js/modules/_meta.js\").onFreeze;\n\n__webpack_require__(/*! ./_object-sap */ \"./node_modules/core-js/modules/_object-sap.js\")('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.object.keys.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.object.keys.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/core-js/modules/_to-object.js\");\nvar $keys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/modules/_object-keys.js\");\n\n__webpack_require__(/*! ./_object-sap */ \"./node_modules/core-js/modules/_object-sap.js\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.object.set-prototype-of.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.object.set-prototype-of.js ***!\n \\*********************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\n$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ \"./node_modules/core-js/modules/_set-proto.js\").set });\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.reflect.get.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.reflect.get.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = __webpack_require__(/*! ./_object-gopd */ \"./node_modules/core-js/modules/_object-gopd.js\");\nvar getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ \"./node_modules/core-js/modules/_object-gpo.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.constructor.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.constructor.js ***!\n \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ \"./node_modules/core-js/modules/_inherit-if-required.js\");\nvar dP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f;\nvar gOPN = __webpack_require__(/*! ./_object-gopn */ \"./node_modules/core-js/modules/_object-gopn.js\").f;\nvar isRegExp = __webpack_require__(/*! ./_is-regexp */ \"./node_modules/core-js/modules/_is-regexp.js\");\nvar $flags = __webpack_require__(/*! ./_flags */ \"./node_modules/core-js/modules/_flags.js\");\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (__webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") && (!CORRECT_NEW || __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\")(function () {\n re2[__webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\")('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\")(global, 'RegExp', $RegExp);\n}\n\n__webpack_require__(/*! ./_set-species */ \"./node_modules/core-js/modules/_set-species.js\")('RegExp');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.exec.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.exec.js ***!\n \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(/*! ./_regexp-exec */ \"./node_modules/core-js/modules/_regexp-exec.js\");\n__webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.flags.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.flags.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 21.2.5.3 get RegExp.prototype.flags()\nif (__webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\").f(RegExp.prototype, 'flags', {\n configurable: true,\n get: __webpack_require__(/*! ./_flags */ \"./node_modules/core-js/modules/_flags.js\")\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.match.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.match.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/core-js/modules/_to-length.js\");\nvar advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ \"./node_modules/core-js/modules/_advance-string-index.js\");\nvar regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ \"./node_modules/core-js/modules/_regexp-exec-abstract.js\");\n\n// @@match logic\n__webpack_require__(/*! ./_fix-re-wks */ \"./node_modules/core-js/modules/_fix-re-wks.js\")('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.replace.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.replace.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar toObject = __webpack_require__(/*! ./_to-object */ \"./node_modules/core-js/modules/_to-object.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/core-js/modules/_to-length.js\");\nvar toInteger = __webpack_require__(/*! ./_to-integer */ \"./node_modules/core-js/modules/_to-integer.js\");\nvar advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ \"./node_modules/core-js/modules/_advance-string-index.js\");\nvar regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ \"./node_modules/core-js/modules/_regexp-exec-abstract.js\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(/*! ./_fix-re-wks */ \"./node_modules/core-js/modules/_fix-re-wks.js\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.search.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.search.js ***!\n \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar sameValue = __webpack_require__(/*! ./_same-value */ \"./node_modules/core-js/modules/_same-value.js\");\nvar regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ \"./node_modules/core-js/modules/_regexp-exec-abstract.js\");\n\n// @@search logic\n__webpack_require__(/*! ./_fix-re-wks */ \"./node_modules/core-js/modules/_fix-re-wks.js\")('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.split.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.split.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __webpack_require__(/*! ./_is-regexp */ \"./node_modules/core-js/modules/_is-regexp.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar speciesConstructor = __webpack_require__(/*! ./_species-constructor */ \"./node_modules/core-js/modules/_species-constructor.js\");\nvar advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ \"./node_modules/core-js/modules/_advance-string-index.js\");\nvar toLength = __webpack_require__(/*! ./_to-length */ \"./node_modules/core-js/modules/_to-length.js\");\nvar callRegExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ \"./node_modules/core-js/modules/_regexp-exec-abstract.js\");\nvar regexpExec = __webpack_require__(/*! ./_regexp-exec */ \"./node_modules/core-js/modules/_regexp-exec.js\");\nvar fails = __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\");\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\n__webpack_require__(/*! ./_fix-re-wks */ \"./node_modules/core-js/modules/_fix-re-wks.js\")('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.regexp.to-string.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.regexp.to-string.js ***!\n \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(/*! ./es6.regexp.flags */ \"./node_modules/core-js/modules/es6.regexp.flags.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar $flags = __webpack_require__(/*! ./_flags */ \"./node_modules/core-js/modules/_flags.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\");\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\")(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (__webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\")(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.string.includes.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.string.includes.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar context = __webpack_require__(/*! ./_string-context */ \"./node_modules/core-js/modules/_string-context.js\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ \"./node_modules/core-js/modules/_fails-is-regexp.js\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.string.iterator.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.string.iterator.js ***!\n \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(/*! ./_string-at */ \"./node_modules/core-js/modules/_string-at.js\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(/*! ./_iter-define */ \"./node_modules/core-js/modules/_iter-define.js\")(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es6.symbol.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/modules/es6.symbol.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar has = __webpack_require__(/*! ./_has */ \"./node_modules/core-js/modules/_has.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ \"./node_modules/core-js/modules/_descriptors.js\");\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\");\nvar META = __webpack_require__(/*! ./_meta */ \"./node_modules/core-js/modules/_meta.js\").KEY;\nvar $fails = __webpack_require__(/*! ./_fails */ \"./node_modules/core-js/modules/_fails.js\");\nvar shared = __webpack_require__(/*! ./_shared */ \"./node_modules/core-js/modules/_shared.js\");\nvar setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ \"./node_modules/core-js/modules/_set-to-string-tag.js\");\nvar uid = __webpack_require__(/*! ./_uid */ \"./node_modules/core-js/modules/_uid.js\");\nvar wks = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\");\nvar wksExt = __webpack_require__(/*! ./_wks-ext */ \"./node_modules/core-js/modules/_wks-ext.js\");\nvar wksDefine = __webpack_require__(/*! ./_wks-define */ \"./node_modules/core-js/modules/_wks-define.js\");\nvar enumKeys = __webpack_require__(/*! ./_enum-keys */ \"./node_modules/core-js/modules/_enum-keys.js\");\nvar isArray = __webpack_require__(/*! ./_is-array */ \"./node_modules/core-js/modules/_is-array.js\");\nvar anObject = __webpack_require__(/*! ./_an-object */ \"./node_modules/core-js/modules/_an-object.js\");\nvar isObject = __webpack_require__(/*! ./_is-object */ \"./node_modules/core-js/modules/_is-object.js\");\nvar toIObject = __webpack_require__(/*! ./_to-iobject */ \"./node_modules/core-js/modules/_to-iobject.js\");\nvar toPrimitive = __webpack_require__(/*! ./_to-primitive */ \"./node_modules/core-js/modules/_to-primitive.js\");\nvar createDesc = __webpack_require__(/*! ./_property-desc */ \"./node_modules/core-js/modules/_property-desc.js\");\nvar _create = __webpack_require__(/*! ./_object-create */ \"./node_modules/core-js/modules/_object-create.js\");\nvar gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ \"./node_modules/core-js/modules/_object-gopn-ext.js\");\nvar $GOPD = __webpack_require__(/*! ./_object-gopd */ \"./node_modules/core-js/modules/_object-gopd.js\");\nvar $DP = __webpack_require__(/*! ./_object-dp */ \"./node_modules/core-js/modules/_object-dp.js\");\nvar $keys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/modules/_object-keys.js\");\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(/*! ./_object-gopn */ \"./node_modules/core-js/modules/_object-gopn.js\").f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(/*! ./_object-pie */ \"./node_modules/core-js/modules/_object-pie.js\").f = $propertyIsEnumerable;\n __webpack_require__(/*! ./_object-gops */ \"./node_modules/core-js/modules/_object-gops.js\").f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ \"./node_modules/core-js/modules/_library.js\")) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es7.array.includes.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es7.array.includes.js ***!\n \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(/*! ./_export */ \"./node_modules/core-js/modules/_export.js\");\nvar $includes = __webpack_require__(/*! ./_array-includes */ \"./node_modules/core-js/modules/_array-includes.js\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(/*! ./_add-to-unscopables */ \"./node_modules/core-js/modules/_add-to-unscopables.js\")('includes');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es7.symbol.async-iterator.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/modules/es7.symbol.async-iterator.js ***!\n \\*******************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(/*! ./_wks-define */ \"./node_modules/core-js/modules/_wks-define.js\")('asyncIterator');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/web.dom.iterable.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/web.dom.iterable.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(/*! ./es6.array.iterator */ \"./node_modules/core-js/modules/es6.array.iterator.js\");\nvar getKeys = __webpack_require__(/*! ./_object-keys */ \"./node_modules/core-js/modules/_object-keys.js\");\nvar redefine = __webpack_require__(/*! ./_redefine */ \"./node_modules/core-js/modules/_redefine.js\");\nvar global = __webpack_require__(/*! ./_global */ \"./node_modules/core-js/modules/_global.js\");\nvar hide = __webpack_require__(/*! ./_hide */ \"./node_modules/core-js/modules/_hide.js\");\nvar Iterators = __webpack_require__(/*! ./_iterators */ \"./node_modules/core-js/modules/_iterators.js\");\nvar wks = __webpack_require__(/*! ./_wks */ \"./node_modules/core-js/modules/_wks.js\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/sass/embedded.scss\":\n/*!***************************************************************************************************************!*\\\n !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/lib/loader.js!./src/sass/embedded.scss ***!\n \\***************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.i, \".x-hellosign-embedded {\\n height: 100%; }\\n .x-hellosign-embedded--in-modal {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n z-index: 9997; }\\n\\n.x-hellosign-embedded__modal-screen {\\n display: block;\\n background-color: rgba(0, 0, 0, 0.5);\\n position: absolute;\\n top: 0;\\n left: 0;\\n height: 100%;\\n width: 100%; }\\n @media only screen and (max-width: 767px), only screen and (max-width: 900px) and (min-aspect-ratio: 16 / 9) {\\n .x-hellosign-embedded__modal-screen {\\n display: none; } }\\n\\n.x-hellosign-embedded__modal-content {\\n box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.25);\\n position: absolute;\\n top: 5vh;\\n left: 50%;\\n transform: translateX(-50%);\\n height: 90vh;\\n min-height: 400px;\\n width: 80vw;\\n min-width: 512px;\\n max-width: 1024px; }\\n @media only screen and (max-width: 767px), only screen and (max-width: 900px) and (min-aspect-ratio: 16 / 9) {\\n .x-hellosign-embedded__modal-content {\\n overflow: hidden;\\n box-shadow: none;\\n height: 100%;\\n min-height: 0;\\n width: 100%;\\n min-width: 0;\\n transform: none;\\n left: 0;\\n top: 0; } }\\n\\n.x-hellosign-embedded__modal-close {\\n position: absolute;\\n top: 0;\\n right: -60px;\\n height: 40px;\\n width: 40px; }\\n @media only screen and (max-width: 767px), only screen and (max-width: 900px) and (min-aspect-ratio: 16 / 9) {\\n .x-hellosign-embedded__modal-close {\\n display: none; } }\\n\\n.x-hellosign-embedded__modal-close-button {\\n -webkit-appearance: none;\\n height: 100%;\\n width: 100%;\\n border: none;\\n background-color: #1A1A1A;\\n transition: background-color 0.35s ease;\\n will-change: background-color;\\n box-shadow: 0px 3px 9px 0px rgba(0, 0, 0, 0.25);\\n cursor: pointer;\\n padding: 20px; }\\n .x-hellosign-embedded__modal-close-button:hover {\\n background-color: #4E4E4E; }\\n .x-hellosign-embedded__modal-close-button::before, .x-hellosign-embedded__modal-close-button::after {\\n content: '';\\n position: absolute;\\n width: 1px;\\n background-color: white;\\n height: 20px;\\n top: 10px; }\\n .x-hellosign-embedded__modal-close-button::before {\\n transform: rotateZ(45deg); }\\n .x-hellosign-embedded__modal-close-button::after {\\n transform: rotateZ(-45deg); }\\n\\n.x-hellosign-embedded__iframe {\\n min-height: 400px;\\n background-color: #F7F8F9;\\n height: 100%;\\n border: none;\\n min-width: 100%;\\n width: 100px;\\n *width: 100%; }\\n\", \"\"]);\n\n\n\n/***/ }),\n\n/***/ \"./node_modules/css-loader/dist/runtime/api.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/css-loader/dist/runtime/api.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return '@media ' + item[2] + '{' + content + '}';\n } else {\n return content;\n }\n }).join('');\n }; // import a list of modules into the list\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (i = 0; i < modules.length; i++) {\n var item = modules[i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || '';\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n return '/*# ' + data + ' */';\n}\n\n/***/ }),\n\n/***/ \"./node_modules/debug/node_modules/ms/index.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/debug/node_modules/ms/index.js ***!\n \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! core-js/modules/es7.symbol.async-iterator */ \"./node_modules/core-js/modules/es7.symbol.async-iterator.js\");\n\n__webpack_require__(/*! core-js/modules/es6.symbol */ \"./node_modules/core-js/modules/es6.symbol.js\");\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Helpers.\n */\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n\n var type = _typeof(val);\n\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n\nfunction parse(str) {\n str = String(str);\n\n if (str.length > 100) {\n return;\n }\n\n var match = /^((?:\\d+)?\\-?\\d?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);\n\n if (!match) {\n return;\n }\n\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n\n return ms + 'ms';\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n\n return ms + ' ms';\n}\n/**\n * Pluralization helper.\n */\n\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n\n/***/ }),\n\n/***/ \"./node_modules/debug/src/browser.js\":\n/*!*******************************************!*\\\n !*** ./node_modules/debug/src/browser.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\n__webpack_require__(/*! core-js/modules/es7.symbol.async-iterator */ \"./node_modules/core-js/modules/es7.symbol.async-iterator.js\");\n\n__webpack_require__(/*! core-js/modules/es6.symbol */ \"./node_modules/core-js/modules/es6.symbol.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.constructor */ \"./node_modules/core-js/modules/es6.regexp.constructor.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.match */ \"./node_modules/core-js/modules/es6.regexp.match.js\");\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n var _console;\n\n // This hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return (typeof console === \"undefined\" ? \"undefined\" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {} // Swallow\n // XXX (@Qix-) should we be logging these?\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = __webpack_require__(/*! ./common */ \"./node_modules/debug/src/common.js\")(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n/***/ }),\n\n/***/ \"./node_modules/debug/src/common.js\":\n/*!******************************************!*\\\n !*** ./node_modules/debug/src/common.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(/*! core-js/modules/es6.string.iterator */ \"./node_modules/core-js/modules/es6.string.iterator.js\");\n\n__webpack_require__(/*! core-js/modules/es6.array.from */ \"./node_modules/core-js/modules/es6.array.from.js\");\n\n__webpack_require__(/*! core-js/modules/es7.symbol.async-iterator */ \"./node_modules/core-js/modules/es7.symbol.async-iterator.js\");\n\n__webpack_require__(/*! core-js/modules/es6.symbol */ \"./node_modules/core-js/modules/es6.symbol.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.to-string */ \"./node_modules/core-js/modules/es6.regexp.to-string.js\");\n\n__webpack_require__(/*! core-js/modules/es6.date.to-string */ \"./node_modules/core-js/modules/es6.date.to-string.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.constructor */ \"./node_modules/core-js/modules/es6.regexp.constructor.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.split */ \"./node_modules/core-js/modules/es6.regexp.split.js\");\n\n__webpack_require__(/*! core-js/modules/es6.regexp.replace */ \"./node_modules/core-js/modules/es6.regexp.replace.js\");\n\n__webpack_require__(/*! core-js/modules/es6.number.constructor */ \"./node_modules/core-js/modules/es6.number.constructor.js\");\n\n__webpack_require__(/*! core-js/modules/es6.array.iterator */ \"./node_modules/core-js/modules/es6.array.iterator.js\");\n\n__webpack_require__(/*! core-js/modules/es6.object.keys */ \"./node_modules/core-js/modules/es6.object.keys.js\");\n\n__webpack_require__(/*! core-js/modules/web.dom.iterable */ \"./node_modules/core-js/modules/web.dom.iterable.js\");\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = __webpack_require__(/*! ms */ \"./node_modules/debug/node_modules/ms/index.js\");\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * Active `debug` instances.\n */\n\n createDebug.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n\n function debug() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return match;\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = createDebug.enabled(namespace);\n debug.useColors = createDebug.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n debug.extend = extend; // Debug.formatArgs = formatArgs;\n // debug.rawLog = rawLog;\n // env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n createDebug.instances.push(debug);\n return debug;\n }\n\n function destroy() {\n var index = createDebug.instances.indexOf(this);\n\n if (index !== -1) {\n createDebug.instances.splice(index, 1);\n return true;\n }\n\n return false;\n }\n\n function extend(namespace, delimiter) {\n var newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n newDebug.log = this.log;\n return newDebug;\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < createDebug.instances.length; i++) {\n var instance = createDebug.instances[i];\n instance.enabled = createDebug.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @return {String} namespaces\n * @api public\n */\n\n\n function disable() {\n var namespaces = [].concat(_toConsumableArray(createDebug.names.map(toNamespace)), _toConsumableArray(createDebug.skips.map(toNamespace).map(function (namespace) {\n return '-' + namespace;\n }))).join(',');\n createDebug.enable('');\n return namespaces;\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Convert regexp to namespace\n *\n * @param {RegExp} regxep\n * @return {String} namespace\n * @api private\n */\n\n\n function toNamespace(regexp) {\n return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\\.\\*\\?$/, '*');\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;\n\n/***/ }),\n\n/***/ \"./node_modules/process/browser.js\":\n/*!*****************************************!*\\\n !*** ./node_modules/process/browser.js ***!\n \\*****************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n\n/***/ \"./node_modules/style-loader/lib/addStyles.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/style-loader/lib/addStyles.js ***!\n \\****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(/*! ./urls */ \"./node_modules/style-loader/lib/urls.js\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of
    Unique attorneys messaged:\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"UniqueAttorneyMessageCount\") || (depth0 != null ? lookupProperty(depth0,\"UniqueAttorneyMessageCount\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"UniqueAttorneyMessageCount\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":8},\"end\":{\"line\":4,\"column\":38}}}) : helper)))\n + \"
    Calls scheduled / requested:\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"ScheduledCallsCount\") || (depth0 != null ? lookupProperty(depth0,\"ScheduledCallsCount\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"ScheduledCallsCount\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":8},\"end\":{\"line\":8,\"column\":31}}}) : helper)))\n + \"
    Bogus jobs count:\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"BogusJobsCount\") || (depth0 != null ? lookupProperty(depth0,\"BogusJobsCount\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"BogusJobsCount\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":12,\"column\":8},\"end\":{\"line\":12,\"column\":26}}}) : helper)))\n + \"
    \\n \"\n + alias4(((helper = (helper = lookupProperty(helpers,\"Name\") || (depth0 != null ? lookupProperty(depth0,\"Name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"Name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":41},\"end\":{\"line\":4,\"column\":49}}}) : helper)))\n + \"\\n \\n Edit\\n - \\n Delete\\n