{"version":3,"sources":["webpack:///0.bundle.js","webpack:///./views/views/Xb/BorrowerDashboard/BorrowerDashboardView.js","webpack:///./views/views/Xb/Checkout/CheckoutView.js","webpack:///./views/views/Lend/LendView.js","webpack:///./views/views/Xb/Messages/MessagesView.js","webpack:///./views/views/Xb/Portfolio/PortfolioView.js","webpack:///./views/views/Account/AccountNavSubView.js","webpack:///./views/views/Settings/SettingsView.js","webpack:///./views/views/Team/TeamActivityView.js","webpack:///./views/views/Xb/Trustee/TrusteeListingView.js","webpack:///./views/views/Account/AccountView.js","webpack:////kiva/httpdocs/views/Loan/LoanConditionsSubView.js","webpack:////kiva/httpdocs/views/Loan/LoanEditorBarSubView.js","webpack:////kiva/httpdocs/views/Loan/LoanInfoBarSubView.js","webpack:///./views/views/Xb/Portfolio/CTASubView.js","webpack:///./modules/BorrowerDashboardModule.js","webpack:///./modules/CheckoutModule.js","webpack:///./modules/LendModule.js","webpack:///./modules/MessagesModule.js","webpack:///./modules/PortfolioModule.js","webpack:///./modules/SettingsModule.js","webpack:///./modules/TeamActivityModule.js","webpack:///./modules/TrusteeModule.js","webpack:///./views/views/Community/Team/TeamMembersView.js","webpack:///./views/views/Portfolio/CollectionView.js","webpack:///./views/views/Xb/Loan/LoanView.js","webpack:///./views/views/Xb/LoansNearMe/LoansNearMeView.js","webpack:///./views/views/Xb/Portfolio/DepositView.js","webpack:///./views/views/Xb/Portfolio/DonationsView.js","webpack:///./views/views/Xb/Portfolio/OverviewView.js","webpack:///./views/views/Xb/Portfolio/WithdrawCreditView.js","webpack:////kiva/sites/www_kiva/node_modules/moment/min/moment.min.js","webpack:///./views/components/Lend/ClickableView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/03-media/01-loading-spinner.mustache","webpack:///./lib/coercions/coercions.js","webpack:///./lib/Backbone.Model.SirenSearch/Backbone.Model.SirenSearch.js","webpack:///./lib/formatters/formatters.js","webpack:///./loaders/kvBackgrid.js","webpack:///./lib/marionette.formView/marionette.formView.js","webpack:////kiva/sites/www_kiva/node_modules/backgrid/lib/backgrid.js","webpack:////kiva/sites/www_kiva/node_modules/scriptjs/dist/script.js","webpack:///./lib/basketHelper/basketHelper.js","webpack:///./lib/dropdown/dropdown.js","webpack:///./views/components/LenderActivity/LenderActivityAbstractView.js","webpack:///./lib/directLoanHelper/directLoanHelper.js","webpack:///./lib/lightbox/DecisionLightBox.js","webpack:///./views/components/Xb/SecondaryNavView.js","webpack:///./views/components/Xb/TertiaryNavView.js","webpack:///./views/components/Checkout/ReserveMessageView.js","webpack:///./views/components/Checkout/CheckoutTotals.js","webpack:///./views/components/Lend/ImageFooterView.js","webpack:///./views/components/Lend/BottomBarView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/00-loancard-listing.mustache","webpack:///./views/components/Lend/NoResultsView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/02-loancards-listing.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/10-lend/03-paging.mustache","webpack:///./views/components/Lend/MultiStateButtonsView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/06-dynamic-help-text-lightbox.mustache","webpack:///./views/components/Loan/LoanFavorites.js","webpack:///./views/components/Xb/PaginationView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/05-navigation/07-pagination.mustache","webpack:///./lib/viewHelpers/viewHelpers.js","webpack:///./views/components/Lender/LenderCardView.js","webpack:///./lib/autoCorrecter/autoCorrecter.js","webpack:///./controllers/BorrowerDashboardController.js","webpack:///./views/components/BorrowerDashboard/MainView.js","webpack:////kiva/sites/www_kiva/node_modules/clipboard/lib/clipboard.js","webpack:////kiva/sites/www_kiva/node_modules/clipboard/lib/clipboard-action.js","webpack:////kiva/sites/www_kiva/node_modules/select/src/select.js","webpack:////kiva/sites/www_kiva/node_modules/tiny-emitter/index.js","webpack:////kiva/sites/www_kiva/node_modules/good-listener/src/listen.js","webpack:////kiva/sites/www_kiva/node_modules/good-listener/src/is.js","webpack:////kiva/sites/www_kiva/node_modules/delegate/src/delegate.js","webpack:////kiva/sites/www_kiva/node_modules/delegate/src/closest.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/03-templates/50-borrower-dashboard/51-borrower-dashboard.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/50-borrower-dashboard/03-upcoming-repayments.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/15-loan-sections/03-current-status-meter.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/03-loan-status-funded.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/04-loan-status-in-review.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/05-loan-status-refunded.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/06-loan-status-rejected.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/07-loan-status-flagged.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/08-loan-status-repaid.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/15-loan-sections/02-pfp-meter.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/04-help-text-lightbox.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/50-borrower-dashboard/04-whats-next-wrapper.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/09-whats-next-content-decision.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/02-improve-your-application.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/03-prepare-for-pfp.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/04-review-and-approval-process.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/05-lend-to-another-entrepreneur.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/06-your-photo-is-valuable.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/07-get-support.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/08-use-social-media.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/09-receiving-your-loan.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/10-thank-lenders.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/11-payment-through-paypal.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/12-back-on-track.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/13-updating-lenders.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/14-refer-another-borrower.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/15-apply-for-more-funding.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/16-apply-again.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/17-tell-us-your-story.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/51-borrower-dashboard/01-whats-next-content/18-auto-repay.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/50-borrower-dashboard/06-auto-repayment-terms.mustache","webpack:///./views/components/BorrowerDashboard/TransactionsView.js","webpack:///./views/components/BorrowerDashboard/TransactionItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/50-borrower-dashboard/02-borrower-transaction-row.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/50-borrower-dashboard/02-borrower-transactions-table.mustache","webpack:///./views/components/BorrowerDashboard/AutoRepaymentsView.js","webpack:///./views/components/Paypal/BillingAgreementsButtonView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/03-decision-lightbox.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/50-borrower-dashboard/05-auto-repayments.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/05-navigation/02-secondary-nav.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/05-navigation/03b-tertiary-nav-content.mustache","webpack:///./routers/BorrowerDashboardRouter.js","webpack:///./controllers/CheckoutController.js","webpack:///./lib/StateManager/StateManager.js","webpack:///./views/components/Checkout/CheckoutSteps.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/01-checkout-steps.mustache","webpack:///./views/components/Checkout/Basket/BasketView.js","webpack:///./views/components/Checkout/Basket/BasketCollectionView.js","webpack:///./views/components/Checkout/Basket/LoanItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/10-loan-reserve-message.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/03-loan-item.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/04-loan-amount-selector.mustache","webpack:///./views/components/Checkout/Basket/DonationItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/11-donation-item.mustache","webpack:///./views/components/Checkout/EmptyBasketMessage.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/02-empty-basket.mustache","webpack:///./views/components/Checkout/Basket/SimpleDonationUI.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/07-simple-donation-ui.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/06-checkout-totals.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/03-templates/60-checkout/01-basket.mustache","webpack:///./views/components/Checkout/Payment/PaymentView.js","webpack:///./views/components/Checkout/Payment/PaymentItemList.js","webpack:///./views/components/Checkout/Payment/PaymentItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/08-payment-item.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/60-checkout/09-payment-table.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/03-templates/60-checkout/02-payment.mustache","webpack:///./views/components/Checkout/Thanks/ThanksView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/03-templates/60-checkout/03-thanks.mustache","webpack:///./routers/CheckoutRouter.js","webpack:///./controllers/LendController.js","webpack:///./views/components/Lend/ControlView.js","webpack:///./views/components/Lend/SelectedFiltersView.js","webpack:///./views/components/Lend/SelectedFilterView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/13-lend/01-selected-filter.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/10-lend/04-control-box.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/00-text/05-category-page-head.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/09-filters/05-view-buttons.mustache","webpack:///./views/components/Lend/ResultsView.js","webpack:///./views/components/Lend/LoanCardView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/30-loans/11-loan-image-footer.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/12-loancards/00-bottom-bar.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/03-message-card.mustache","webpack:///./views/components/Lend/LoanCard2View.js","webpack:///./views/components/Lend/BottomBar2View.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/12-loancards/10-bottom-bar-2.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/10-loancard-2.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/03-message-card-2.mustache","webpack:///./views/components/Lend/ScrollEvent.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/07-messaging/01-no-results.mustache","webpack:///./views/components/Lend/AllCountriesLentView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/07-messaging/05-all-countries-lent.mustache","webpack:///./views/components/Lend/FiltersView.js","webpack:///./views/components/Lend/CheckboxListView.js","webpack:///./views/components/Lend/CheckboxItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/05-filters/24-checkbox-item.mustache","webpack:///./views/components/Lend/CountriesView.js","webpack:///./views/components/Lend/RegionsView.js","webpack:///./views/components/Lend/CountryItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/05-filters/country-filter-components/country-filter-countries.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/05-filters/country-filter-components/country-filter-regions.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/05-filters/country-filter-components/country-filter-modal.mustache","webpack:///./views/components/Lend/LocationSearchView.js","webpack:///./views/components/Lend/PartnersView.js","webpack:///./views/components/Lend/LoanLengthView.js","webpack:///./views/components/Lend/SliderFilterView.js","webpack:///./views/components/Lend/SliderFilterItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/05-filters/20-slider-items.mustache","webpack:///./views/components/Lend/MiscFiltersView.js","webpack:///./views/components/Lend/MiscFiltersItemView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/05-filters/21-misc-filters-items.mustache","webpack:///./views/components/Lend/KeywordsView.js","webpack:///./views/components/Lend/LoanStatusView.js","webpack:///./routers/LendRouter.js","webpack:///./controllers/MessagesController.js","webpack:///./views/components/Messages/MainView.js","webpack:///./views/components/Messages/MessageView.js","webpack:///./views/components/Messages/ComposeMessageView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/16-compose-message.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/21-messages/01-lender-message.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/03-templates/23-inbox.mustache","webpack:///./routers/MessagesRouter.js","webpack:///./controllers/PortfolioController.js","webpack:///./views/components/Portfolio/LoansView.js","webpack:///./views/components/Portfolio/LoanRowView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/15-dynamic-repayments-lightbox.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/40-portfolio/07-my-loans-table-row.mustache","webpack:///./views/components/Portfolio/LoanFiltersView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/40-portfolio/10-loan-filters.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/40-portfolio/09-my-loans-table.mustache","webpack:///./routers/PortfolioRouter.js","webpack:///./controllers/SettingsController.js","webpack:///./views/components/Settings/SettingsHeaderView.js","webpack:///./views/components/Settings/SettingsTitleView.js","webpack:///./views/components/Settings/SettingsTitleView.mustache","webpack:///./views/components/Settings/SettingsAccountView.js","webpack:///./views/components/Settings/AccountEmailView.js","webpack:///./views/components/Settings/AccountEmailView.mustache","webpack:///./views/components/Settings/UpdateAccountFormView.js","webpack:///./views/components/Settings/UpdateAccountFormView.mustache","webpack:///./views/components/Settings/UpdateAccountPasswordFormView.js","webpack:///./views/components/Settings/UpdateAccountPasswordFormView.mustache","webpack:////kiva/sites/www_kiva/node_modules/auth0-js/dist/auth0.min.esm.js","webpack:///./views/components/Settings/UpdateProfileFormView.js","webpack:///./views/components/Settings/UpdateProfileFormView.mustache","webpack:///./views/components/Settings/SettingsDataView.js","webpack:///./views/components/Settings/UpdateDataSettingsFormView.js","webpack:///./views/components/Settings/UpdateDataSettingsFormView.mustache","webpack:///./views/components/Settings/SettingsCreditView.js","webpack:///./views/components/Settings/UpdateUserFundAccountFormView.js","webpack:///./views/components/Settings/UpdateUserFundAccountFormView.mustache","webpack:///./views/components/Settings/AutolendRedirect.js","webpack:///./views/components/Settings/AutolendRedirect.mustache","webpack:///./views/components/Settings/SubscriptionsRedirect.js","webpack:///./views/components/Settings/SubscriptionsRedirect.mustache","webpack:///./views/components/Settings/SettingsCreditSidebarView.js","webpack:///./views/components/Settings/AvailableKivaCreditView.js","webpack:///./views/components/Settings/AvailableKivaCreditView.mustache","webpack:///./views/components/Settings/SettingsCreditSidebarView.mustache","webpack:///./routers/SettingsRouter.js","webpack:///./controllers/TeamActivityController.js","webpack:///./views/views/Team/TeamActivityView.mustache","webpack:///./views/components/Team/TeamActivity/TeamActivityFeedView.js","webpack:///./views/components/Team/TeamActivity/TeamActivityFeedView.mustache","webpack:///./views/components/Team/TeamActivity/TeamActivityFeedItemView.js","webpack:///./views/components/Team/TeamActivity/TeamActivityFeedItemView.mustache","webpack:///./views/components/LenderActivity/TeamJoinActivityView.js","webpack:///./views/components/LenderActivity/TeamJoinActivityView.mustache","webpack:///./views/components/LenderActivity/TeamLoanActivityView.js","webpack:///./views/components/LenderActivity/TeamLoanActivityView.mustache","webpack:///./views/components/LenderActivity/TeamMessageActivityView.js","webpack:///./views/components/LenderActivity/TeamMessageActivityView.mustache","webpack:///./views/components/Team/TeamActivity/TeamActivityMyTeamsView.js","webpack:///./lib/dropdownMenu/dropdownMenu.js","webpack:///./views/components/Team/TeamActivity/TeamActivityMyTeamsView.mustache","webpack:///./routers/TeamActivityRouter.js","webpack:///./controllers/TrusteeController.js","webpack:///./views/components/Trustee/ResultsView.js","webpack:///./views/components/Trustee/TrusteeCardView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/02-trustee.mustache","webpack:///./views/components/Trustee/NoResultsView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/00-trustee-results.mustache","webpack:///./views/components/Trustee/FiltersView.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/01-trustee-filters.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/03-trustee-listing.mustache","webpack:///./routers/TrusteeRouter.js","webpack:///./views/views/Community/Team/TeamMembersView.mustache","webpack:///./views/components/Team/TeamRequest/TeamRequestsBackgridView.js","webpack:///./views/components/Team/TeamRequest/TeamRequestsBackgrid/TeamRequestsBackgrid.js","webpack:////kiva/sites/www_kiva/node_modules/backgrid-paginator/backgrid-paginator.js","webpack:////kiva/sites/www_kiva/node_modules/backbone.paginator/lib/backbone.paginator.js","webpack:////kiva/sites/www_kiva/node_modules/backgrid-filter/backgrid-filter.js","webpack:///./views/components/Team/TeamRequest/TeamRequestsBackgrid/TeamRequestActionCell.js","webpack:///./views/components/Team/TeamRequest/TeamRequestsBackgrid/TeamRequestActionCell.mustache","webpack:///./views/components/Team/TeamRequest/TeamRequestCardView.js","webpack:///./views/components/Team/TeamRequest/TeamRequestCardView.mustache","webpack:///./views/components/Team/TeamRequest/TeamRequestsBackgridView.mustache","webpack:///./views/components/Team/TeamMember/TeamMembersBackgridView.js","webpack:///./views/components/Team/TeamMember/TeamMembersBackgrid/TeamMembersBackgrid.js","webpack:///./views/components/Team/TeamMember/TeamMembersBackgrid/TeamMemberActionsCell.js","webpack:///./views/components/Team/TeamMember/TeamMembersBackgrid/TeamMemberActionsCell.mustache","webpack:///./views/components/Team/TeamMember/TeamMemberCardView.js","webpack:///./views/components/Team/TeamMember/TeamMemberCardView.mustache","webpack:///./views/components/Team/TeamMember/TeamMembersBackgridView.mustache","webpack:///./views/components/HowItWorks/HowItWorks.js","webpack:///./views/components/Loan/LoanTags.js","webpack:///./views/components/Loan/LoanComments.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/06-components/08-loan-comment.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/15-loan-sections/07-lenders-teams.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/03-media/02-lender-avatar.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/15-loan-sections/22-country-info.mustache","webpack:///./views/components/LoansNearMe/LoansNearMeResultsView.js","webpack:///./views/components/LoansNearMe/LoansNearMeLoanCardView.js","webpack:///./lib/autoCorrecter/usdAgent.js","webpack:///./lib/autoCorrecter/ordinalAgent.js","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/40-portfolio/08-distribution-table.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/40-portfolio/04-distribution-table-row.mustache","webpack:////kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/12-dynamic-loan-count-graph-lightbox.mustache"],"names":["webpackJsonp","Array","concat","module","exports","__webpack_require__","__WEBPACK_AMD_DEFINE_RESULT__","define","require","Marionette","MainView","BorrowerTransactionsView","BorrowerAutoRepaymentsView","SecondaryNavView","TertiaryNavView","LayoutView","extend","el","regions","secondaryNavRegion","tertiaryNavRegion","mainRegion","setCurrentHref","href","this","secondaryNavView","tertiaryNavView","showBorrowerHomeView","show","mainView","preventDestroy","showBorrowerPreviousLoansView","showBorrowerTransactionsView","transactionsView","showBorrowerAutoRepaymentsView","initOptions","auto_repayment","autoRepaymentsEnabled","autoRepaymentsView","wwwApp","tipMsg","_bubbleNavigate","trigger","_bubbleAutoRepaymentGetStatus","new_status","updateLoan","loan","lenderCount","updateTransactionResults","transactions","total_count","enable_previous","enable_next","updateAutoRepaymentStatus","initialize","options","nav_options","active","active_nav_link","links","nav_links","listenTo","Backbone","moment","uri","CheckoutSteps","BasketView","PaymentView","ThanksView","checkoutSteps","main","setRegionView","page","paymentView","store","showChildView","thanksView","basketView","forceShow","updateUrl","paths","basket","payment","thanks","path","history","navigate","relativeTimeThreshold","self","subscribe","state","$","ControlView","ResultsView","AllCountriesLentView","FiltersView","lightboxTemplate","numeral","resultsRegion","events","clearCategory","removeClass","addClass","controlView","showAllCountriesLentMessage","allCountriesLentView","toggleFilterLinks","action","filtersView","updateCategory","name","description","updateFacets","facets","updateFilters","filters","updateFiltersList","updateLoanBasketStatus","loan_id","amount","resultsView","updateBasketStatus","updateLoanCount","count","html","format","updateLoanFavoriteStatus","is_favorite","updateFavoriteStatus","updateLoading","is_loading","updateResults","loans","enable_first","enable_last","currentView","updateResultsViewType","is_list_view","_setResultsViewType","updateViewType","updateSort","value","_addSaveSearchHandlers","triggerSaveSearch","event","preventDefault","_saveSearch","click","document","on","unbind","_clearSaveSearchLightbox","_clearFilterValuesWithTrigger","e","_handleFilterClear","clearFilterValues","_configureMoment","updateLocale","relativeTime","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","_handleChangeView","view","_handleFavorite","_handleFilterAdd","data","_handleFilterChange","_handleFilterUnset","_handleLeaveCategory","_handleLend","_handleMcLightbox","mc_url","_showMessageCatalogLightbox","_handleSfLightbox","solution_id","_showSalesForceLightbox","_handleNext","_handlePrevious","_handleFirst","_handleLast","_handleUnfavorite","_scrollToTop","window","scrollTo","_setCountriesUnlent","getJSON","ajaxUrl","done","render","descriptionTitle","term_title","descriptionText","term_definition","foundation","get","response","replace","title","text","call","closeLightboxes","setLoading","loading","updateNavigation","update","_bubbleDelete","message_id","is_only_message","_bubblePageChange","_bubbleSend","active_link","user_has_lent","_","LoansView","resetTeam","loansView","setCountries","countries","setLoans","loan_count","current_page","num_pages","setPartners","partners","_bubbleTeamAssign","team_id","_bubbleFilterChange","_bubbleFilterClear","_bubbleExportLoanData","Dropdown","View","handleLinkClick","target","actionName","router","appRoutes","slice","redirect","load","handleBreadcrumbChange","model","breadcrumbs","isArray","dropdown","urHere","pop","conf","sidebarRegion","mainContentRegion","TeamActivityViewStache","TeamActivitiesFeedView","TeamActivityMyTeamsView","feedRegion","asideRegion","template","serializeData","hasTeams","myTeamsCollection","size","teamCollageImgSrc","staticUrl","exploreTeamsHref","url","onRender","renderTeamActivityMyTeamsView","activitiesCollection","renderTeamActivitiesFeedView","teamActivityMyTeamsView","collection","teamActivitiesFeedView","filtersRegion","trustees","hasView","attrName","attrValue","_bubblePrevious","_bubbleNext","_bubbleFirst","_bubbleLast","moduleData","context","tombstone","initLoanConditionsSubView","hide","css","init","showEditBoxes","exposeExcerptHtml","exposeDescriptionHtml","before","viewData","language","attr","trim","hideEditBoxes","toggleExposeOverlay","toggle","toggleClass","handleEditorClicked","timer","setInterval","handleSave","is","hasClass","field","loan_use_text","minMax","cancelClose","handleSaveClicked","keyup","characterCount","setCursorPosition","clearInterval","slideDown","disableNextStepButton","val","sendToCMS","handleIssueAutoSave","localStorage","setItem","id","handleReportIssueSelected","issue","issues","localIssueText","getItem","issue_text","submitReportIssueClosure","commentReportIssue","changeSubmitButton","submitReportIssue","remove","append","cancelReportIssue","issueText","undefined","deleteReportIssue","clear","fields","nid","hash","username","urlParams","param","ajax","type","dataType","handleResponse","meridiem","Date","hours","getHours","minutes","getMinutes","enableNextStepButton","goToNextStep","use","desc","issue_code","issue_param","assignment","training_business_id","foreign","ouse","original_loan_use","odesc","original_description","step","encodeURIComponent","nextStep","location","root_http","showSubmittedBox","returnToAssignment","grabALoan","handleExcerptOverlayClicked","handleDescriptionOverlayClicked","changeLoanLanguage","submitChangeLoanLanguage","language_name","post","closest","changeSectorActivity","activity","change","changeSector","submitChangeSectorActivity","sector","activities","empty","each","sector_to_activity","key","Object","assign","tnid","language_iso","postGreatPhotoAndLikedLoan","user_id","tag_id","console","log","setTimeout","success","result","kv","www_url","error","showSiteMenu","helpTip","position_options","my","at","offset","collision","qtip","content","next","position","minimizeLightbox","maximizeLightbox","prop","initLoanEditorBarSubView","status","loan_use","substr","loanuse_html","length","prependTo","scroll","menuDropdown","siteMenu","navImg","hoverIntent","over","out","slideUp","timeout","loan_edit_html","loan_use_html","insertAfter","text_length","text_remaining","fn","pos","index","elem","setSelectionRange","focus","createTextRange","range","collapse","moveEnd","moveStart","select","showNeedHelp","mouseup","container","has","$el","property","indexOf","kvTrack","isReady","version","charAt","trackEvent","Controller","Router","TeamMembersViewTpl","TeamRequestsBackgridView","TeamMembersBackgridView","teamRequestsRegion","teamCaptainsRegion","teamNonCaptainsRegion","ui","$lenderCardPlaceholder","addTeamMember","teamMemberModel","teamMembersPromise","addCaptain","addNonCaptain","teamRequest","teamModel","set","decLenderCount","renderTeamNonCaptainsPromise","renderTeamCaptainsPromise","loggedInUserIsTeamMember","teamCollection","link","handleGenericFail","jqXhr","autoClose","handleResolveTeamDone","handleResolveTeamNonCaptainsDone","teamNonCaptainsCollection","handleResolveTeamRequestsDone","teamRequestsCollection","handleTeamMembersDone","teamMembersCollection","handleResolveTeamCaptainsDone","teamCaptainsCollection","resolve","siren","renderTeamRequests","teamRequestsDataReady","teamRequestsBackgridView","isEmpty","_ensureElement","renderTeamCaptains","teamCaptainsDataReady","then","teamCaptainsBackgridView","isSearchEnabled","baseParams","is_captain","memberFilter","isCaptain","renderTeamNonCaptains","teamNonCaptainsDataReady","teamNonCaptainsBackgridView","resolveTeam","resolveTeamRequests","teamRequests","Deferred","resolveTeamCaptains","resolveTeamNonCaptains","resolveEntities","fail","teamCaptainsRequest","teamNonCaptainsRequest","teamRequestsRequest","when","bindAll","AccountView","handleShowMoreClick","showMore","parent","prev","children","prototype","apply","makeArray","arguments","after","basketHelper","HowItWorksSubView","LoanEditorBarSubView","LoanConditionsSubView","LoanInfoBarSubView","LoanTags","LoanComments","LoanFavorites","LendersTeams","LenderAvatar","LoadingSpinner","MapsTemplate","setWindowPosition","windowPosition","scrollTop","onBrowseMoreLoansClick","referrer","test","back","onLendDropdownClick","onLendButtonClick","showIneligible","_openIneligibleDecisionLightbox","showFreeTrialIneligible","_openFreeTrialIneligibleDecisionLightbox","_proceedWithLending","currentLoanAmountValue","lendFreeTrialShare","businessId","addLoanToBasket","_handleLoanAddedToBasket","_handleLoanAddedToBasketFailure","updateBasketCount","basket_item_count","onCheckoutClick","onAcInputChange","toggleSectionDisplay","onDesktopLoanAmountChange","lendAmount","innerHTML","newLoanAmountValue","_openFreeTrialDecisionLightbox","_setLightboxHandlers","_updateLoanAmount","freeTrialDecisionLightbox","find","bind","onFreeTrialDecline","onFreeTrialAgree","freeTrialIneligibleDecisionLightbox","onFreeTrialLendAnyway","onFindFreeTrialEligibleLoans","ineligibleDecisionLightbox","onLendAnyway","onFindEligibleLoans","_escapeKeyUp","keyCode","_accordionClickHandler","currentTarget","sectionHeading","innerText","_removeLightboxHandlers","_closeFreeTrialDecisionLightbox","_closeFreeTrialIneligibleDecisionLightbox","_closeIneligibleDecisionLightbox","mobileSelectButton","desktopSelectButton","onMobileLoanAmountChange","onFavoriteLinkClick","setFavorite","targetElement","LoanView","untag","isFavorite","favoriteLoan","toggleFavorite","element","nextAll","slideToggle","setSlickMargins","$slickActive","slickWidth","width","imageWidth","margin","rightMargin","$loanMessage","$loanImageFooter","$prevArrow","$nextArrow","hideSlickElements","initSlick","$slickCarousel","slick","loanFigure","$images","mobileFirst","prevArrow","nextArrow","adaptiveHeight","lazyLoad","speed","currentSlide","initRepaymentSchedule","initVars","loggedInUserRole","countryMapInfo","isDirectLoan","handleCommentsAnchorLink","showComments","delay","commentsSection","getElementsByClassName","scrollIntoView","getLendersAndTeamsContext","allLendersAnonymous","lenderAnonymousCount","numAnonymousLenders","lendersExpanded","lendersLoading","lenders","spilloverCutoff","beyondLenderCutoffCount","showSpilloverMessageForLenders","teamCount","teamsExpanded","teamsLoading","teams","beyondTeamCutoffCount","showSpilloverMessageForTeams","bp_hide_loan_details_exp","attachLendersAndTeamsEventHandlers","lendersAndTeams","total","fetched","limit","lendersPerFetch","renderLendersAndTeams","jqxhr","Error","animate","top","teamsPerFetch","outerHTML","kvAccordion","reflow","handleLazyTemplateLoading","lendersTeamsContext","handlePanelStates","storedPanelStates","expandCountryPanel","expandMoreInfoPanel","Foundation","utils","is_large_up","panel","initializeInContextEditor","Loan_LoanEditorBarSubView","Loan_LoanInfoBarSubView","Loan_LoanConditionsSubView","analyticsHideStory","storeRecentlyViewedLoan","recentLoanData","contains","unshift","trackBetaExperiment","toLowerCase","trackLoanStatus","trackProfileRedirect","trackHideLoanDetails","resize","getHash","free_trial","parseInt","business_id","loans_shown","miles","toggleInterface","interfaceType","$addCredit","$addCreditForm","$addCreditButton","$monthlyField","$paypalButton","$cancelPaypalButton","$amountField","$addCreditPending","$addCreditThanks","trackAddCredit","Math","round","PAYMENTINFO_0_AMT","handleDoExpressCheckoutError","token","errorObject","errorCode","errorMessage","L_ERRORCODE","L_SHORTMESSAGE","updateTransactionDetails","paypalAmt","onDoPaymentSuccess","pp_txn_id","PAYMENTINFO_0_TRANSACTIONID","kiva_pp_id","PAYMENTINFO_0_SECUREMERCHANTACCOUNTID","TOKEN","pp_payment_type","PAYMENTINFO_0_PAYMENTTYPE","pp_payment_status","PAYMENTINFO_0_PAYMENTSTATUS","custom","txn_id","payment_type","payment_status","renderPaypalButton","expressCheckoutEnv","EXECUTE_PAYMENT_URL","paypal","Button","env","reject","request","catch","err","onAuthorize","actions","paymentToken","payerID","onCancel","onError","style","color","shape","is_medium_up","autoCorrecter","$script","$deposit","usd","closeTipMsg","ready","global","jQuery","year","dataTable","perPage","confirmLoginSuccess","displayInactivitySettingsLightbox","submit","inactivity_setting","paypal_email_address","errMsg","drawLoanCountGraph","colors","chartArea","left","height","hAxis","gridlines","vAxis","minValue","legend","$graph_area","graph","google","visualization","AreaChart","loan_count_data_table","getNumberOfRows","loanDateYear","getValue","getFullYear","maxValue","draw","drawMap","loan_map","loan_map_data_table","tooltip","textStyle","colorAxis","magnifyingGlass","enable","zoomFactor","browser","ios","safari","drawPieChart","chart_name","distribution_data","distribution_charts","pieSliceText","alignment","mobile","tablet","fontSize","initDistributionGraphs","public_id","google_loader","$sections","$section","$chart","arrayToDataTable","PieChart","setupDistributionChart","setupDistributionTable","initLoanCountGraph","graphName","graphData","map","datum","label","openLoanCountGraphLightbox","initLoanViewToggle","$loan_grid","$loan_map","$geo_chart","initRecentLoanMap","$container","GeoChart","rows","obj","p","iso_code","c","v","DataTable","initResizeHandler","throttle","$active","loadGoogleCharts","deferred","charts","packages","setOnLoadCallback","promise","graph_lightbox_template","urls","row_data","i","more_rows","len","total_loans","reduce","row","percent","push","table_template","table_row_template","row_string","CTASubView","has_loans","missing_inactivity_settings","a","b","amd","od","toString","f","g","hasOwnProperty","j","valueOf","k","rb","utc","l","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","_pf","n","_isValid","qd","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","o","NaN","q","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","rd","r","isValid","sd","updateOffset","t","ceil","floor","u","isFinite","min","abs","w","suppressDeprecationWarnings","warn","x","deprecationHandler","join","stack","td","z","Function","A","_config","_ordinalParseLenient","RegExp","_ordinalParse","source","B","C","D","_calendar","sameElse","E","_longDateFormat","toUpperCase","F","_invalidDate","G","_ordinal","H","_relativeTime","I","J","Dd","K","L","Ed","N","unit","priority","sort","O","Q","P","R","S","T","pow","max","U","Id","localeData","ordinal","V","match","W","Fd","X","Y","Hd","invalidDate","longDateFormat","Gd","lastIndex","Z","$d","aa","ba","ca","_w","da","_a","ea","UTC","getUTCDate","fa","_months","month","isFormat","ke","ga","_monthsShort","ha","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","je","ia","_monthsParseExact","ja","monthsParse","date","ka","la","ma","oa","_monthsShortStrictRegex","_monthsShortRegex","ne","na","_monthsStrictRegex","_monthsRegex","oe","pa","qa","ra","sa","setFullYear","ta","getUTCFullYear","setUTCFullYear","ua","getUTCDay","va","dayOfYear","wa","xa","week","ya","_week","dow","doy","za","Aa","Ba","add","Ca","Da","weekdaysParse","Ea","Fa","_weekdays","day","Ga","_weekdaysShort","Ha","_weekdaysMin","Ia","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","Ja","_weekdaysParseExact","_fullWeekdaysParse","Ka","getDay","La","Ma","Na","Qa","_weekdaysStrictRegex","_weekdaysRegex","ue","Oa","_weekdaysShortStrictRegex","_weekdaysShortRegex","ve","Pa","_weekdaysMinStrictRegex","_weekdaysMinRegex","we","Ra","Sa","Ta","Ua","_meridiemParse","Va","Wa","Xa","Ya","split","Za","Be","xe","_abbr","$a","bb","Ae","abbr","parentLocale","Ce","config","forEach","ab","cb","wd","db","be","ce","ae","de","ee","fe","ge","_overflowDayOfYear","_overflowWeeks","he","_overflowWeekday","ie","eb","De","exec","Ee","Ge","He","Fe","kb","fb","Ie","createFromInputFallback","gb","hb","now","_useUTC","getUTCMonth","getMonth","getDate","ib","jb","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","GG","sb","gg","ISO_8601","_meridiem","lb","meridiemHour","isPM","mb","score","nb","hour","minute","second","millisecond","ob","pb","preparse","qb","tb","ub","vb","wb","quarter","_milliseconds","_days","_data","_bubble","xb","yb","zb","utcOffset","Ab","Me","Bb","clone","setTime","local","Cb","getTimezoneOffset","Db","Xd","_changeInProgress","Tb","Ob","Eb","Fb","Gb","subtract","Hb","Wd","Ib","Jb","Kb","_isDSTShifted","toArray","Lb","Mb","Nb","ms","milliseconds","Ne","Oe","Pb","Rb","from","to","parseFloat","Qb","isAfter","isBefore","Sb","Ub","diff","Vb","startOf","calendarFormat","calendar","Wb","Xb","Yb","endOf","Zb","$b","_b","isSame","ac","bc","cc","dc","locale","ec","toISOString","toDate","fc","isLocal","gc","isUtc","defaultFormatUtc","defaultFormat","postformat","hc","humanize","ic","jc","kc","lc","mc","nc","seconds","weekday","isoWeekday","oc","pc","qc","rc","sc","tc","years","uc","vc","wc","xc","yc","input","isUTC","strict","zc","Ac","Ec","Bc","isoWeek","Cc","Dc","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","parseZone","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Ze","Xc","Yc","Zc","$c","_c","bd","ad","days","cd","ed","as","fd","gd","hd","jd","of","pf","kd","ld","md","pastFuture","nd","qf","asSeconds","pd","some","momentProperties","ud","keys","vd","xd","sameDay","nextDay","nextWeek","lastDay","lastWeek","yd","LTS","LT","LL","LLL","LLLL","Bd","Cd","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Yd","Zd","monthsShortRegex","monthsRegex","le","me","parseTwoDigitYear","pe","qe","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","re","se","te","_isPm","ye","ze","ordinalParse","meridiemParse","Je","Ke","Le","Pe","Qe","Re","weekYear","isoWeekYear","Se","Te","Ue","Ve","We","Xe","fromNow","toNow","invalidAt","isBetween","isSameOrAfter","isSameOrBefore","lang","parsingFlags","toObject","inspect","toJSON","unix","creationData","isLeapYear","quarters","daysInMonth","weeks","isoWeeks","weeksInYear","isoWeeksInYear","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","zone","isDSTShifted","Ye","firstDayOfYear","firstDayOfWeek","langData","$e","_e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","rf","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","toIsoString","isDate","invalid","duration","isMoment","isDuration","defineLocale","locales","normalizeUnits","relativeTimeRounding","ItemView","_handleClick","disable","Template","code","fl","partials","subs","acceptance","undef","array","bool","number","isNumber","old","number_array","number_range","isString","string","vertical_line_range","coercions","Model","coerce","filterTypes","coercion","getCriteria","omit","filterNames","getFilters","pick","parameterize","parse","searchAction","abortLastRequest","meta","_meta","resolveSearch","toQueryString","getCoercedFilters","coerced","query","criteria","JSON","stringify","constructor","decodeEntities","str","textContent","escapeHtml","formatBcMoney","money","formatMoney","currency","formatPercent","percentAmount","divide","htmlify","unhtmlify","stripslashes","n1","truncate","myString","maxLength","substring","createElement","__WEBPACK_AMD_DEFINE_ARRAY__","Backgrid","reduceStickitFields","memo","stickitField","selector","stickitConfig","cid","configs","tagName","handleFormViewSubmit","buttonText","nonModelAttributes","isSecure","getSecureKey","clearSecureKey","$submit","execute","attributes","validate","always","removeAttr","items","setAction","Collection","parseAttributes","attrs","enctype","method","novalidate","validation","removeStickitField","stickitFields","addStickitField","observe","addStickitFields","addStickit","parseFields","parsedFields","fieldName","parsedField","required","getSecureKeys","getStickitFields","proxy","getSelectorForField","getModelForField","fieldToStickitField","defaults","setOptions","forceUpdate","fieldsToStickitFields","stickAll","stickit","isClosed","triggerMethod","mixinTemplateHelpers","getTemplate","Renderer","bindUIElements","close","initializeForm","emptyTemplate","ajaxIndicator","getOption","args","validateOnChange","root","factory","lpad","padstr","paddingLen","padding","ws","String","trimBeginRegexp","trimEndRegexp","TypeError","Extension","resolveNameToClass","suffix","klass","isUndefined","ReferenceError","callByNeed","isFunction","Events","Command","evt","altKey","charCode","ctrlKey","metaKey","repeat","shiftKey","which","moveUp","moveDown","moveLeft","moveRight","save","cancel","passThru","CellFormatter","fromRaw","rawData","toRaw","formattedData","NumberFormatter","decimals","RangeError","decimalSeparator","orderSeparator","HUMANIZED_NUM_RE","isNull","toFixed","parts","integerPart","decimalPart","thousands","decimalParts","PercentFormatter","multiplier","symbol","formattedValue","tokens","rawValue","DatetimeFormatter","includeDate","includeTime","includeMilli","DATE_RE","TIME_RE","ISO_SPLITTER_RE","_convert","time","jsDate","getUTCHours","getUTCSeconds","YYYYMMDD","HHmmssSSS","getUTCMilliseconds","StringFormatter","EmailFormatter","all","SelectFormatter","CellEditor","formatter","column","Column","postRender","InputCellEditor","__super__","placeholder","saveOrCancel","command","blurred","stopPropagation","newValue","Cell","editor","renderError","changed","changedAttributes","updateStateClassesMaybe","editable","sortable","renderable","columnName","delegateEvents","enterEditMode","currentEditor","undelegateEvents","exitEditMode","stopListening","StringCell","className","UriCell","tabIndex","NumberCell","EmailCell","PercentCell","IntegerCell","DatetimeCell","BooleanCellEditor","DateCell","TimeCell","mouseDown","enterOrExitEditMode","SelectCellEditor","BooleanCell","checked","disabled","variable","evaluate","interpolate","escape","setOptionValues","optionValues","setMultiple","multiple","_renderOptions","nvps","selectedValues","selected","optionValue","optionText","optgroupName","optgroup","isObject","values","SelectCell","delimiter","cell","selectedText","rawDatum","optionGroupValues","optionGroupValue","ex","sortType","sortValue","direction","headerCell","silent","colName","Columns","Row","columns","cells","makeCell","splice","prepend","eq","opts","fragment","createDocumentFragment","appendChild","EmptyRow","emptyText","setAttribute","span","HeaderCell","setCellDirection","fullCollection","removeCellDirection","onClick","header","col","createTextNode","Header","HeaderRow","Body","_unshiftEmptyRowMayBe","insertRow","removeRow","refresh","moveToNextCell","updateEmptyRow","emptyRow","$children","$rowEl","findWhere","order","comparator","makeComparator","PageableCollection","setSorting","fetch","reset","func","right","maxOffset","Footer","Grid","body","footer","caption","filteredOptions","insertColumn","removeColumn","definition","every","ar","idOrDone","optDone","loopFn","item","list","callback","queue","dset","idOrDoneIsDone","force","scriptpath","scripts","ids","create","loaded","doc","onload","onerror","onreadystatechange","readyState","async","src","urlArgs","head","insertBefore","lastChild","getElementsByTagName","shift","deps","req","missing","dep","__WEBPACK_AMD_DEFINE_FACTORY__","purchase_amt","crumb_string","cookie","loanAmount","click_action","click_label","crumb","fbq","content_category","basket_warn_msg","_displayAddToBasketWarning","basket_error_msg","_displayAddToBasketError","updateBasketModel","redirect_url","_post","headerBasketButton","headerBasketCount","borrowerPageFooterLendButton","borrowerPageFooterBasketCount","borrowerPageFooterBasketButton","basketBar","basketBarCount","basket_warning_message","basket_error_message","reload","parameters","form","handleDropdownWrapperHoverOver","suppressClick","expand","handleDropdownWrapperHoverOut","$target","dropdownNavItemClass","clicksAreSuppressed","dropdownWrapperClass","collapseAll","secondaryNavClass","activePrimaryNavItems","filter","getPrimaryNavItem","$primaryNavItem","pathname","first","parentsUntil","formatTimestamp","formatters","camelCaseToTitleCase","colorSpan","isWarningStatus","statusDetail","delinquent","isGoodStatus","loanStatusPrettyText","inPfp","loanStatusPretty","extraStatus","showExtra","arrearsAmount","serializeUpcomingRepayments","extra_params","overdue","nextPayment","terms","nextRepayment","dueDate","repayments","decision_lb","uniqueId","$lb","$mainBtn","$altBtn","onClickMain","onClickAlt","absoluteUrl","current","host","protocol","handleNavClick","active_tree","sortBy","expiryTime","not_reserved","reserved_for","time_left_warning","isEndingSoon","modelEvents","totalsModel","is_logged_in","totals","order_total","itemTotal","grand_total","creditAmountNeeded","free_credit","bonusAvailableTotal","kiva_credit_remaining","kivaCreditAvailableTotal","kivaCreditAppliedTotal","kiva_credit_applied_total","kiva_credit_applicable_total","kiva_credit_available_total","negative_kiva_credit","ClickableView","_handleFavoriteToggle","favoriteButton","needs_reflow","setTouch","basket_amount","lendButton","amount_in_basket","basket_url","borrower_url","loanId","img","is_adding","is_lent_to","is_in_basket","is_ended","is_regular","rs","rp","scrollEvent","_handleNewSearch","newSearchLink","setValue","querySelectorAll","coerceValue","retVal","_handleChange","userSawTipMsg","tipMsgOnFirstFavorite","sessionStorage","userFavoritedLoan","ajaxCall","entity_id","_handlePageClick","$link","numbers","pages","uniq","ellipsis","show_pagination","first_page","last_page","viewHelpers","plainObjectToArray","overrideNames","getId","formId","htmlCheckables","inputs","htmlOptions","htmlSelect","htmlInput","htmlTextarea","textarea","controlSet","innerTemplate","innerData","readInputFile","inputEl","fileReader","file","files","FileReader","readAsDataURL","getElement","jquery","isElement","getKey","fromCharCode","isEditKey","createAgent","agent","agentMethods","addEventListener","keypress","focusout","usdAgent","ordinalAgent","ordinalDayOfMonth","_createAgent","SirenSearch","BorrowerDashboardView","_executeLoanFetch","_executeTransactionsSearch","onNavigate","_handleLoanFetchDone","_setCacheTrustee","n_lenders","_initTransactionsSearchModel","searchModel","_calculateRunningTotal","models","tot","balance","_handleTransactionsSearchDone","results","myTransactionsModel","_executeTrusteeFetch","trustee_id","trustee","trusteeCache","_getCacheTrustee","onAutoRepaymentGetStatus","_executeAutoRepaymentsGetStatus","get_status_url","_handleAutoRepaymentsGetStatusDone","direct_loan_helper","Clipboard","forceNumeric","keydown","replaceUrlParam","paramName","paramValue","pattern","search","new_state","_serializeBasicProperties","_serializeBorrowerActionData","actionButton","secondary","isFundraising","cmsHost","applicationUrl","payment_url","_serializeCommonVars","lenderCountNeeded","pfpMinLenders","timeLeft","plannedExpirationDate","showRaisedInfo","prettyStatus","imgUrl","imageUrl","image","profileLink","totalLoanAmount","amountRaised","loanFundraisingInfo","lenderCountPercent","loanLengthMessage","inPFPHelpText","inviteUrl","initWhatsNextSlides","whatsNextSlickOpts","slide","dots","appendDots","initPayingBackCustomAmount","amountInput","makeRepaymentButton","paypalUrl","open","_serializeProgress","funded","paid","paidAmount","amountLeft","meterAmountPercent","raisedVerb","_serializeStatus","isExpiringSoon","isFlagged","isFunded","inPublicFundraising","isPayingBack","isPayingBackDelinquent","inPfpFundraising","isRefunded","isRejected","isRepaid","inReview","_serializeUpcomingRepayments","payNowUrl","hasAutoRepayment","debugLog","clipboard","_navigateAutoRepayments","invite_token","inviteToken","invite_url","_clipboardAction","_tinyEmitter","_goodListener","_interopRequireDefault","__esModule","default","_classCallCheck","instance","Constructor","_possibleConstructorReturn","_inherits","subClass","superClass","enumerable","writable","configurable","setPrototypeOf","__proto__","getAttributeValue","attribute","hasAttribute","getAttribute","_clipboardAction2","_tinyEmitter2","_goodListener2","_createClass","defineProperties","props","descriptor","defineProperty","protoProps","staticProps","_Emitter","_this","getPrototypeOf","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","listener","delegateTarget","clipboardAction","emitter","querySelector","destroy","_select","_select2","_typeof","Symbol","iterator","ClipboardAction","initSelection","selectFake","selectTarget","isRTL","documentElement","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","border","yPosition","pageYOffset","copyText","removeEventListener","removeChild","succeeded","execCommand","handleResult","emit","clearSelection","blur","getSelection","removeAllRanges","_action","nodeType","_target","nodeName","isReadOnly","removeAttribute","selection","createRange","selectNodeContents","addRange","ctx","once","off","evtArr","evts","liveEvents","listen","node","listenNode","nodeList","listenNodeList","listenSelector","delegate","HTMLElement","_delegate","useCapture","listenerFn","elements","DOCUMENT_NODE_TYPE","matches","parentNode","Element","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","BorrowerTransactionItemView","CompositeView","childView","childViewContainer","childEvents","child","records","amountPretty","effectiveTimePretty","effectiveTime","balancePretty","mydata","PaypalButton","DecisionBox","hasBillingAgreement","_initializePaypalView","paypalButtonView","_bubblePPEXPAuthorizeClick","_handleSuccessfulBASetup","_bubblePPEXPCancelled","_bubblePPEXPError","successObj","_activateAutoRepayments","cancelObject","activate_url","_pauseAutoRepayments","pause_url","_activateAutoRepaymentsConfirm","lightboxId","message","mainOptionButtonText","alternativeOptionButtonText","_pauseAutoRepaymentsConfirm","ar_data","termsLink","rootHttp","pausedAutoRepayment","repay","preDisbursal","faq_el","onShow","errorCount","_handlePPEXPCancel","_handlePPEXPError","_renderPaypalButton","fund_account_id","CREATE_PAYMENT_URL","PAYMENT_DETAILS_URL","AppRouter","_taggedTemplateLiteral","strings","raw","freeze","_templateObject","_templateObject2","_templateObject3","_templateObject4","gql","Raven","StateManager","CheckoutView","showBasketView","dispatch","showPaymentView","showThanksView","gqlLoadBasketQuery","gqlLoanAmountMutation","gqlTipDonation","gqlBasketValidationMutation","_handleApolloError","handlers","errors","graphQLErrors","handler","captureException","itemCount","donation","price","isTip","isUserEdited","commit","loadBasket","graphql","commitBasket","shop","totalCount","mutateLoanAmount","loanData","mutate","mutation","variables","loanid","newAmount","refetchQueries","updateDonationAmount","donationData","basketContinue","showLogin","mutations","SET_PAGE","payload","SET_BASKET","SET_TOTALS","basketStateWatcher","watchQuery","_bbModel","_actions","_mutations","stateReference","getChangeString","properties","LoanCollectionView","SimpleDonationUI","CheckoutTotals","donation_ui","onBeforeShow","showDonationUi","_showDonationUIView","_handleBasketContinue","LoanItem","DonationItem","CollectionView","getChildView","itemType","donationModel","childViewOptions","_removeDonationItemView","donationView","findByModel","removeChildView","ReserveMessageView","_handleAmountSelected","_handleRemoveLoan","_updateAmountSelect","loanPrice","$amountSelect","reserve","extractExpiryData","expiryObj","_updateModelDonation","_handleUpdateAmount","_handleRemoveItem","imageurl","new_donation_amount","suggested_donation","_handleDonationUpdate","_storeDonationState","PaymentItemList","PaymentItem","_setNameField","__typename","team","LendView","LIMIT","RESULTS_VIEW_TYPES","GRID","LIST","defaultFilters","paramNameTransforms","currencyLossPossible","loanTags","theme","matcherAccountId","paramToFilterTypes","arrearsRate","avgBorrowerCost","country","defaultRate","excludeNonRated","isGroup","lenderFavorite","lenderTerm","partner","profitability","riskRating","dafEligible","city_state","lists","showLendView","params","_leaveCategoryPage","_setFilters","_setUrl","_convertToFilters","_executeSearch","showCategoryView","category","categories","_cachedLimit","current_category","isNumeric","_fromUiFilterPage","showAllCountriesLentView","_coerce","keyMap","filterNameTransforms","matcher_accounts","_convertToParams","isEqual","_enterLendPage","_executeNext","_executePrevious","unset","_executeFirst","_executeLast","loanCollection","_handleRequestStarted","_handleSearchDone","_handleRequestComplete","_favoriteLoan","favorited","num_favorites","_updateFavoritesInNav","$favoritesLink","$noFavoritesLink","unique","countries_unlent","live_request_count","_handleResultsViewTypeChange","view_type","current_filters","current_criteria","basket_loans","basketModel","show_detailed_location","_isSearchContainedInUS","logged_in","is_admin","results_view_type","show_message_card","message_card_index","message_card","showPaging","_trackLoansShown","pluck","_showHideLoanLength","defaultSortType","where","sort_options","_loadResultsViewType","stored","_trackPageViewType","loan_ids","snowplow","sortIndex","findIndex","json_values","matchedOnly","saveSearchModal","mode","queryString","alert","is_alert","ajax_result","_updateSavedSearchNav","json_result","mobileSavedSearched","mobileDisabledSearchLink","savedSearchListMobile","manageSavedSearchDesktop","last","savedSearchListDesktop","searches","_savedSearchListItemFor","savedSearch","_serializeParams","_getPreferredSort","preferredSort","currentSort","fromUiCookie","fireInitializeTracking","loan_card_limit","trackSetDimension","loan_card_refresh_exp_version","lcRefreshState","lend_filter_exp_version","createFiltersMenuListeners","setFiltersMenuVisibility","$menu","$menuToggle","menuIsShowing","preferredVisibility","isWideViewport","innerWidth","loan_card_template","isUserLoggedIn","message_card_position","sectors","filter_attributes","tags","countries_by_region","num_kiva_countries","sliders","misc_filters","keywords_filter","status_options","countries_unlent_count","total_countries_count","invert","daf_promo","SelectedFiltersView","_handleFilterToggleClicked","_handleSelectedFiltersToggle","_handleSortChange","_setSort","_handleUnset","_handleViewChange","selectedFiltersView","setElement","SelectedFilterView","class","_handleRemove","_isValueArray","without","_getFilterLabel","_getSelectedGender","_getSelectedFilterName","_getSelectedCountryName","_getState","_getLoanTermString","_getListName","_getFiltersList","flatten","Number","gender","countryId","countryData","region","idKey","nameKey","states","partnerData","stateData","removeButton","LoanCardView","LoanCard2View","NoResultsView","emptyView","lend","favorite","unfavorite","loan_card","previousButton","nextButton","firstButton","lastButton","_reflow","msie","saveHeight","disable_previous","disable_next","disable_first","disable_last","hide_paging","ImageFooterView","BottomBarView","message_card_template","_getImageUrl","spec","reload_image","_handleRefreshClick","_serializeExpiration","expires","expiring_soon_message","is_expiring_soon","_serializeImages","sizes","list_view","edit_url","_serializeLoanLength","show_loan_length","loan_length","lenderRepaymentTerm","_serializeLocation","geocode","isoCode","city","location_label","_serializeMatching","is_matched","isMatchable","matching_text","matcherName","progress","raised","fundedAmount","in_basket","reservedAmount","_serializeUrls","uncapitalizeFirstLetter","aString","_serializeUse","borrowerCount","descHeight","bottomBar","imageFooter","image_footer_data","is_loan_card_view","refreshButton","user_properties","lentTo","BottomBar2View","short_expiring_soon_message","matchAmountCalculation","matchRatio","displayedMatchRatio","initialPercent","unfavoriteButton","favorite_data","$window","$document","noResultsText","noResultsTextTopOffset","noResultsTextHeight","outerHeight","outerWidth","CheckboxListView","CountriesView","LocationSearchView","PartnersView","MultiStateButtonsView","SliderFilterView","MiscFiltersView","KeywordsView","LoanStatusView","total_filters","_clearFilters","_clearLocals","keywordsView","_hideClearKeywordButton","_getViewForFilter","sector_id","loan_tag_ids","themes","country_id","filterView","partnersView","sliderFilterView","sectorsView","attributesView","tagsView","countriesView","genderView","groupView","loanLengthView","miscFilterView","loanStatusView","loanDistributionView","_handlePartnerBlurForIos","select2","_initSelect2","msedge","templateResult","_setupFilters","locationSearchView","_setHandlers","slider_values","CheckboxItemView","unchecked","set_filters","last_clicked","_handleChecked","_triggerChange","_handleUnchecked","_triggerUnset","RegionsView","_handleCountriesUnlent","codes","all_selected","facet","_getSelected","selected_countries_in_region","selected_iso_codes","merge","_handleSubmit","doneButton","CountryItemView","_checkAllChecked","_handleRegionSelect","_changeAll","_handleRegionDeselect","isSelected","suggestionEngines","_handleInput","_handlePicked","suggestion","searchBox","typeahead","allowed","engines","engine","templates","highlight","classNames","menu","multiButtonView","SliderFilterItemView","lightbox","slider","slider_item","item_term","item_name","_handleLightbox","low","high","as_percent","show_percent","start","connect","noUiSlider","Link","MiscFiltersItemView","sf_lightbox","misc_item","item_id","_showClearKeywordButton","_clearKeyword","keyword","MessagesView","showInboxView","_showView","showSentMessagesView","_startLoading","_stopLoading","_handleDelete","_handleNavigate","_switchPath","_handlePageChange","_updateResults","_handleSend","is_sent","messages","loadingCounter","sentMessages","MessageView","PaginationView","paginationView","ComposeMessageView","message_body","recipient_id","_handleOpenReply","other_lender","user_public","_serializeLender","lender","public","lenderPage","whereabouts","publicId","recipient","sender","PortfolioView","defaultLoanFilters","iDisplayStart","iDisplayLength","showLoansView","_getCountries","_getPartners","_executeLoanSearch","lastLoanSearchRequest","abort","loanFilters","_handleLoanSearchDone","_handleGetCountriesDone","_handleGetPartnersDone","aaData","iTotalRecords","lastLoanCount","_handleTeamAssign","new_team_id","num_purchases_changed","_handleTeamAssignDone","_handleTeamAssignFailure","_exportLoanData","noLoans","LoanRowView","loan_row","clearFilters","_handleFilterToggle","$toggle","_handleExportLoanData","filters_expanded","repaymentsLightbox","previousTeams","_getImageContext","_handleTeamChange","new_team","_handleRepaymentsLightbox","creditChanges","chain","createTime","loss","_serializeLoanAmount","_serializeLoanDetails","partner_url","dedication","partnerId","trusteeId","toKiva","b_id","hasCountry","partnerTrusteeUrl","_serializeLoanImage","multiply","sharedArrearsAmount","repaidAmountTotal","repaidAmountToYou","_serializeShare","shareAmount","dateLent","latestSharePurchaseDate","promoCreditUsedAmount","hasPaidSomething","_serializeTeams","canChangeTeamAssignment","current_team","teamPublicId","teamName","teamUrl","teamImage","$input","_optionsWithSelectedValue","option","_serializeCountries","pairs","pair","_serializePartners","$filters","is_large","loanStatusOptions","sStatus","loanCountryOptions","sCountries","partnerOptions","sPartners","loan_statuses","SettingsHeaderView","SettingsView","SettingsAccountView","SettingsDataView","SettingsCreditView","SettingsCreditSidebarView","scrollToTop","showSettingsAccountView","settingsAccountView","docTitle","pageTitle","breadcrumb","showSettingsCreditView","settingsCreditView","settingsCreditSidebarView","showSettingsDataView","settingsDataView","headerView","AccountNavSubView","SettingsTitleView","settingsTitleView","settingsTitleRegion","PageTitleViewHgn","AccountEmailView","UpdateAccountFormView","UpdateAccountPasswordFormView","UpdateProfileFormView","onClose","views","gqlStateQuery","_submitForm","submittable","email_address","userAccount","email","has_mfa","change_email_url","handleActionSync","handleActionError","showApiError","FormView","accountModel","updateAccountAction","getActionByName","selectOptions","defaultOption","Auth0","handleSubmitButtonClick","WebAuth","domain","clientID","changePassword","connection","resp","__webpack_exports__","createCommonjsModule","RequestBase","ResponseBase","Agent","_defaults","getLens","b64","validLen","encodeChunk","uint8","end","tmp","num","output","lookup","objectAssignPolyfill","nextSource","keysArray","nextIndex","nextKey","getOwnPropertyDescriptor","object","objectAssign","getLocationFromUrl","hostname","port","trimmed","RequestWrapper","headers","_header","RequestObj","RequestBuilder","_sendTelemetry","_telemetryInfo","_timesToRetryFailedRequests","_universalLoginPage","universalLoginPage","getWindow","DummyStorage","CookieStorage","Warn","disableWarnings","StorageHandler","storage","__tryLocalStorageFirst","windowHelper","warning","Storage","SSODataStorage","buildResponse","errorDescription","wrapCallback","ignoreCasing","errObj","original","statusCode","statusText","error_code","error_description","details","forceLegacyError","policy","objectHelper","toCamelCase","keepOriginal","keepOriginalCasing","decodeURIComponent","toByteArray","charCodeAt","ok","json","Promise","jwksCache","expectedAlg","issuer","audience","leeway","jwksURI","maxAge","__clock","PluginHandler","webAuth","plugins","pluginName","setWebAuth","TransactionManager","transaction","namespace","DEFAULT_NAMESPACE","keyLength","IframeHandler","timeoutCallback","eventListenerType","iframe","timeoutHandle","_destroyTimeout","transientMessageEventListener","proxyEventListener","eventValidator","WebMessageHandler","baseOptions","CrossOriginAuthentication","webMessageHandler","createKey","origin","coId","Redirect","auth0","crossOriginAuthentication","_disableDeprecationWarnings","PopupHandler","_current_popup","Popup","popupOrigin","client","transactionManager","SilentAuthenticationHandler","authenticationUrl","postMessageDataType","postMessageOrigin","UsernamePassword","HostedPages","defaultClock","assert","check","responseType","optional","responseMode","redirectUri","scope","overrides","__tenant","__token_issuer","__jwks_uri","tenant","token_issuer","Authentication","popup","_universalLogin","ssodataStorage","PasswordlessAuthentication","DBConnection","rootUrl","passwordless","dbConnection","Management","Authorization","urlJoin","commonjsGlobal","globalThis","normalize","strArray","resultArray","component","urljoin","hexTable","arrayToObject","plainObjects","acc","combine","compact","refs","compacted","decode","decoder","charset","strWithoutPlus","unescape","encode","defaultEncoder","$0","isBuffer","isRegExp","allowPrototypes","mergeTarget","targetItem","percentTwenties","Format","RFC1738","RFC3986","formats","has$1","arrayPrefixGenerators","brackets","prefix","comma","indices","isArray$1","pushToArray","arr","valueOrArray","toISO","addQueryPrefix","allowDots","charsetSentinel","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","objKeys","has$2","defaults$1","arrayLimit","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseKeys","givenKey","segment","leaf","cleanRoot","0","lib_parse","tempObj","cleanStr","skipIndex","part","bracketEqualsPos","newObj","lib_stringify","arrayFormat","joined","componentEmitter","Emitter","_callbacks","removeListener","removeAllListeners","callbacks","listeners","hasListeners","isObject_1","requestBase","clearTimeout","_timer","_responseTimeoutTimer","_parser","_responseType","serialize","_serializer","_timeout","_responseTimeout","deadline","retry","_maxRetries","_retries","_retryCallback","ERROR_CODES","_shouldRetry","res","override","crossDomain","_retry","_aborted","timedout","_end","_fullfilledPromise","_endCalled","innerResolve","innerReject","_okCallback","_isResponseOK","getHeader","_getFormData","xhr","_auth","user","pass","base64Encoder","password","withCredentials","_withCredentials","redirects","_maxRedirects","maxResponseSize","_maxResponseSize","send","isObj","_formData","_isHost","sortQuery","_sort","_finalizeQueryString","_query","queryArr","_appendQueryString","trace","_timeoutError","reason","errno","_setTimeouts","utils$1_type","utils$1_params","utils$1_parseLinks","responseBase","_setHeaderProperties","ct","_setStatusProperties","statusType","info","clientError","serverError","toError","created","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","unprocessableEntity","_setDefaults","def","agentBase","noop","pushEncodedKeyValuePair","subkey","parseString","isJSON","mime","Response","responseText","line","lines","getAllResponseHeaders","getResponseHeader","_parseBody","Request","new_err","rawResponse","custom_err","del","getXHR","XMLHttpRequest","ActiveXObject","serializeObject","types","xml","urlencoded","msg","accept","auth","btoa","attach","FormData","_callback","retries","crossDomainError","buffer","pipe","write","handleProgress","onprogress","upload","contentType","setRequestHeader","delete","patch","put","byteLength_1","lens","placeHoldersLen","toByteArray_1","Arr","curByte","revLookup","fromByteArray_1","extraBytes","len2","Uint8Array","base64Js","byteLength","fromByteArray","base64Url","mod","condition","value_message","supportsIsArray","toSnakeCase","exceptions","newKey","wasPrevNumber","wasPrevUppercase","blacklist","blacklistedKeys","base","with","object2","keys2","getKeysNotIn","allowedKeys","notAllowed","getOriginFromUrl","parsed","trimUserDetails","getMethod","getBody","getUrl","getHeaders","setCommonConfiguration","ongoingRequest","noHeaders","getTelemetryData","telemetryName","clientInfo","jsonClientInfo","getDocument","getOrigin","removeItem","js_cookie","converter","api","toUTCString","stringifiedAttributes","attributeName","jar","cookies","read","withConverter","failover","sub","ssodata","lastUsedConnection","lastUsedSub","invalidToken","tokenParams","authorizeParams","parametersWhitelist","oauthTokenParams","oauthAuthorizeParams","lib","Base","mixIn","$super","WordArray","words","sigBytes","clamp","random","enc","Hex","Latin1","Utf8","BufferedBlockAlgorithm","_nDataBytes","_append","_process","blockSize","_minBufferSize","_doProcessBlock","Hasher","cfg","_doReset","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","i$1","sqrt","SHA256","_hash","HmacSHA256","Base64","_map","_reverseMap","fromNumber","fromString","fromInt","mp","invDigit","mpl","mph","um","DB","mt2","r2","q3","ONE","dlShiftTo","mu","navigator","appName","am","DM","DV","FV","F1","F2","convert","compareTo","revert","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","ZERO","subTo","copyTo","drShiftTo","fromRadix","lShiftTo","rShiftTo","isEven","exp","negate","toRadix","bitLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","chunkSize","LN2","signum","intValue","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","changeBit","addTo","modInt","millerRabin","getLowestSetBit","shiftRight","modPow","byteValue","shortValue","equals","and","or","xor","andNot","not","bitCount","setBit","clearBit","flipBit","remainder","divideAndRemainder","modInverse","gcd","square","Barrett","crypto","getRandomValues","appVersion","BigInteger","SecureRandom","sha1","sha224","sha256","sha384","sha512","md2","md5","ripemd160","verify","alg","_state","_result","_onerror","_subscribers","MutationObserver","WebKitMutationObserver","process","Uint8ClampedArray","importScripts","MessageChannel","nextTick","characterData","port1","onmessage","port2","postMessage","runOnLoop","runOnContext","_instanceConstructor","_remaining","_enumerate","_eachEntry","_settledAt","_willSettleAt","finally","race","_setScheduler","_setAsap","_asap","polyfill","cast","encoded","signature","kid","aud","iss","nbf","iat","azp","auth_time","nonce","getRsaVerifier","includes","setUTCSeconds","modulus","responseURL","blob","Blob","entries","credentials","validateAccessToken","extensibilityPoint","supports","randomString","bytes","cryptoObj","msCrypto","realm","responseTypeIncludesIdToken","generateTransaction","appState","generateNonce","getStoredTransaction","transactionData","clearTransaction","_window","display","eventListener","eventSourceObject","timeoutHandler","eventData","sourceObject","run","prompt","currentOrigin","redirectUriOrigin","authorizeUrl","buildAuthorizeUrl","parsedHash","validateAuthenticationResponse","login","authenticateBody","client_id","otp","credentialType","credential_type","popupMode","authorizeOptions","loginTicket","login_ticket","co_id","co_verifier","authorize","targetOrigin","theWindow","verifier","loginWithCredentials","signupAndLogin","signup","winchan","WinChan","addListener","attachEvent","detachEvent","extractOrigin","CLOSE_CMD","isIE","rv","userAgent","$1","cleanup","closeInterval","onMessage","securityViolation","messageTarget","relay_url","window_name","window_features","contentWindow","closed","originalPopup","onOpen","doPost","msgTarget","onDie","o_O","frames","opener","onUnload","ohWell","detach","winopts","arg","urlHelper","calculatePosition","screenX","screenLeft","screenY","screenTop","clientWidth","clientHeight","preload","popupPosition","popupOptions","windowFeatures","kill","relayUrl","winchanOptions","buildPopupHandler","pluginHandler","getPopupHandler","popupHandler","originUrl","parseHash","popOpts","owp","processParams","passwordlessVerify","phoneNumber","verificationCode","loginWithResourceOwner","usePostMessage","getCallbackHandler","getEventValidator","callbackValue","formHtml","div","_document","usernamePassword","getSSOData","withActiveDirectories","ldaps","parsedQs","hashStr","responseTypes","__enableIdPInitiatedLogin","__enableImpersonation","transactionState","transactionStateMatchesState","transactionNonce","qsParams","accessToken","access_token","idToken","id_token","idTokenPayload","refreshToken","refresh_token","expiresIn","expires_in","tokenType","token_type","validateToken","validationError","at_hash","decodedToken","userInfo","errUserInfo","profile","renewAuth","checkSession","passwordlessStart","authParams","signupAndAuthorize","passwordlessLogin","crossOriginOptions","crossOriginAuthenticationCallback","crossOriginVerification","logout","buildLogoutUrl","buildVerifyUrl","qString","auth0Client","redirect_uri","response_type","cleanOption","metadata","user_metadata","userMetadata","connection_scope","federated","loginWithDefaultDirectory","grantType","oauthToken","grant_type","clientId","ssodataInformation","sso","lastUsedUserID","lastUsedUsername","lastUsedClientID","sessionClients","getChallenge","delegation","getUserCountry","getUser","userId","patchUserMetadata","patchUserAttributes","linkUser","secondaryUserToken","link_with","$resetImageButton","$deleteImageButton","$chooseFileInput","handleDeleteImageButtonClick","confirm","handleResetImageButtonClick","updateProfileImage","clientImageModel","handleInputFileChange","handleUpdateProfileError","handleUpdateProfileSync","updatePersistedImage","handleDeleteProfileImageError","handleDeleteProfileImageSync","setDefaultImage","handlePersistedImageChange","updateLoggedInImage","isDefault","handleFileDataChange","resetImageInput","wrap","unwrap","getFileData","baseUrl","showUpdateImageButton","Modernizr","filereader","imageModel","stickThatShit","updateView","updateModel","onGet","visible","myAccountRequest","profileRequest","imageRequest","profileModel","updateProfileAction","ClientImageModel","defaultImageId","persistedImage","UpdateDataSettingsFormView","DecisionLightbox","cookie_opt_out","pii_sharing_opt_out","submit_save_data_label","submit_saving_label","_changeCookieOptOut","_updateLocalValue","_changePiiSharingOptOut","remote_key","local_key","compare_value","new_value","old_value","_checkValuesChanged","_checkSubmitButton","_isSubmittable","localCookieValue","remoteCookieValue","localPiiSharingValue","remotePiiSharingValue","newCookieValue","newPiiSharingValue","cookieOptOut","piiSharingOptOut","kvgdpr","_queryStringToJSON","opted_out","writeQuery","_handleCloseAccountClick","_closeAccount","doneUrl","_isChanged","qs","legal_cookie_url","legal_pii_data_url","withdraw_funds_url","stateWatcher","UpdateUserFundAccountFormView","AutolendRedirectView","SubscriptionsRedirectView","isMonthlyGoodSubscriber","is_subscriber","handleUpdateUserFundAccountSync","handleUpdateUserFundAccountError","defaultFundAccount","updateUserFundAccountAction","AutolendLink","templateVariables","SubscriptionsLink","AvailableKivaCreditView","SettingsCreditSidebarViewStache","handleLearnMoreClick","showLightbox","colorbox","inline","availableKivaCreditView","is_auto_deposit_active","handleKivaCreditClick","showMyCreditSummaryLightbox","defaultFundAccountModel","TeamActivityView","resolveNextTeams","fullCollectionUrl","nextUrl","myTeamsRequestFail","errorModel","errorString","captureMessage","level","activitiesRequestFail","showTeamActivityFeed","myTeamsRequest","activitiesRequest","Region","teamActivityView","TeamActivityFeedViewStache","TeamActivityItemView","showMoreLink","handleShowMoreLinkClick","$button","isLoadingButton","loadingButton","enableLoading","removeData","TeamActivityItemViewStache","TeamJoinActivityView","TeamLoanActivityView","TeamMessageActivityView","activityView","actor","actorPublicId","actorUrl","actorName","teamImageId","activityType","teamImageSrc","isTeamMessage","isLoanMake","isTeamJoin","LenderActivityAbstractView","TeamJoinActivityViewStache","lenderPublicId","__lenderImageUrl","__lenderProfileUrl","TeamLoanActivityViewStache","__loanImageUrl","TeamMessageActivityViewStache","messageId","__lenderImageSrc","__messageBody","processTeamMessage","__teamMessageDirectUrl","msgID","DropdownMenu","TeamActivityMyTeamsViewStache","genTeamUrl","myTeams","__imageUrl","__teamUrl","__teamMessagesUrl","__setAsPreferredTeamUrl","preferredTeamId","__quitTeamUrl","numTeams","allTeamsUrl","Menu","$dropdownIcon","classSelector","iconClass","$dropdownContent","contentClass","hiddenClass","isVisible","visibleClass","group","setVisible","isDropdownElement","stop","TrusteeListingView","showListingView","_handleResultPrevious","_handleResultNext","_handleResultFirst","_handleResultLast","trusteeCollection","TrusteeCardView","since","timeOnKiva","profileHref","imageSmall","story","whyInterested","stats","totalValue","totalLoansValue","repaymentRate","prettyRepaymentRate","numFundraisingLoans","fundraisingLoansHref","optionsWithSelectedValue","trusteeSortOptions","modelDefaults","fundRaisingOnly","attrVal","usStates","TeamRequestsBackgrid","teamRequestsViewTpl","$teamRequestsContainer","$numTeamRequests","__requestsCount","__showMoreRequests","__teamRequestsUrl","teamRequestsBackgrid","initializeBackgrid","TeamRequestActionCell","LenderCardView","PageHandle","isRewind","isBack","isForward","isFastForward","currentPage","firstPage","lastPage","pageIndex","anchor","hasPreviousPage","hasNextPage","totalPages","changePage","getFirstPage","getPreviousPage","getNextPage","getLastPage","getPage","Paginator","windowSize","slideScale","controls","rewind","forward","fastForward","renderIndexedPageHandles","renderMultiplePagesOnly","pageHandle","goBackFirstOnSort","slideMaybe","slideThisMuch","_calculateWindow","windowStart","makeHandles","handles","winStart","winEnd","handleCtorOpts","handle","ul","finiteInt","queryStringToParams","kvp","ls","kvps","_isArray","runOnceAtLastHandler","eventHandlers","_events","lastHandler","oldCallback","_extend","_omit","_clone","_each","_pick","_contains","_isEmpty","_pairs","toPairs","_invert","_isFunction","_isObject","_keys","_isUndefined","BBColProto","PARAM_TRIM_RE","URL_TRIM_RE","pageSize","totalRecords","sortKey","queryParams","directions","PageableProto","switchMode","resetState","full","_initState","_makeFullCollection","thisProto","_makeCollectionEventHandler","pageCol","fullCol","_handlers","pageStart","pageEnd","fullIndex","addAt","colToAdd","onRemove","_checkState","modelToRemove","onAdd","nextModel","removedIndex","tail","setPageSize","_fullComparator","pageableCollection","allHandler","pageNum","pageModels","getPageByOffset","sync","newLinks","parseLinks","linkHeader","relations","linkValue","linkParts","paramParts","newState","parseState","parseRecords","serverState","serverVal","qsi","extraKvps","_makeComparator","delComp","delFullComp","side","lunr","ServerSideFilter","clearSearchBox","showClearButtonMaybe","$clearButton","clearButton","ClientSideFilter","wait","_debounceMethods","shadowCollection","reindex","methodNames","methodName","debounce","makeRegExp","makeMatcher","regexp","matcher","LunrFilter","ref","addToIndex","removeFromIndex","resetIndex","updateIndex","boost","documentStore","intersection","searchResults","TeamRequestActionCellTpl","handleApproveRequestClick","updateTeamRequest","handleRejectRequestClick","handleUpdateRequestSync","handleUpdateRequestError","fadeRow","handleRequestStatusChange","opacity","TeamRequestCardViewTpl","loanBecause","__isPublic","__memberSince","memberSince","__lenderName","__url","__loanBecause","__imgUrl","teamId","lenderId","TeamMembersBackgrid","bindings","givenName","updatedTeamMembersCollection","resetTeamMembersCollection","renderShowMore","$teamMembersContainer","teamMembersBackgrid","$sectionHeader","teamMembersFilter","decMemmberCount","hasChanged","removeTeamMember","incMemberCount","memberCount","searchResultsCount","Siren","TeamMemberActionsCell","TeamMemberCardView","TeamMemberActionsCellTpl","handleSendMessageLinkClick","handleDismissLinkClick","lenderName","getLenderName","deleteMember","handleRemoveCaptainhoodLinkClick","updateCaptainhood","handleBestowCaptainhoodLinkClick","handleDeleteMemberSync","handleDeleteMemberError","handleUpdateMemberSync","handleUpdateMemberError","isSelf","userPublicId","__showUpdateCaptainhood","__showDismissFromTeam","__showSendMessageLink","TeamMemberCardTpl","svgAddClass","$svg","currentClass","svgRemoveClass","advanceHighlight","steps","activeStep","activeClass","arrows","texts","hiddenTextClass","activeTextClass","numSteps","$tapButton","$closeIcon","$howItWorksAccordion","onLoanTagCheckboxClick","tagId","tag","MAX_NUM_TAGS_ALLOWED","onAjaxProcessAddOrRemoveLoanTag","ajaxResult","updateTagSection","user_not_logged_in","selectedTags","tagHtml","commentTemplate","addComment","isUserTheBorrower","isUserAdmin","commentText","apiRootV2","resultProperties","authorProfileUrl","authorImageUrl","authorName","authorWhereabouts","newComment","deleteComment","commentCount","responseJSON","summary","isPublic","maxThreshold","commentId","unsubscribe","flagComment","$flagAnchor","numCommas","getFormattedIndex","decimalRequired","cursor","selectionStart","cursorEnd","selectionEnd","newString","prefixValue","decimalModifier","newCursor","setDateIfValid"],"mappings":"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D,EAAE,uEAA2EkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,mDAAqDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,mDAAqDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EAAE,sDAAwDkD,EAAElD,EAAE,KAAOf,GAAGiE,EAAElD,EA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","file":"0.bundle.js","sourcesContent":["webpackJsonp([0],Array(502).concat([\n/* 502 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t MainView = __webpack_require__(580),\n\t BorrowerTransactionsView = __webpack_require__(620),\n\t BorrowerAutoRepaymentsView = __webpack_require__(624),\n\t SecondaryNavView = __webpack_require__(561),\n\t TertiaryNavView = __webpack_require__(562);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap',\n\n\t\tregions: {\n\t\t\tsecondaryNavRegion: '.secondary-nav-region',\n\t\t\ttertiaryNavRegion: '.tertiary-nav-region',\n\t\t\tmainRegion: '.main'\n\n\t\t\t////////////////////////////////////////////////////////////\n\t\t}, setCurrentHref: function setCurrentHref(href) {\n\t\t\tthis.secondaryNavView.setCurrentHref(href);\n\t\t\tthis.tertiaryNavView.setCurrentHref(href);\n\t\t},\n\n\t\tshowBorrowerHomeView: function showBorrowerHomeView() {\n\t\t\tthis.mainRegion.show(this.mainView, { preventDestroy: true });\n\t\t\tthis.setCurrentHref('/my/borrower');\n\t\t},\n\n\t\tshowBorrowerPreviousLoansView: function showBorrowerPreviousLoansView() {\n\t\t\tthis.mainRegion.show(this.mainView, { preventDestroy: true });\n\t\t\tthis.setCurrentHref('/my/borrower/previous-loans');\n\t\t},\n\n\t\tshowBorrowerTransactionsView: function showBorrowerTransactionsView() {\n\t\t\tthis.mainRegion.show(this.transactionsView, { preventDestroy: true });\n\t\t\tthis.setCurrentHref('/my/borrower/transactions');\n\t\t},\n\n\t\tshowBorrowerAutoRepaymentsView: function showBorrowerAutoRepaymentsView() {\n\t\t\tif (this.initOptions.auto_repayment.autoRepaymentsEnabled) {\n\t\t\t\tthis.mainRegion.show(this.autoRepaymentsView, { preventDestroy: true });\n\t\t\t\tthis.setCurrentHref('/my/borrower/auto-repayments');\n\t\t\t} else {\n\t\t\t\tthis.showBorrowerHomeView();\n\t\t\t\twwwApp.tipMsg('auto-repayments are not enabled.');\n\t\t\t}\n\t\t}\n\n\t\t/** bubble up events to the controller */\n\t\t, _bubbleNavigate: function _bubbleNavigate(href) {\n\t\t\tthis.trigger('navigate', href);\n\t\t},\n\t\t_bubbleAutoRepaymentGetStatus: function _bubbleAutoRepaymentGetStatus(new_status) {\n\t\t\tthis.trigger('autoRepaymentGetStatus', new_status);\n\t\t},\n\n\t\tupdateLoan: function updateLoan(loan, lenderCount) {\n\t\t\tthis.mainView.updateLoan(loan, lenderCount);\n\t\t\tthis.autoRepaymentsView.updateLoan(loan, lenderCount);\n\t\t},\n\t\tupdateTransactionResults: function updateTransactionResults(transactions, total_count, enable_previous, enable_next) {\n\t\t\tthis.transactionsView.updateTransactionResults(transactions, total_count, enable_previous, enable_next);\n\t\t},\n\n\t\tupdateAutoRepaymentStatus: function updateAutoRepaymentStatus(new_status) {\n\t\t\tthis.mainView.updateAutoRepaymentStatus(new_status);\n\t\t\tthis.autoRepaymentsView.updateAutoRepaymentStatus(new_status);\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.initOptions = options;\n\t\t\tthis.mainView = new MainView(options);\n\t\t\tthis.transactionsView = new BorrowerTransactionsView(options);\n\t\t\tthis.autoRepaymentsView = new BorrowerAutoRepaymentsView(options);\n\n\t\t\t// setup navigation\n\t\t\tvar nav_options = {\n\t\t\t\tactive: options.active_nav_link,\n\t\t\t\tlinks: options.nav_links\n\t\t\t};\n\n\t\t\tthis.secondaryNavView = new SecondaryNavView(nav_options);\n\t\t\tthis.secondaryNavRegion.show(this.secondaryNavView);\n\n\t\t\tthis.tertiaryNavView = new TertiaryNavView(nav_options);\n\t\t\tthis.tertiaryNavRegion.show(this.tertiaryNavView);\n\n\t\t\tthis.listenTo(this.autoRepaymentsView, 'autoRepaymentGetStatus', this._bubbleAutoRepaymentGetStatus);\n\n\t\t\tthis.listenTo(this.mainView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.transactionsView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.autoRepaymentsView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.secondaryNavView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.tertiaryNavView, 'navigate', this._bubbleNavigate);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 503 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t moment = __webpack_require__(546),\n\t uri = __webpack_require__(52),\n\t CheckoutSteps = __webpack_require__(633),\n\t BasketView = __webpack_require__(635),\n\t PaymentView = __webpack_require__(649),\n\t ThanksView = __webpack_require__(655);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap',\n\n\t\tregions: {\n\t\t\tcheckoutSteps: '#checkoutSteps',\n\t\t\tmain: '#checkoutWrap'\n\n\t\t\t// method called from controller\n\t\t}, setRegionView: function setRegionView(page) {\n\t\t\tswitch (page) {\n\n\t\t\t\tcase 'payment':\n\t\t\t\t\tif (!this.paymentView) {\n\t\t\t\t\t\tthis.paymentView = new PaymentView({ store: this.store });\n\t\t\t\t\t}\n\t\t\t\t\tthis.showChildView('main', this.paymentView, { preventDestroy: true });\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'thanks':\n\t\t\t\t\tif (!this.thanksView) {\n\t\t\t\t\t\tthis.thanksView = new ThanksView({ store: this.store });\n\t\t\t\t\t}\n\t\t\t\t\tthis.showChildView('main', this.thanksView, { preventDestroy: true });\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (!this.basketView) {\n\t\t\t\t\t\tthis.basketView = new BasketView({ store: this.store });\n\t\t\t\t\t}\n\t\t\t\t\tthis.showChildView('main', this.basketView, { preventDestroy: true, forceShow: true });\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tupdateUrl: function updateUrl(page) {\n\t\t\tvar paths = {\n\t\t\t\tbasket: '/basket',\n\t\t\t\tpayment: '/basket/payment',\n\t\t\t\tthanks: '/thanks'\n\t\t\t};\n\n\t\t\tvar path = paths[page];\n\n\t\t\tif (path && uri().path !== path) {\n\t\t\t\tBackbone.history.navigate(path);\n\t\t\t}\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.store = options.store;\n\n\t\t\t// configure moment to show minutes for relative time up to 2 hours / 120 minutes\n\t\t\tmoment.relativeTimeThreshold('m', 120);\n\n\t\t\tvar self = this;\n\t\t\tthis.store.subscribe(['page'], function (state) {\n\t\t\t\t// update view based on subscribed page value\n\t\t\t\tself.setRegionView(state.page);\n\t\t\t\tself.updateUrl(state.page);\n\t\t\t});\n\n\t\t\t// Setup Checkout Steps\n\t\t\tthis.showChildView('checkoutSteps', new CheckoutSteps({ store: this.store }));\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 504 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t moment = __webpack_require__(546),\n\t Marionette = __webpack_require__(209),\n\t ControlView = __webpack_require__(659),\n\t ResultsView = __webpack_require__(666),\n\t AllCountriesLentView = __webpack_require__(678),\n\t FiltersView = __webpack_require__(680),\n\t lightboxTemplate = __webpack_require__(572),\n\t numeral = __webpack_require__(73);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.mainWrapper',\n\n\t\tregions: {\n\t\t\tresultsRegion: '.results-region'\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .filter-clear-button': '_clearFilterValuesWithTrigger',\n\t\t\t'click .exit-off-canvas.hide-for-large-up': '_scrollToTop'\n\t\t},\n\n\t\tclearCategory: function clearCategory() {\n\t\t\tthis.$('.off-canvas-wrap').removeClass('hide-filters-for-xxlarge-up').addClass('show-filters-for-xxlarge-up');\n\t\t\tthis.controlView.clearCategory();\n\t\t},\n\n\t\tshowAllCountriesLentMessage: function showAllCountriesLentMessage() {\n\t\t\tthis.resultsRegion.show(this.allCountriesLentView);\n\t\t},\n\n\t\ttoggleFilterLinks: function toggleFilterLinks(action) {\n\t\t\tthis.controlView.toggleFilterLinks(action);\n\t\t\tthis.filtersView.toggleFilterLinks(action);\n\t\t},\n\n\t\tupdateCategory: function updateCategory(name, description) {\n\t\t\tthis.$('.off-canvas-wrap').removeClass('move-right').removeClass('show-filters-for-xxlarge-up').addClass('hide-filters-for-xxlarge-up');\n\t\t\tthis.controlView.updateCategory(name, description);\n\t\t},\n\n\t\tupdateFacets: function updateFacets(facets) {\n\t\t\tthis.filtersView.updateFacets(facets);\n\t\t},\n\n\t\tupdateFilters: function updateFilters(filters) {\n\t\t\tthis.filtersView.updateFilters(filters);\n\t\t},\n\n\t\tupdateFiltersList: function updateFiltersList(filters) {\n\t\t\tthis.controlView.updateFiltersList(filters);\n\t\t},\n\n\t\tupdateLoanBasketStatus: function updateLoanBasketStatus(loan_id, amount) {\n\t\t\tthis.resultsView.updateBasketStatus(loan_id, amount);\n\t\t},\n\n\t\tupdateLoanCount: function updateLoanCount(count) {\n\t\t\tthis.controlView.updateLoanCount(count);\n\t\t\tthis.$('.results-overlay-text .count').html(numeral(count).format('0,0'));\n\t\t},\n\n\t\tupdateLoanFavoriteStatus: function updateLoanFavoriteStatus(loan_id, is_favorite) {\n\t\t\tthis.resultsView.updateFavoriteStatus(loan_id, is_favorite);\n\t\t},\n\n\t\tupdateLoading: function updateLoading(is_loading) {\n\t\t\tif (is_loading) {\n\t\t\t\tthis.$('.off-canvas-wrap').addClass('loading');\n\t\t\t} else {\n\t\t\t\tthis.$('.off-canvas-wrap').removeClass('loading');\n\t\t\t}\n\t\t},\n\n\t\tupdateResults: function updateResults(loans, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tif (this.resultsRegion.currentView != this.resultsView) {\n\t\t\t\tthis.resultsRegion.show(this.resultsView);\n\t\t\t}\n\n\t\t\tthis.resultsView.updateResults(loans, enable_previous, enable_next, enable_first, enable_last);\n\t\t},\n\n\t\tupdateResultsViewType: function updateResultsViewType(is_list_view) {\n\t\t\tthis._setResultsViewType(is_list_view);\n\t\t\tthis.controlView.updateViewType(is_list_view);\n\t\t\tthis.resultsView.updateViewType(is_list_view);\n\t\t},\n\n\t\tupdateSort: function updateSort(value) {\n\t\t\tthis.controlView.updateSort(value);\n\t\t},\n\n\t\t_addSaveSearchHandlers: function _addSaveSearchHandlers() {\n\t\t\tvar self = this;\n\t\t\tvar triggerSaveSearch = function triggerSaveSearch(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tself._saveSearch();\n\t\t\t};\n\t\t\t$('.submit-save-search').click(triggerSaveSearch);\n\t\t\t$(document).on('close.fndtn.reveal', '[data-reveal]', function () {\n\t\t\t\t$('.submit-save-search').unbind('click', triggerSaveSearch);\n\t\t\t\tself.filtersView._clearSaveSearchLightbox();\n\t\t\t});\n\t\t},\n\n\t\t_clearFilterValuesWithTrigger: function _clearFilterValuesWithTrigger(e) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleFilterClear();\n\t\t},\n\n\t\tclearFilterValues: function clearFilterValues() {\n\t\t\tthis.filtersView.clearFilterValues();\n\t\t},\n\n\t\t_configureMoment: function _configureMoment() {\n\t\t\tmoment.relativeTimeThreshold('m', 120);\n\t\t\tmoment.relativeTimeThreshold('h', 48);\n\n\t\t\tmoment.updateLocale('en', {\n\t\t\t\trelativeTime: {\n\t\t\t\t\tfuture: 'in %s',\n\t\t\t\t\tpast: '%s ago',\n\t\t\t\t\ts: '%d seconds',\n\t\t\t\t\tm: '1 minute',\n\t\t\t\t\tmm: '%d minutes',\n\t\t\t\t\th: '1 hour',\n\t\t\t\t\thh: '%d hours',\n\t\t\t\t\td: '1 day',\n\t\t\t\t\tdd: '%d days',\n\t\t\t\t\tM: '1 month',\n\t\t\t\t\tMM: '%d months',\n\t\t\t\t\ty: '1 year',\n\t\t\t\t\tyy: '%d years'\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_handleChangeView: function _handleChangeView(view) {\n\t\t\tthis.trigger('change-results-view', view);\n\t\t},\n\n\t\t_handleFavorite: function _handleFavorite(loan_id) {\n\t\t\tthis.trigger('favorite', loan_id);\n\t\t},\n\n\t\t_handleFilterAdd: function _handleFilterAdd(data) {\n\t\t\tthis.trigger('filter-add', data);\n\t\t},\n\n\t\t_handleFilterChange: function _handleFilterChange(data) {\n\t\t\tthis.trigger('filter-change', data);\n\t\t},\n\n\t\t_handleFilterClear: function _handleFilterClear() {\n\t\t\tthis.trigger('filter-clear');\n\t\t},\n\n\t\t_handleFilterUnset: function _handleFilterUnset(data) {\n\t\t\tthis.trigger('filter-unset', data);\n\t\t},\n\n\t\t_handleLeaveCategory: function _handleLeaveCategory() {\n\t\t\tthis.trigger('leave-category');\n\t\t},\n\n\t\t_handleLend: function _handleLend(loan_id) {\n\t\t\tthis.trigger('lend', loan_id);\n\t\t},\n\n\t\t_handleMcLightbox: function _handleMcLightbox(mc_url) {\n\t\t\tthis._showMessageCatalogLightbox(mc_url);\n\t\t},\n\n\t\t_handleSfLightbox: function _handleSfLightbox(solution_id) {\n\t\t\tthis._showSalesForceLightbox(solution_id);\n\t\t},\n\n\t\t_handleNext: function _handleNext() {\n\t\t\tthis.trigger('next');\n\t\t},\n\n\t\t_handlePrevious: function _handlePrevious() {\n\t\t\tthis.trigger('previous');\n\t\t},\n\n\t\t_handleFirst: function _handleFirst() {\n\t\t\tthis.trigger('first');\n\t\t},\n\n\t\t_handleLast: function _handleLast() {\n\t\t\tthis.trigger('last');\n\t\t},\n\n\t\t_handleUnfavorite: function _handleUnfavorite(loan_id) {\n\t\t\tthis.trigger('unfavorite', loan_id);\n\t\t},\n\n\t\t_saveSearch: function _saveSearch() {\n\t\t\tthis.trigger('save-search');\n\t\t},\n\n\t\t_scrollToTop: function _scrollToTop() {\n\t\t\twindow.scrollTo(0, 0);\n\t\t},\n\n\t\t_setCountriesUnlent: function _setCountriesUnlent() {\n\t\t\tthis.trigger('set-countries-unlent');\n\t\t},\n\n\t\t_setResultsViewType: function _setResultsViewType(is_list_view) {\n\t\t\tif (is_list_view) {\n\t\t\t\tthis.$('.off-canvas-wrap').addClass('list-view');\n\t\t\t} else {\n\t\t\t\tthis.$('.off-canvas-wrap').removeClass('list-view');\n\t\t\t}\n\t\t},\n\n\t\t_showMessageCatalogLightbox: function _showMessageCatalogLightbox(mc_url) {\n\t\t\t$.getJSON(wwwApp.ajaxUrl('mc/' + mc_url)).done(function (data) {\n\t\t\t\t$(lightboxTemplate.render({ descriptionTitle: data.term_title, descriptionText: data.term_definition })).foundation('reveal', 'open');\n\t\t\t});\n\t\t},\n\n\t\t_showSalesForceLightbox: function _showSalesForceLightbox(solution_id) {\n\t\t\t$.get(wwwApp.ajaxUrl('ajaxProxy', { href: 'https://na84.salesforce.com/_ui/selfservice/pkb/PublicKnowledgeSolution/d?orgId=00D500000006svl&id=' + solution_id })).done(function (response) {\n\t\t\t\tresponse = response.replace(/<\\/?(span|font|blockquote|img|iframe|script).*?>|style=\".*?\"/g, '');\n\n\t\t\t\tvar title = $('td .solutionTitleDetail', response).html();\n\t\t\t\tvar text = $('td .htmlDetailElementDiv', response).html();\n\n\t\t\t\t$(lightboxTemplate.render({ descriptionTitle: title, descriptionText: text })).foundation('reveal', 'open');\n\t\t\t});\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\t/* jshint maxstatements: 29 */\n\t\t\tthis._configureMoment();\n\t\t\tthis._setResultsViewType(options.is_list_view);\n\n\t\t\tthis.controlView = new ControlView(options);\n\t\t\tthis.resultsView = new ResultsView(options);\n\t\t\tthis.filtersView = new FiltersView(options);\n\t\t\tthis.allCountriesLentView = new AllCountriesLentView();\n\n\t\t\tthis.listenTo(this.resultsView, 'lend', this._handleLend);\n\t\t\tthis.listenTo(this.resultsView, 'favorite', this._handleFavorite);\n\t\t\tthis.listenTo(this.resultsView, 'unfavorite', this._handleUnfavorite);\n\t\t\tthis.listenTo(this.resultsView, 'previous', this._handlePrevious);\n\t\t\tthis.listenTo(this.resultsView, 'next', this._handleNext);\n\t\t\tthis.listenTo(this.resultsView, 'first', this._handleFirst);\n\t\t\tthis.listenTo(this.resultsView, 'last', this._handleLast);\n\t\t\tthis.listenTo(this.resultsView, 'filter-clear', this._handleFilterClear);\n\t\t\tthis.listenTo(this.allCountriesLentView, 'filter-clear', this._handleFilterClear);\n\n\t\t\tthis.listenTo(this.filtersView, 'add', this._handleFilterAdd);\n\t\t\tthis.listenTo(this.filtersView, 'change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.filtersView, 'unset', this._handleFilterUnset);\n\t\t\tthis.listenTo(this.filtersView, 'save-search-handlers', this._addSaveSearchHandlers);\n\t\t\tthis.listenTo(this.filtersView, 'set-countries-unlent', this._setCountriesUnlent);\n\t\t\tthis.listenTo(this.filtersView, 'mc-lightbox', this._handleMcLightbox);\n\t\t\tthis.listenTo(this.filtersView, 'sf-lightbox', this._handleSfLightbox);\n\n\t\t\tthis.listenTo(this.controlView, 'change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.controlView, 'unset', this._handleFilterUnset);\n\t\t\tthis.listenTo(this.controlView, 'save-search-handlers', this._addSaveSearchHandlers);\n\t\t\tthis.listenTo(this.controlView, 'leave-category', this._handleLeaveCategory);\n\t\t\tthis.listenTo(this.controlView, 'change-view', this._handleChangeView);\n\n\t\t\t$(document).on('open.fndtn.offcanvas', '[data-offcanvas]', function () {\n\t\t\t\t$('#mobile-basket-button').addClass('off-screen');\n\t\t\t}).on('close.fndtn.offcanvas', '[data-offcanvas]', function () {\n\t\t\t\t$('#mobile-basket-button').removeClass('off-screen');\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 505 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t _ = __webpack_require__(11),\n\t $ = __webpack_require__(0),\n\t MainView = __webpack_require__(703),\n\t SecondaryNavView = __webpack_require__(561),\n\t TertiaryNavView = __webpack_require__(562);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap',\n\n\t\tregions: {\n\t\t\tsecondaryNavRegion: '.secondary-nav-region',\n\t\t\ttertiaryNavRegion: '.tertiary-nav-region',\n\t\t\tmainRegion: '.main'\n\t\t},\n\n\t\tcloseLightboxes: function closeLightboxes() {\n\t\t\t$(document).foundation('reveal', 'close');\n\t\t},\n\n\t\tsetLoading: function setLoading(loading) {\n\t\t\tthis.mainView.setLoading(loading);\n\t\t\tthis.mainRegion.show(this.mainView, { forceShow: true });\n\t\t},\n\n\t\tupdateNavigation: function updateNavigation(path) {\n\t\t\tthis.secondaryNavView.setCurrentHref(path);\n\t\t\tthis.tertiaryNavView.setCurrentHref(path);\n\t\t},\n\n\t\tupdateResults: function updateResults(state) {\n\t\t\tthis.mainView.update(state);\n\t\t\tthis.mainRegion.show(this.mainView, { forceShow: true });\n\t\t},\n\n\t\t_bubbleDelete: function _bubbleDelete(message_id, is_only_message) {\n\t\t\tthis.trigger('delete', message_id, is_only_message);\n\t\t},\n\n\t\t_bubbleNavigate: function _bubbleNavigate(href) {\n\t\t\tthis.trigger('navigate', href);\n\t\t},\n\n\t\t_bubblePageChange: function _bubblePageChange(page) {\n\t\t\tthis.trigger('page-change', page);\n\t\t},\n\n\t\t_bubbleSend: function _bubbleSend(data) {\n\t\t\tthis.trigger('send', data);\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tvar nav_options = {\n\t\t\t\tactive: options.active_link,\n\t\t\t\tlinks: options.links\n\t\t\t};\n\n\t\t\tthis.secondaryNavView = new SecondaryNavView(nav_options);\n\t\t\tthis.listenTo(this.secondaryNavView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.secondaryNavRegion.show(this.secondaryNavView);\n\n\t\t\tthis.tertiaryNavView = new TertiaryNavView(nav_options);\n\t\t\tthis.listenTo(this.tertiaryNavView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.tertiaryNavRegion.show(this.tertiaryNavView);\n\n\t\t\tthis.mainView = new MainView({ user_has_lent: options.user_has_lent });\n\t\t\tthis.listenTo(this.mainView, 'delete', this._bubbleDelete);\n\t\t\tthis.listenTo(this.mainView, 'page-change', this._bubblePageChange);\n\t\t\tthis.listenTo(this.mainView, 'send', this._bubbleSend);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 506 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t _ = __webpack_require__(11),\n\t LoansView = __webpack_require__(711);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap',\n\n\t\tresetTeam: function resetTeam(loan_id) {\n\t\t\tthis.loansView.resetTeam(loan_id);\n\t\t},\n\n\t\tsetCountries: function setCountries(countries) {\n\t\t\tthis.loansView.setCountries(countries);\n\t\t},\n\n\t\tsetLoans: function setLoans(loans, loan_count, current_page, num_pages) {\n\t\t\tthis.loansView.setLoans(loans, loan_count, current_page, num_pages);\n\t\t},\n\n\t\tsetLoading: function setLoading(loading) {\n\t\t\tthis.loansView.setLoading(loading);\n\t\t},\n\n\t\tsetPartners: function setPartners(partners) {\n\t\t\tthis.loansView.setPartners(partners);\n\t\t},\n\n\t\t_bubbleTeamAssign: function _bubbleTeamAssign(loan_id, team_id) {\n\t\t\tthis.trigger('team-assign', loan_id, team_id);\n\t\t},\n\n\t\t_bubbleFilterChange: function _bubbleFilterChange(name, value) {\n\t\t\tthis.trigger('filter-change', name, value);\n\t\t},\n\n\t\t_bubbleFilterClear: function _bubbleFilterClear() {\n\t\t\tthis.trigger('filter-clear');\n\t\t},\n\n\t\t_bubbleExportLoanData: function _bubbleExportLoanData() {\n\t\t\tthis.trigger('export-loan-data');\n\t\t},\n\n\t\t_bubblePageChange: function _bubblePageChange(page) {\n\t\t\tthis.trigger('page-change', page);\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.loansView = new LoansView(_.extend(options, { el: '.loans-section' }));\n\t\t\tthis.loansView.render();\n\n\t\t\tthis.listenTo(this.loansView, 'team-assign', this._bubbleTeamAssign);\n\t\t\tthis.listenTo(this.loansView, 'filter-change', this._bubbleFilterChange);\n\t\t\tthis.listenTo(this.loansView, 'filter-clear', this._bubbleFilterClear);\n\t\t\tthis.listenTo(this.loansView, 'export-loan-data', this._bubbleExportLoanData);\n\t\t\tthis.listenTo(this.loansView, 'page-change', this._bubblePageChange);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 507 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t Backbone = __webpack_require__(20),\n\t uri = __webpack_require__(52),\n\t Dropdown = __webpack_require__(557);\n\n\treturn Backbone.View.extend({\n\n\t\tel: '.Account_AccountNavSubView',\n\n\t\tevents: {\n\t\t\t'click a': 'handleLinkClick'\n\t\t},\n\n\t\thandleLinkClick: function handleLinkClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar href = event.target.href;\n\t\t\tvar actionName = wwwApp.router.appRoutes[uri(href).path.slice(1)];\n\n\t\t\t// Internal, client-side redirect if the action exists on the current router\n\t\t\tif (actionName) {\n\t\t\t\twwwApp.redirect('settings', actionName);\n\t\t\t} else {\n\t\t\t\t// External, request the new page from the server\n\t\t\t\turi(href).load();\n\t\t\t}\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Model} model\n * @param {Array} breadcrumbs\n */\n\t\t, handleBreadcrumbChange: function handleBreadcrumbChange(model, breadcrumbs) {\n\t\t\tif ($.isArray(breadcrumbs)) {\n\t\t\t\tthis.dropdown.urHere(breadcrumbs.pop());\n\t\t\t}\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tthis.dropdown = new Dropdown(this.$('.dropdownNav'));\n\n\t\t\tthis.listenTo(wwwApp.conf, 'change:breadcrumb', this.handleBreadcrumbChange);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 508 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.settingsBody',\n\n\t\tregions: {\n\t\t\tsidebarRegion: '.sidebarRegion',\n\t\t\tmainContentRegion: '.mainContentRegion'\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 509 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t TeamActivityViewStache = __webpack_require__(749),\n\t TeamActivitiesFeedView = __webpack_require__(750),\n\t TeamActivityMyTeamsView = __webpack_require__(760);\n\n\treturn Marionette.LayoutView.extend({\n\t\tregions: {\n\t\t\tfeedRegion: '.teamActivityFeedRegion',\n\t\t\tasideRegion: '.teamActivityAsideRegion'\n\t\t},\n\n\t\ttemplate: TeamActivityViewStache,\n\n\t\tserializeData: function serializeData() {\n\t\t\treturn {\n\t\t\t\thasTeams: this.myTeamsCollection.size(),\n\t\t\t\tteamCollageImgSrc: wwwApp.staticUrl('views/Team/img/team-collage.jpg'),\n\t\t\t\texploreTeamsHref: wwwApp.url('ui', 'teams')\n\t\t\t};\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tif (this.myTeamsCollection && this.myTeamsCollection.size()) {\n\t\t\t\tthis.renderTeamActivityMyTeamsView();\n\t\t\t}\n\n\t\t\tif (this.activitiesCollection && this.activitiesCollection.size()) {\n\t\t\t\tthis.renderTeamActivitiesFeedView();\n\t\t\t}\n\t\t},\n\n\t\trenderTeamActivityMyTeamsView: function renderTeamActivityMyTeamsView() {\n\t\t\tvar teamActivityMyTeamsView = new TeamActivityMyTeamsView({\n\t\t\t\tcollection: this.myTeamsCollection\n\t\t\t});\n\n\t\t\tthis.asideRegion.show(teamActivityMyTeamsView);\n\t\t},\n\n\t\trenderTeamActivitiesFeedView: function renderTeamActivitiesFeedView() {\n\t\t\tvar teamActivitiesFeedView = new TeamActivitiesFeedView({\n\t\t\t\tcollection: this.activitiesCollection\n\t\t\t});\n\n\t\t\tthis.feedRegion.show(teamActivitiesFeedView);\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.myTeamsCollection = options.myTeamsCollection;\n\t\t\tthis.activitiesCollection = options.activitiesCollection;\n\t\t}\n\n\t\t//\n\t\t///**\n\t\t// *\n\t\t// * @param {Backbone.Siren.Collection} myTeamsCollection\n\t\t// */\n\t\t//, handleMyTeamsRequestDone: function (myTeamsCollection) {\n\t\t//\tthis.myTeamsCollection = myTeamsCollection;\n\t\t//\tif (myTeamsCollection && myTeamsCollection.size()) {\n\t\t//\t\tthis.renderTeamActivityMyTeamsView();\n\t\t//\t}\n\t\t//}\n\t\t//\n\t\t//\n\t\t///**\n\t\t// *\n\t\t// * @param {Backbone.Siren.Collection} activitiesCollection\n\t\t// */\n\t\t//, handleActivitiesRequestDone: function (activitiesCollection) {\n\t\t//\tthis.activitiesCollection = activitiesCollection;\n\t\t//\tif (activitiesCollection && activitiesCollection.size()) {\n\t\t//\t\tthis.renderTeamActivitiesFeedView();\n\t\t//\t}\n\t\t//}\n\t\t//\n\t\t//\n\t\t//, initialize: function (options) {\n\t\t//\t_.bindAll(this,\n\t\t//\t\t'handleMyTeamsRequestDone'\n\t\t//\t\t, 'handleActivitiesRequestDone'\n\t\t//\t);\n\t\t//\n\t\t//\toptions.myTeamsRequest.done(this.handleMyTeamsRequestDone);\n\t\t//\toptions.activitiesRequest.done(this.handleActivitiesRequestDone);\n\t\t//}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 510 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t ResultsView = __webpack_require__(765),\n\t FiltersView = __webpack_require__(770);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.mainWrapper',\n\n\t\ttemplate: __webpack_require__(772),\n\n\t\tregions: {\n\t\t\tresultsRegion: '.trustee-results-region',\n\t\t\tfiltersRegion: '.trustee-filters-region'\n\t\t},\n\n\t\tupdateResults: function updateResults(trustees, total_count, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tif (!this.resultsRegion.hasView()) {\n\t\t\t\tthis.resultsRegion.show(this.resultsView);\n\t\t\t}\n\t\t\tthis.resultsView.updateResults(trustees, total_count, enable_previous, enable_next, enable_first, enable_last);\n\t\t},\n\t\tupdateFilters: function updateFilters(filters) {\n\t\t\t// no need to check for view presence, because .show is done in initialize, not a network callback.\n\t\t\tthis.filtersView.updateFilters(filters);\n\t\t},\n\t\t_bubbleFilterChange: function _bubbleFilterChange(attrName, attrValue) {\n\t\t\t// console.log(['filter-change',attrName,attrValue]);\n\t\t\tthis.trigger('filter-change', attrName, attrValue);\n\t\t},\n\t\t_bubblePrevious: function _bubblePrevious() {\n\t\t\tthis.trigger('result-previous');\n\t\t},\n\t\t_bubbleNext: function _bubbleNext() {\n\t\t\tthis.trigger('result-next');\n\t\t},\n\t\t_bubbleFirst: function _bubbleFirst() {\n\t\t\tthis.trigger('result-first');\n\t\t},\n\t\t_bubbleLast: function _bubbleLast() {\n\t\t\tthis.trigger('result-last');\n\t\t},\n\t\tserializeData: function serializeData() {\n\t\t\treturn this.initOptions.moduleData.context;\n\t\t},\n\t\tinitialize: function initialize(options) {\n\n\t\t\tthis.initOptions = options;\n\n\t\t\tthis.resultsView = new ResultsView();\n\t\t\tthis.filtersView = new FiltersView();\n\n\t\t\tthis.listenTo(this.resultsView, 'previous', this._bubblePrevious);\n\t\t\tthis.listenTo(this.resultsView, 'next', this._bubbleNext);\n\t\t\tthis.listenTo(this.resultsView, 'first', this._bubbleFirst);\n\t\t\tthis.listenTo(this.resultsView, 'last', this._bubbleLast);\n\n\t\t\tthis.listenTo(this.filtersView, 'filter-change', this._bubbleFilterChange);\n\n\t\t\tthis.render();\n\t\t\tthis.filtersRegion.show(this.filtersView);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 511 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*tombstone inserted 2018-08-08*/try {\n\t/*global tombstone*/tombstone('/sites/www_kiva/client/src/views/views/Account/AccountView.js');\n} catch (e) {}\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backbone = __webpack_require__(20),\n\t Dropdown = __webpack_require__(557);\n\n\treturn Backbone.View.extend({\n\t\tinitialize: function initialize() {\n\t\t\tthis.dropdown = new Dropdown('#topSecondaryNav');\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 512 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0);\n\n\tfunction initLoanConditionsSubView() {\n\t\t$('.siteHeader').hide();\n\t\tif ($('.policyExceptionText').text() && $('.restrictedText').text()) {\n\t\t\t$('.policyExceptionBar').css('top', '0px');\n\t\t\t$('.restrictedLoanBar').css('top', '20px');\n\t\t\t$('.loanInfoContainer').css('top', '40px');\n\t\t\t$('.loanEditorBar').css('top', '145px');\n\t\t} else if ($('.policyExceptionText').text()) {\n\t\t\t$('.policyExceptionBar').css('top', '0px');\n\t\t\t$('.loanInfoContainer').css('top', '20px');\n\t\t\t$('.loanEditorBar').css('top', '125px');\n\t\t} else if ($('.restrictedLoanText').text()) {\n\t\t\t$('.restrictedLoanBar').css('top', '0px');\n\t\t\t$('.loanInfoContainer').css('top', '20px');\n\t\t\t$('.loanEditorBar').css('top', '125px');\n\t\t} else {\n\t\t\t$('.loanInfoContainer').css('top', '0px');\n\t\t\t$('.loanEditorBar').css('top', '105px');\n\t\t}\n\t}\n\n\treturn {\n\t\tinit: initLoanConditionsSubView\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 513 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;/*global wwwApp*/\n/* jshint maxstatements: 68 */\n/* jshint maxcomplexity: 16 */\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(210);\n\t//It's not best practices to use viewData as a class gobal, but its better than the window global Loan_LoanEditorBarSubView\n\tvar viewData;\n\n\t// set cursor position e.g., $('#id').setCursorPosition(0);\n\t$.fn.setCursorPosition = function (pos) {\n\t\tthis.each(function (index, elem) {\n\t\t\tif (elem.setSelectionRange && $(elem).is(':visible')) {\n\t\t\t\telem.focus();\n\t\t\t\telem.setSelectionRange(pos, pos);\n\t\t\t} else if (elem.createTextRange) {\n\t\t\t\tvar range = elem.createTextRange();\n\t\t\t\trange.collapse(true);\n\t\t\t\trange.moveEnd('character', pos);\n\t\t\t\trange.moveStart('character', pos);\n\t\t\t\trange.select();\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t};\n\n\tfunction showEditBoxes() {\n\t\tvar exposeExcerptHtml = $('.loanExposeExcerptOverlayWrapper').html();\n\t\tvar exposeDescriptionHtml = $('.loanExposeDescriptionOverlayWrapper').html();\n\t\t$('.loan-use').before(exposeExcerptHtml);\n\t\tif (viewData.language == 'English') {\n\t\t\t$('.loan-description').before(exposeDescriptionHtml);\n\t\t\t$('.loan-description').addClass('editorOverlay');\n\t\t} else {\n\t\t\t$('#ac-translation-body').before(exposeDescriptionHtml);\n\t\t\t$('#ac-translation-body').addClass('editorOverlay');\n\t\t}\n\t\t$('.loan-use').addClass('editorOverlay');\n\t\t$('.loanExpose').show();\n\t\tif ($('.loan-story .ac-title').attr('aria-expanded') === 'false') {\n\t\t\t$('.loan-story h2').click();\n\t\t}\n\t\tif ($('.loan-description').html()) {\n\t\t\t$('.loan-description').html($('.loan-description').html().trim());\n\t\t}\n\t}\n\n\tfunction hideEditBoxes() {\n\t\t$('.loanExpose').hide();\n\t\t$('#ac-translation-body').show();\n\t}\n\n\tfunction toggleExposeOverlay() {\n\t\t$('.loanExposeOverlay').toggle();\n\t\t$('.loan-use').toggleClass('editorOverlay');\n\t\tif (viewData.language == 'English') {\n\t\t\t$('.loan-description').toggleClass('editorOverlay');\n\t\t} else {\n\t\t\t$('#ac-translation-body').toggleClass('editorOverlay');\n\t\t\t$('#ac-translation-body').css('display', 'block');\n\t\t}\n\t\tif ($('.overlayToggleLink a').html() == 'hide overlay') {\n\t\t\t$('.overlayToggleLink a').html('show overlay');\n\t\t\t$('.businessFig img').removeClass('editorOverlay');\n\t\t} else {\n\t\t\t$('.overlayToggleLink a').html('hide overlay');\n\t\t\t$('.businessFig img').addClass('editorOverlay');\n\t\t}\n\t}\n\n\tfunction handleEditorClicked() {\n\t\tvar html = $(this).html();\n\t\tviewData.timer = window.setInterval(handleSave, 60000);\n\t\thtml = html.replace(/
/gm, '\\n').trim();\n\t\t$(this).html(html);\n\t\tvar text = $(this).text().trim();\n\t\t$('.loanExpose,.editorOverlay,#ac-previous-loan-details-body').addClass('moveToBack');\n\t\tif ($(this).is('#ac-translation-body') || $(this).hasClass('loan-description')) {\n\t\t\tviewData.field = 'body';\n\t\t\t$('.loanExpose, .loan-description, #ac-translation-body').hide();\n\t\t\t$('.loanEditBox').show();\n\t\t\tif ($.trim('.bodyEnglishText')) {\n\t\t\t\t$('.bodyText').text(text);\n\t\t\t}\n\t\t} else if ($(this).hasClass('loan-use')) {\n\t\t\t$('.loanExpose, .loan-use').hide();\n\t\t\t$('.useEditBox').show();\n\t\t\ttext = text.replace(viewData.loan_use_text, '');\n\t\t\tif ($.trim('.useText')) {\n\t\t\t\t$('.useText').text(text);\n\t\t\t}\n\t\t\tviewData.field = 'field_loan_use';\n\t\t}\n\t\t$('.minMaxButton').click(minMax);\n\t\t$('.cancelClose').click(cancelClose);\n\t\t$('.editorSave').click(handleSaveClicked);\n\t\t$('.editorEnglishText').keyup(characterCount);\n\t\t$('.editorEnglishText').setCursorPosition(0);\n\t\t$('.loan-story .ac-title').css('height', 'auto');\n\t\t$('#ac-loan-story-body').css('height', 'auto');\n\t}\n\n\tfunction handleSaveClicked() {\n\t\t// before we do anything let's reset the timer\n\t\tclearInterval(viewData.timer);\n\t\tviewData.timer = window.setInterval(handleSave, 60000);\n\n\t\thandleSave();\n\t\tif ($(this).hasClass('editorClose')) {\n\t\t\tcancelClose();\n\t\t}\n\t}\n\n\tfunction handleSave() {\n\t\tvar text;\n\t\tvar field = viewData.field;\n\t\t$('.lastSaved').addClass('bold');\n\t\t$('.lastSaved').text('Saving...').slideDown('fast');\n\t\tdisableNextStepButton();\n\t\tif (field == 'body') {\n\t\t\ttext = $('.bodyText').val().trim();\n\t\t\tif (viewData.language == 'English') {\n\t\t\t\t$('.loan-description').text(text);\n\t\t\t} else {\n\t\t\t\t$('#ac-translation-body').text(text);\n\t\t\t}\n\t\t} else if (field == 'field_loan_use') {\n\t\t\ttext = $('.useText').val().trim();\n\t\t\t$('.loan-use').html('

' + viewData.loan_use_text + ' ' + text + '

');\n\t\t}\n\t\t// send text to the cms along with business id\n\t\tsendToCMS(field, text);\n\t}\n\n\tfunction handleIssueAutoSave() {\n\t\tlocalStorage.setItem('issue_text_' + viewData.id, $('.issueCommentText').val());\n\t\tlocalStorage.setItem('issue_code_' + viewData.id, $('[name=reportIssue]').val());\n\t}\n\n\tfunction handleReportIssueSelected() {\n\t\tvar issue;\n\t\tif (!$(this).hasClass('issueLink')) {\n\t\t\tissue = viewData.issues[$(this).val()];\n\t\t} else {\n\t\t\tissue = $(this).text();\n\t\t}\n\t\tif ($(this).val() === '0') {\n\t\t\t$('.nextStepLink button').html('Submit without Issue');\n\t\t} else {\n\t\t\t$('#selectIssue').foundation('reveal', 'open');\n\t\t\tvar localIssueText = localStorage.getItem('issue_text_' + viewData.id);\n\t\t\tif ($(this).val() != 'Other' && viewData.issue_text === '' && !localIssueText) {\n\t\t\t\t$('.issueComments').hide();\n\t\t\t\t$('.addIssueComments').show();\n\t\t\t} else {\n\t\t\t\t$('.issueComments').show();\n\t\t\t\t$('.addIssueComments').hide();\n\t\t\t}\n\t\t\tif (localIssueText) {\n\t\t\t\t$('.issueCommentText').val(localIssueText);\n\t\t\t} else if (viewData.issue_text !== '') {\n\t\t\t\t$('.issueCommentText').val(viewData.issue_text);\n\t\t\t}\n\t\t\t$('.issueName').text($(this).val());\n\t\t\t$('.issueDesc').text(issue);\n\t\t\t$('.reportIssueButton').click(issue, submitReportIssueClosure(true));\n\t\t}\n\t}\n\n\tfunction commentReportIssue(e) {\n\t\te.preventDefault();\n\t\t$('.addIssueComments').hide();\n\t\t$('.issueComments').show();\n\t}\n\n\tfunction submitReportIssueClosure(changeSubmitButton) {\n\t\treturn function (event) {\n\t\t\tsubmitReportIssue(event, changeSubmitButton);\n\t\t};\n\t}\n\n\tfunction submitReportIssue(event, changeSubmitButton) {\n\t\tvar issue = event.data;\n\t\tviewData.issue_text = $('.issueCommentText').val();\n\t\tif (changeSubmitButton) {\n\t\t\t$('.nextStepLink button').html('Submit with Issue');\n\t\t}\n\t\t$('.deleteIssueButton').show();\n\t\t$('.reportIssue a.issueLink').remove();\n\t\t$('.reportIssue').append('' + issue + '');\n\t\t$('.reportIssue select').hide();\n\t\thandleIssueAutoSave();\n\t\t$('.reportIssue .issueLink').click(handleReportIssueSelected);\n\t}\n\n\tfunction cancelReportIssue() {\n\t\tvar localIssueText = localStorage.getItem('issue_text_' + viewData.id);\n\t\tvar issueText = viewData.issue_text;\n\n\t\tif ((issueText === null || issueText === undefined) && (localIssueText === null || localIssueText === undefined)) {\n\t\t\t$('.reportIssue select').show();\n\t\t\t$('.reportIssue select').val(0);\n\t\t}\n\t}\n\n\tfunction deleteReportIssue() {\n\t\t$('.issueCommentText').val(null);\n\t\tviewData.issue_text = null;\n\t\t$('.reportIssue select').show();\n\t\t$('.reportIssue select').val(0);\n\t\t$('.nextStepLink button').html('Submit without Issue');\n\t\t$('.reportIssue a.issueLink').remove();\n\t\t$('.deleteIssueButton').hide();\n\t\tlocalStorage.clear();\n\t}\n\n\tfunction sendToCMS(field, text) {\n\t\t// @todo make this a library function instead\n\t\tvar fields = {\n\t\t\t'nid': viewData.nid,\n\t\t\t'type': 'business',\n\t\t\t'language': 'en',\n\t\t\t'hash': viewData.hash,\n\t\t\t'author': viewData.username,\n\t\t\t'nl2br': true,\n\t\t\t'fields': {\n\t\t\t\t'field_business_id': viewData.id\n\t\t\t}\n\t\t};\n\t\tfields.fields[field] = text;\n\t\tvar urlParams = $.param(fields);\n\t\t$.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: wwwApp.ajaxUrl('updateCmsContent'),\n\t\t\tdata: urlParams,\n\t\t\tdataType: 'json'\n\t\t}).done(handleResponse);\n\t}\n\n\tfunction handleResponse(data) {\n\t\tvar meridiem = 'AM';\n\t\tif (data === true) {\n\t\t\tvar d = new Date();\n\t\t\tvar hours = d.getHours();\n\t\t\tvar minutes = d.getMinutes();\n\t\t\tif (hours > 12) {\n\t\t\t\thours = hours - 12;\n\t\t\t\tmeridiem = 'PM';\n\t\t\t}\n\t\t\tif (minutes < 10) {\n\t\t\t\tminutes = '0' + minutes;\n\t\t\t}\n\t\t\t$('.lastSaved').text('Last Saved: ' + hours + ':' + minutes + ' ' + meridiem);\n\t\t\t$('.lastSaved').removeClass('error smaller bold');\n\t\t\tenableNextStepButton();\n\t\t} else if (data === false || data === null) {\n\t\t\t$('.lastSaved').text('Currently unable to save. For safe keeping we recommend copying any changes to another document');\n\t\t\t$('.lastSaved').addClass('error smaller');\n\t\t} else {\n\t\t\t$('.lastSaved').text(data);\n\t\t\t$('.lastSaved').addClass('error smaller');\n\t\t\t$('.lastSaved').css('width', '250px');\n\t\t}\n\t}\n\n\tfunction goToNextStep() {\n\t\tvar issue_code = $('.reportIssue select').val(),\n\t\t issue_param = '',\n\t\t issue_text = '',\n\t\t assignment = '',\n\t\t training_business_id = '',\n\t\t foreign = viewData.language != 'English',\n\t\t ouse = viewData.original_loan_use.trim(),\n\t\t odesc = viewData.original_description.trim(),\n\t\t use,\n\t\t desc;\n\n\t\tif (viewData.step == 2) {\n\t\t\tuse = $('.loan-use').html().trim();\n\t\t\tif (foreign) {\n\t\t\t\tdesc = $('#ac-translation-body').html().trim();\n\t\t\t} else {\n\t\t\t\tdesc = $('.loan-description').html().trim();\n\t\t\t}\n\t\t\tif (!use || !desc || foreign && odesc == desc || foreign && ouse == use) {\n\t\t\t\t$('#noChangeWarning').foundation('reveal', 'open');\n\t\t\t\t$('.cancelClose').click(cancelClose);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Check to make sure user didnt leave and come back\n\t\t// In which case we still show there to be an issue but it's not set\n\t\tif ($('.reportIssue .issueLink').text()) {\n\t\t\tif (!issue_code) {\n\t\t\t\tissue_code = localStorage.getItem('issue_code_' + viewData.id);\n\t\t\t}\n\t\t\tissue_text = localStorage.getItem('issue_text_' + viewData.id);\n\t\t}\n\n\t\tif (issue_code && issue_code !== '0') {\n\t\t\tissue_param = '&issue_code=' + issue_code;\n\t\t\tissue_text = issue_text || viewData.issue_text;\n\t\t\tif (issue_text) {\n\t\t\t\tissue_param = issue_param + '&issue_text=' + encodeURIComponent(issue_text);\n\t\t\t}\n\t\t}\n\t\tif (viewData.assignment) {\n\t\t\tassignment = '&assignment=' + viewData.assignment;\n\t\t}\n\t\tif (viewData.training_business_id) {\n\t\t\ttraining_business_id = '&training_business_id=' + viewData.training_business_id;\n\t\t}\n\t\tvar nextStep = viewData.step + 1;\n\t\twindow.location.href = viewData.root_http + 'lend-classic/' + viewData.id + '?step=' + nextStep + issue_param + assignment + training_business_id;\n\t}\n\n\tfunction showSubmittedBox() {\n\t\t$('#loanSubmitted').foundation('reveal', 'open');\n\t\t$('.returnToAssignment').click(returnToAssignment);\n\t\t$('.grabALoan').click(grabALoan);\n\t}\n\n\tfunction handleExcerptOverlayClicked() {\n\t\t$('.loan-use').click();\n\t}\n\n\tfunction handleDescriptionOverlayClicked() {\n\t\tif (viewData.language == 'English') {\n\t\t\t$('.loan-description').click();\n\t\t} else {\n\t\t\t$('#ac-translation-body').click();\n\t\t}\n\t}\n\n\tfunction changeLoanLanguage() {\n\t\t$('#changeLanguage').foundation('reveal', 'open');\n\t\t$('.cancelClose').click(cancelClose);\n\t\t$('.submitChangeLanguage').click(submitChangeLoanLanguage);\n\t}\n\n\tfunction submitChangeLoanLanguage() {\n\t\tvar language = $('.changeLanguage').val();\n\t\tvar language_name = $('.changeLanguage option:selected').text();\n\t\tvar fields = {\n\t\t\t'language': language,\n\t\t\t'id': viewData.id\n\t\t};\n\t\tvar urlParams = $.param(fields);\n\t\t$.post(wwwApp.ajaxUrl('updateLoanLanguage'), urlParams, null, 'json');\n\t\t$('.editorLoanLanguage').text(language_name);\n\t\t$(this).closest('.reveal-modal').foundation('reveal', 'close');\n\t\treturnToAssignment();\n\t}\n\n\tfunction changeSectorActivity() {\n\t\tvar activity;\n\t\tactivity = $('[name=\"changeActivity\"]').val();\n\t\t$('[name=\"changeSector\"]').change(changeSector);\n\t\t$('[name=\"changeSector\"]').change();\n\t\t$('[name=\"changeActivity\"]').val(activity);\n\t\t$('.submitChangeSectorActivity').click(submitChangeSectorActivity);\n\n\t\t$('#sectors').foundation('reveal', 'open');\n\t}\n\n\tfunction changeSector() {\n\t\tvar sector = $(this).val();\n\t\tvar activities = $('[name=\"changeActivity\"]');\n\t\tactivities.empty();\n\t\t$.each(viewData.sector_to_activity[sector], function (key, value) {\n\t\t\tactivities.append($('').attr('value', value).text(key));\n\t\t});\n\t}\n\n\tfunction submitChangeSectorActivity() {\n\t\tvar sector = $('[name=\"changeSector\"]').val();\n\t\tvar activity = $('[name=\"changeActivity\"]').val();\n\t\tvar fields = {\n\t\t\t'sector': sector,\n\t\t\t'activity': activity,\n\t\t\t'id': viewData.id\n\t\t};\n\n\t\t//We need to pass along more fields to update the cms for training loans\n\t\tif (viewData.training_business_id) {\n\t\t\tfields = Object.assign(fields, {\n\t\t\t\t'training_business_id': viewData.training_business_id,\n\t\t\t\t'nid': viewData.nid,\n\t\t\t\t'tnid': viewData.tnid,\n\t\t\t\t'language_iso': viewData.language_iso\n\t\t\t});\n\t\t}\n\n\t\tvar urlParams = $.param(fields);\n\t\t$.post(wwwApp.ajaxUrl('updateSectorActivity'), urlParams, null, 'json');\n\t\t$('.typeName').html(viewData.activities[activity]);\n\t\t$('#sectors').foundation('reveal', 'close');\n\t}\n\n\tfunction cancelClose() {\n\t\t$(this).closest('.reveal-modal').foundation('reveal', 'close');\n\t\t$('.minMaxButton').unbind();\n\t\t$('.loanEditBox,.useEditBox').hide();\n\t\t$('.editorOverlay').show();\n\t\t$('.loanExpose').show();\n\t\t$('body').removeClass('noScroll');\n\t\t$('.loanExpose,.editorOverlay,#ac-previous-loan-details-body').removeClass('moveToBack');\n\t\t//These may have been hidden by the editor click, doesn't hurt to show them again\n\t\tif (viewData.step == 2) {\n\t\t\t$('.loanExpose, .loan-use').show();\n\t\t\t$('.loanExpose, .loan-description, #ac-translation-body').show();\n\t\t}\n\t\tclearInterval(viewData.timer);\n\t}\n\n\tfunction postGreatPhotoAndLikedLoan() {\n\t\t// TODO: Consider converting this function to a promise so that other actions can take place once these ajax calls complete\n\t\tvar urlParams;\n\t\tvar fields = {\n\t\t\t'checked': true,\n\t\t\t'business_id': viewData.id,\n\t\t\t'user_id': viewData.user_id\n\t\t};\n\t\tif ($('.loanGreatPhoto').is(':checked')) {\n\t\t\tfields.tag_id = 1;\n\t\t\turlParams = $.param(fields);\n\t\t\t$.post(wwwApp.ajaxUrl('addOrRemoveLoanTag'), urlParams, null, 'json');\n\t\t}\n\t\tif ($('.loanLiked').is(':checked')) {\n\t\t\tfields.tag_id = 2;\n\t\t\turlParams = $.param(fields);\n\t\t\t$.post(wwwApp.ajaxUrl('addOrRemoveLoanTag'), urlParams, null, 'json');\n\t\t}\n\t}\n\n\tfunction returnToAssignment() {\n\t\tconsole.log('return to assignment called');\n\t\t// Post Photo and/or Liked loan\n\t\tpostGreatPhotoAndLikedLoan();\n\t\t// Redirect to dashboard\n\t\twindow.setTimeout(function () {\n\t\t\twindow.location.href = viewData.root_http + 'viva';\n\t\t}, 1500);\n\t}\n\n\tfunction grabALoan() {\n\t\t// Post Photo and/or Liked loan\n\t\tpostGreatPhotoAndLikedLoan();\n\n\t\tvar language_iso = viewData && viewData.language_iso ? viewData.language_iso : null;\n\t\t// Grab A loan for Review\n\t\t$.ajax({\n\t\t\turl: wwwApp.ajaxUrl('takeLoanForReview'),\n\t\t\tdataType: 'json',\n\t\t\ttype: 'GET',\n\t\t\tdata: { language_iso: language_iso },\n\t\t\tsuccess: function (result) {\n\t\t\t\t// navigate to new loan or back to dashboard if no loans are available\n\t\t\t\tif (result) {\n\t\t\t\t\tkv.tipMsg('Redirecting to your next loan.', 'info');\n\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\twindow.location.href = result.www_url;\n\t\t\t\t\t}, 1500);\n\t\t\t\t} else {\n\t\t\t\t\tkv.tipMsg('Thank you for using Viva! We\\'re fresh out of loans for you right now. Please try again soon!', 'warning');\n\t\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\t\twindow.location.href = '/viva';\n\t\t\t\t\t}, 3000);\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: function () {\n\t\t\t\tkv.tipMsg('Thank you for using Viva! We\\'re fresh out of loans for you right now. Please try again soon!', 'warning');\n\t\t\t\twindow.setTimeout(function () {\n\t\t\t\t\twindow.location.href = '/viva';\n\t\t\t\t}, 3000);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction showSiteMenu() {\n\t\t$('.siteMenu').toggle();\n\t}\n\n\tfunction helpTip() {\n\t\tvar position_options = {\n\t\t\tmy: 'right bottom',\n\t\t\tat: 'right bottom',\n\t\t\toffset: '0 0',\n\t\t\tcollision: 'flip none'\n\t\t};\n\n\t\t$('.exceptionTip').each(function () {\n\t\t\t$(this).qtip({\n\t\t\t\tcontent: $(this).next('div:hidden').html(),\n\t\t\t\tposition: position_options\n\t\t\t});\n\t\t});\n\n\t\t$('.restrictedTip').qtip({\n\t\t\tcontent: $('.restrictedDescription').html(),\n\t\t\tposition: position_options\n\t\t});\n\n\t\t$('.relistedTip').qtip({\n\t\t\tcontent: $('.relistedText').html(),\n\t\t\tposition: position_options\n\t\t});\n\n\t\t$('.groupNamesTip').qtip({\n\t\t\tcontent: $('.groupNamesText').html(),\n\t\t\tposition: position_options\n\t\t});\n\t}\n\n\tfunction minMax() {\n\t\tif ($('.loanEditBox').hasClass('maxBox')) {\n\t\t\tminimizeLightbox();\n\t\t} else {\n\t\t\tmaximizeLightbox();\n\t\t}\n\t}\n\n\tfunction enableNextStepButton() {\n\t\t$('.nextStepButton').prop('disabled', false);\n\t}\n\n\tfunction disableNextStepButton() {\n\t\t$('.nextStepButton').prop('disabled', true);\n\t}\n\n\tfunction initLoanEditorBarSubView(data) {\n\t\t/* jshint maxstatements: 75 */\n\t\t/* jshint maxcomplexity: 20 */\n\t\tviewData = data || {};\n\n\t\tif (viewData.error) {\n\t\t\twwwApp.tipMsg(viewData.error, 'error');\n\t\t}\n\n\t\t//We allow step 3 even if not inactive (allowed statuses are controlled earlier)\n\t\tif (viewData.step === 3) {\n\t\t\tshowSubmittedBox();\n\t\t}\n\t\t//But don't show the rest of the display\n\t\tif (viewData.status != 'inactive') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (viewData.loan_use) {\n\t\t\tvar lastChar = viewData.loan_use.substr(-1);\n\t\t\tif (lastChar != '.') {\n\t\t\t\tviewData.loan_use = viewData.loan_use + '.';\n\t\t\t}\n\t\t\tvar loanuse_html = '

' + viewData.loan_use_text + ' ' + viewData.loan_use + '

';\n\t\t\t$('.loan-use').html(loanuse_html);\n\t\t}\n\t\t$('.loan-use').css('visibility', 'visible');\n\n\t\tif (viewData.description) {\n\t\t\tif (viewData.language == 'English') {\n\t\t\t\t$('.loan-description').html(viewData.description);\n\t\t\t} else {\n\t\t\t\t$('#ac-translation-body').html(viewData.description);\n\t\t\t\t$('.loan-description').hide();\n\t\t\t}\n\t\t}\n\t\t$('.loan-description').css('visibility', 'visible');\n\t\t$('#ac-translation-body').css('visibility', 'visible');\n\n\t\t//Disable editor button after click (page refreshes so no need to re-enable)\n\t\t$('.nextStepButton').click(disableNextStepButton);\n\t\t// uncomment below if we want to add an editor\n\t\t//$('.loan-use').addClass('cke_editable cke_editable_inline cke_contents_ltr');\n\t\t//$('#ac-translation-body').addClass('cke_editable cke_editable_inline cke_contents_ltr');\n\t\t$('.overlayToggleLink').click(toggleExposeOverlay);\n\t\t$('.nextStepLink').click(goToNextStep);\n\t\t$('.cancelClose').click(cancelClose);\n\t\t$('.reportIssue select').change(handleReportIssueSelected);\n\t\t$('.editorLoanLanguage').click(changeLoanLanguage);\n\t\t$('.editSectorActivity').click(changeSectorActivity);\n\n\t\t$('.addIssueComments').click(commentReportIssue);\n\t\t$('.deleteIssueButton').click(deleteReportIssue);\n\t\t$('.cancelIssueButton').click(cancelReportIssue);\n\n\t\t$('.reportIssueButton, .deleteIssueButton, .cancelIssueButton').click(function () {\n\t\t\t$('#selectIssue').foundation('reveal', 'close');\n\t\t});\n\n\t\t$('#ac-translation-body h1').remove();\n\n\t\t// move borrowers list, if it exists, as first child of story body\n\t\tif ($('#ac-loan-story-body p.borrowers-list').length) {\n\t\t\t$('#ac-loan-story-body p.borrowers-list').prependTo('#ac-loan-story-body');\n\t\t}\n\n\t\t$('#prevLoanDetails a').attr('target', '_blank');\n\t\tif (!viewData.step || viewData.step === 1) {\n\t\t\tshowEditBoxes();\n\t\t\t$('.businessFig img').addClass('editorOverlay');\n\t\t\t$('.loanExposeOverlay').show();\n\t\t} else {\n\t\t\thideEditBoxes();\n\t\t}\n\t\tif (viewData.step < 3) {\n\t\t\t$('.translatedBy').hide();\n\t\t\t$('.loan-use').click(handleEditorClicked);\n\t\t\t$('.loan-description').click(handleEditorClicked);\n\t\t\t$('.loanExposeExcerptOverlay').click(handleExcerptOverlayClicked);\n\t\t\t$('.loanExposeDescriptionOverlay').click(handleDescriptionOverlayClicked);\n\t\t\t$('#ac-translation-body').click(handleEditorClicked);\n\t\t\t$('#loanTags').hide(); // maybe not necessary but may confuse volunteers\n\t\t\t$('.loan-description').addClass('pre');\n\t\t\t$('#ac-translation-body').addClass('pre');\n\n\t\t\tif (localStorage.getItem('issue_code_' + viewData.id)) {\n\t\t\t\t$('.reportIssue select').val(localStorage.getItem('issue_code_' + viewData.id));\n\t\t\t}\n\t\t}\n\t\tif (viewData.step === 2) {\n\t\t\tif (localStorage.getItem('issue_code_' + viewData.id)) {\n\t\t\t\tif (localStorage.getItem('issue_text_' + viewData.id)) {\n\t\t\t\t\t$('.dialogContentWrapper .loanIssueNote .issueComments .issueComment .issueCommentText').val(localStorage.getItem('issue_text_' + viewData.id));\n\t\t\t\t}\n\t\t\t\tsubmitReportIssue({ 'data': localStorage.getItem('issue_code_' + viewData.id) }, true);\n\t\t\t}\n\t\t}\n\n\t\thelpTip();\n\t\t$(window).scroll(helpTip);\n\n\t\t// Site menu init\n\t\tvar menuDropdown = $('.menuDropdown'),\n\t\t siteMenu = $('.siteMenu'),\n\t\t navImg = $('.navImg');\n\t\tmenuDropdown.click(showSiteMenu);\n\t\tmenuDropdown.hoverIntent({\n\t\t\tover: function () {\n\t\t\t\tsiteMenu.slideDown('fast');\n\t\t\t\tnavImg.addClass('hovered');\n\t\t\t},\n\t\t\tout: function () {\n\t\t\t\tsiteMenu.slideUp('fast');\n\t\t\t\tnavImg.removeClass('hovered');\n\t\t\t},\n\t\t\ttimeout: 500\n\t\t});\n\n\t\tvar loan_edit_html = $('.loanEdit').html();\n\t\tvar loan_use_html = $('.useEdit').html();\n\t\t$('#ac-loan-story-body').append('
' + loan_edit_html + '
');\n\t\t$('
' + loan_use_html + '
').insertAfter('.loan-use');\n\t\t$('.loanEdit').remove();\n\t\t$('.useEdit').remove();\n\t\t$('#ac-translation-body').attr('aria-hidden', false);\n\t\t// open the accordion for more loan info by default\n\t\t$('.more-loan-info div').attr('aria-expanded', true);\n\t\t$('.more-loan-info').attr('aria-hidden', false);\n\t\t$('#ac-more-loan-info-body').css('height', '311px');\n\t}\n\n\tfunction maximizeLightbox() {\n\t\t$('.loanEditBox').removeClass('minBox');\n\t\t$('.loanEditBox').addClass('maxBox');\n\t\t$('body').addClass('noScroll');\n\t}\n\n\tfunction minimizeLightbox() {\n\t\t$('.loanEditBox').removeClass('maxBox');\n\t\t$('.loanEditBox').addClass('minBox');\n\t\t$('body').removeClass('noScroll');\n\t}\n\n\tfunction characterCount() {\n\t\tvar text_max = 100;\n\t\tvar text_length = $('.editorEnglishText').val().length;\n\t\tvar text_remaining = text_max - text_length;\n\n\t\t$('#textareaFeedback').html(text_remaining + ' characters remaining');\n\n\t\tif (text_remaining <= 0) {\n\t\t\t$('#textareaFeedback').html(text_remaining + ' characters remaining' + '
' + ' Heads up: This text may be shortened on some parts of the Kiva website due to space limitations, but not ' + \"to worry—all of it will show up on the borrower page. Remember, don't remove any information.\"); // jshint ignore:line\n\t\t}\n\t}\n\n\treturn {\n\t\tinit: initLoanEditorBarSubView\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 514 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0);\n\n\tfunction showNeedHelp() {\n\t\t$('.editorHelp').toggle();\n\t\t$(document).mouseup(function (e) {\n\t\t\tvar container = $('.editorHelp');\n\t\t\t// if the target of the click isn't the container or descendant...\n\t\t\tif (!container.is(e.target) && container.has(e.target).length === 0) {\n\t\t\t\tcontainer.hide();\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction init() {\n\t\t$('.editorNeedHelp').click(showNeedHelp);\n\t\t$('.entityTip').qtip({\n\t\t\tcontent: $('.entityTipText').html()\n\t\t});\n\t}\n\n\treturn {\n\t\tinit: init\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 515 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n var $ = __webpack_require__(0);\n\n return {\n init: function init(data) {\n // Track experiment version\n $('.kvExperimentView').each(function () {\n var $el = $(this);\n var property = $el.attr('data-kv-experiment-property');\n var value = $el.attr('data-kv-experiment-value');\n\n if (property.indexOf('PortfolioMessaging.CallToAction') > -1 && value) {\n wwwApp.kvTrack.isReady.done(function () {\n // Will be either a-control, b-impactCTA, c-giftBondingCTA, or d-giftValuesCTA \n // Use the first character for tracking (e.g. 'a')\n var version = value.charAt(0);\n wwwApp.kvTrack.trackEvent('portfolio', 'EXP-ACK-306-May2022', version, undefined, true);\n });\n }\n });\n }\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 516 */,\n/* 517 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(579),\n Router: __webpack_require__(630)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 518 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(631),\n Router: __webpack_require__(657)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 519 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(658),\n Router: __webpack_require__(701)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 520 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(702),\n Router: __webpack_require__(709)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 521 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(710),\n Router: __webpack_require__(718)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 522 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(719),\n Router: __webpack_require__(747)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 523 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(748),\n Router: __webpack_require__(763)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 524 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n // Triggering events / routes / methods on the controller should be done via the application\n // thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n // whether a controller exists\n\n return {\n Controller: __webpack_require__(764),\n Router: __webpack_require__(773)\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 525 */,\n/* 526 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t Marionette = __webpack_require__(209),\n\t TeamMembersViewTpl = __webpack_require__(775),\n\t TeamRequestsBackgridView = __webpack_require__(776),\n\t TeamMembersBackgridView = __webpack_require__(786);\n\n\treturn Marionette.LayoutView.extend({\n\t\ttemplate: TeamMembersViewTpl,\n\n\t\tel: '.mainContent',\n\n\t\tregions: {\n\t\t\tteamRequestsRegion: '.teamRequestsRegion',\n\t\t\tteamCaptainsRegion: '.teamCaptainsRegion',\n\t\t\tteamNonCaptainsRegion: '.teamNonCaptainsRegion'\n\t\t},\n\n\t\tui: {\n\t\t\t$lenderCardPlaceholder: '.lenderCardPlaceholderWrap'\n\n\t\t\t/**\n * Adds a team member to the team members collection and increments the total number of lenders on the team\n *\n * @param {Backbone.Siren.Model} teamMemberModel\n */\n\t\t}, addTeamMember: function addTeamMember(teamMemberModel) {\n\t\t\tvar self = this;\n\n\t\t\tthis.teamMembersPromise.done(function () {\n\t\t\t\tif (teamMemberModel.get('isCaptain')) {\n\t\t\t\t\tself.addCaptain(teamMemberModel);\n\t\t\t\t} else {\n\t\t\t\t\tself.addNonCaptain(teamMemberModel);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.teamRequest.done(function (teamModel) {\n\t\t\t\tteamModel.set('lenderCount', teamModel.get('lenderCount') + 1);\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Decrements the total number of lenders on the team\n *\n */\n\t\t, decLenderCount: function decLenderCount() {\n\t\t\tthis.teamRequest.done(function (teamModel) {\n\t\t\t\tteamModel.set('lenderCount', teamModel.get('lenderCount') - 1);\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Adds a team member to the non-captains collection\n *\n * @param {Backbone.Siren.Model} teamMemberModel\n */\n\t\t, addNonCaptain: function addNonCaptain(teamMemberModel) {\n\t\t\tvar self = this;\n\n\t\t\tthis.renderTeamNonCaptainsPromise.done(function () {\n\t\t\t\tself.teamNonCaptainsRegion.currentView.addTeamMember(teamMemberModel);\n\n\t\t\t\t// Show the region in case it was previously hidden.\n\t\t\t\tself.teamNonCaptainsRegion.$el.show();\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Adds a team member to the captains collection\n *\n * @param {Backbone.Siren.Model} teamMemberModel\n */\n\t\t, addCaptain: function addCaptain(teamMemberModel) {\n\t\t\tvar self = this;\n\n\t\t\tthis.renderTeamCaptainsPromise.done(function () {\n\t\t\t\tself.teamCaptainsRegion.currentView.addTeamMember(teamMemberModel);\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Is the logged in user a member of the given team?\n *\n * @param teamCollection\n * @returns {Boolean}\n */\n\t\t, loggedInUserIsTeamMember: function loggedInUserIsTeamMember(teamCollection) {\n\t\t\treturn !!teamCollection.link('me');\n\t\t}\n\n\t\t/**\n * A generic jqXhr error handler\n *\n * @param error\n */\n\t\t, handleGenericFail: function handleGenericFail(error, jqXhr) {\n\t\t\tif (jqXhr.status === 0) {\n\t\t\t\t// status is the http status code.\n\t\t\t\t// 0 means the request was cancelled. The user probably refreshed the page.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twwwApp.tipMsg('There was an error. Please refresh and try again', { type: 'info', autoClose: true });\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Siren.Model} teamModel\n */\n\t\t, handleResolveTeamDone: function handleResolveTeamDone(teamModel) {\n\t\t\tthis.teamModel = teamModel;\n\n\t\t\tthis.listenTo(teamModel, 'change:lenderCount', function (model, val) {\n\t\t\t\tif (val < 0) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\n\t\t\t\t$('.numMembersTabbedNavItem').html(val);\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Siren.Collection} teamNonCaptainsCollection\n */\n\t\t, handleResolveTeamNonCaptainsDone: function handleResolveTeamNonCaptainsDone(teamNonCaptainsCollection) {\n\t\t\tthis.teamNonCaptainsCollection = teamNonCaptainsCollection;\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Siren.Collection} teamRequestsCollection\n */\n\t\t, handleResolveTeamRequestsDone: function handleResolveTeamRequestsDone(teamRequestsCollection) {\n\t\t\tthis.teamRequestsCollection = teamRequestsCollection;\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Siren.Collection} teamMembersCollection\n */\n\t\t, handleTeamMembersDone: function handleTeamMembersDone(teamMembersCollection) {\n\t\t\tthis.listenTo(teamMembersCollection, 'destroy', function () {\n\t\t\t\tthis.decLenderCount();\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Siren.Collection} teamCaptainsCollection\n */\n\t\t, handleResolveTeamCaptainsDone: function handleResolveTeamCaptainsDone(teamCaptainsCollection) {\n\t\t\tthis.teamCaptainsCollection = teamCaptainsCollection;\n\n\t\t\t// Also keep a reference to the entire teamMembersCollection\n\t\t\tthis.teamMembersPromise.resolve(wwwApp.siren.store.get(teamCaptainsCollection.url()));\n\t\t}\n\n\t\t/**\n * Renders the team requests View\n */\n\t\t, renderTeamRequests: function renderTeamRequests() {\n\t\t\tvar self = this;\n\n\t\t\t// Make sure the tables render in order from top to bottom for a better ux.\n\t\t\t// First, render the teamRequests\n\t\t\treturn this.teamRequestsDataReady.done(function () {\n\t\t\t\tvar teamRequestsBackgridView;\n\n\t\t\t\tif (self.teamRequestsCollection && self.teamRequestsCollection.size() > 0) {\n\t\t\t\t\tteamRequestsBackgridView = new TeamRequestsBackgridView({\n\t\t\t\t\t\tteamRequestsCollection: self.teamRequestsCollection\n\t\t\t\t\t});\n\n\t\t\t\t\tself.teamRequestsRegion.show(teamRequestsBackgridView);\n\n\t\t\t\t\t// Hide the team requests grid.\n\t\t\t\t\tself.listenTo(teamRequestsBackgridView.teamRequestsCollection, 'remove', function () {\n\t\t\t\t\t\tif (teamRequestsBackgridView.teamRequestsCollection.isEmpty()) {\n\t\t\t\t\t\t\tself.teamRequestsRegion.$el.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tself.teamRequestsRegion._ensureElement();\n\t\t\t\t\tself.teamRequestsRegion.$el.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Renders the team captains View\n *\n */\n\t\t, renderTeamCaptains: function renderTeamCaptains() {\n\t\t\tvar self = this;\n\n\t\t\treturn this.teamCaptainsDataReady.then(function () {\n\t\t\t\tvar teamCaptainsCollection = self.teamCaptainsCollection,\n\t\t\t\t teamCaptainsBackgridView = new TeamMembersBackgridView({\n\t\t\t\t\ttitle: 'Captains',\n\t\t\t\t\tteamMembersCollection: teamCaptainsCollection,\n\t\t\t\t\tname: 'teamCaptains',\n\t\t\t\t\tisSearchEnabled: false,\n\t\t\t\t\tbaseParams: { is_captain: 'yes' },\n\t\t\t\t\tmemberFilter: {\n\t\t\t\t\t\tisCaptain: true\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.teamCaptainsRegion.show(teamCaptainsBackgridView);\n\n\t\t\t\tself.listenTo(teamCaptainsBackgridView.teamMembersCollection, 'change:isCaptain', function (teamMemberModel, isCaptain) {\n\t\t\t\t\t// The individual backgrid view takes care of removing the teamMemberModel from the old collection\n\t\t\t\t\t// We just need to add it to the new one...\n\t\t\t\t\tif (!isCaptain) {\n\t\t\t\t\t\tthis.addNonCaptain(teamMemberModel);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Render the \"non-captains\" View\n *\n */\n\t\t, renderTeamNonCaptains: function renderTeamNonCaptains() {\n\t\t\tvar self = this;\n\n\t\t\t// Last, render the teamNonCaptains\n\t\t\treturn this.teamNonCaptainsDataReady.then(function () {\n\t\t\t\tvar teamNonCaptainsCollection = self.teamNonCaptainsCollection,\n\t\t\t\t teamNonCaptainsBackgridView = new TeamMembersBackgridView({\n\t\t\t\t\ttitle: 'Members',\n\t\t\t\t\tteamMembersCollection: teamNonCaptainsCollection,\n\t\t\t\t\tname: 'teamNonCaptains',\n\t\t\t\t\tisSearchEnabled: true,\n\t\t\t\t\tbaseParams: { is_captain: 'no' },\n\t\t\t\t\tmemberFilter: {\n\t\t\t\t\t\tisCaptain: false\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Hide the region if there are no nonCaptains\n\t\t\t\tif (self.teamNonCaptainsCollection.isEmpty()) {\n\t\t\t\t\tself.teamNonCaptainsRegion._ensureElement();\n\t\t\t\t\tself.teamNonCaptainsRegion.$el.hide();\n\t\t\t\t}\n\n\t\t\t\t// Add the view and have it ready in case we add nonCaptains later...\n\t\t\t\tself.teamNonCaptainsRegion.show(teamNonCaptainsBackgridView);\n\n\t\t\t\tself.listenTo(teamNonCaptainsBackgridView.teamMembersCollection, 'change:isCaptain', function (teamMemberModel, isCaptain) {\n\t\t\t\t\t// The individual backgrid view takes care of removing the teamMemberModel from the old collection\n\t\t\t\t\t// We just need to add it to the new one...\n\t\t\t\t\tif (isCaptain) {\n\t\t\t\t\t\tthis.addCaptain(teamMemberModel);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Hide/show the team non-captains grid.\n\t\t\t\tself.listenTo(teamNonCaptainsBackgridView.teamMembersCollection, 'remove add', function () {\n\t\t\t\t\tif (teamNonCaptainsBackgridView.teamMembersCollection.isEmpty()) {\n\t\t\t\t\t\tself.teamNonCaptainsRegion.$el.hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.teamNonCaptainsRegion.$el.show();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Resolves the team model for the current team.\n *\n * @returns {Promise}\n */\n\t\t, resolveTeam: function resolveTeam() {\n\t\t\treturn wwwApp.siren.resolve('team/' + this.model.get('team_id'));\n\t\t}\n\n\t\t/**\n * Resolves the team requests collection, if there is one.\n *\n * @param {Backbone.Siren.Model} teamModel\n */\n\t\t, resolveTeamRequests: function resolveTeamRequests(teamModel) {\n\t\t\tvar teamRequests;\n\n\t\t\tif (teamModel) {\n\t\t\t\tteamRequests = teamModel.get('teamRequests');\n\t\t\t}\n\n\t\t\tif (teamRequests) {\n\t\t\t\treturn teamRequests.resolve();\n\t\t\t} else {\n\t\t\t\treturn new $.Deferred().resolve(null);\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Resolves the team captains collection for the current team.\n *\n * @returns {Promise}\n */\n\t\t, resolveTeamCaptains: function resolveTeamCaptains() {\n\t\t\treturn wwwApp.siren.resolve('team/' + this.model.get('team_id') + '/members?is_captain=yes');\n\t\t}\n\n\t\t/**\n * Resolves the non-captains collection for the current team.\n *\n * @returns {Promise}\n */\n\t\t, resolveTeamNonCaptains: function resolveTeamNonCaptains() {\n\t\t\treturn wwwApp.siren.resolve('team/' + this.model.get('team_id') + '/members?is_captain=no');\n\t\t}\n\n\t\t/**\n * Resolves the various endpoints that we need for rendering.\n *\n */\n\t\t, resolveEntities: function resolveEntities() {\n\t\t\tthis.teamRequest = this.resolveTeam().done(this.handleResolveTeamDone).fail(this.handleGenericFail);\n\n\t\t\tthis.teamCaptainsRequest = this.resolveTeamCaptains().done(this.handleResolveTeamCaptainsDone).fail(this.handleGenericFail);\n\n\t\t\tthis.teamNonCaptainsRequest = this.resolveTeamNonCaptains().done(this.handleResolveTeamNonCaptainsDone).fail(this.handleGenericFail);\n\n\t\t\t// Create our own deferred for the teamMembers collection\n\t\t\tthis.teamMembersPromise = new $.Deferred();\n\t\t\tthis.teamMembersPromise.done(this.handleTeamMembersDone);\n\n\t\t\tthis.teamRequestsRequest = this.teamRequest.then(this.resolveTeamRequests).done(this.handleResolveTeamRequestsDone).fail(this.handleGenericFail);\n\n\t\t\t// Set ready states for each section\n\t\t\tthis.teamRequestsDataReady = $.when(this.teamRequest, this.teamRequestsRequest);\n\t\t\tthis.teamCaptainsDataReady = $.when(this.teamRequest, this.teamRequestsRequest, this.teamCaptainsRequest);\n\t\t\tthis.teamNonCaptainsDataReady = $.when(this.teamRequest, this.teamRequestsRequest, this.teamCaptainsRequest, this.teamNonCaptainsRequest);\n\t\t}\n\n\t\t/**\n * A callback. Automatically called after the view has rendered.\n *\n * @returns {Backbone.View}\n */\n\t\t, onRender: function onRender() {\n\t\t\tthis.renderTeamRequests();\n\t\t\tthis.renderTeamCaptainsPromise = this.renderTeamCaptains();\n\t\t\tthis.renderTeamNonCaptainsPromise = this.renderTeamNonCaptains();\n\t\t\treturn this;\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\t_.bindAll(this, 'renderTeamRequests', 'renderTeamCaptains', 'renderTeamNonCaptains', 'resolveTeamRequests', 'handleResolveTeamDone', 'handleResolveTeamRequestsDone', 'handleResolveTeamCaptainsDone', 'handleResolveTeamNonCaptainsDone', 'handleTeamMembersDone', 'addNonCaptain', 'addTeamMember');\n\n\t\t\t// Use wreqr.EventAggregator to listen on events that were fired on the application\n\t\t\twwwApp.on('addTeamMember', this.addTeamMember);\n\t\t\twwwApp.on('removeTeamMember', this.decLenderCount);\n\n\t\t\tthis.resolveEntities();\n\t\t\tthis.render();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 527 */,\n/* 528 */,\n/* 529 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*tombstone inserted 2018-08-08*/try {\n\t/*global tombstone*/tombstone('/sites/www_kiva/client/src/views/views/Portfolio/CollectionView.js');\n} catch (e) {}\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t AccountView = __webpack_require__(511);\n\n\treturn AccountView.extend({\n\t\tevents: {\n\t\t\t'click .showMore a': 'handleShowMoreClick'\n\n\t\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t}, handleShowMoreClick: function handleShowMoreClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.showMore($(event.target));\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery.Element} $el\n */\n\t\t, showMore: function showMore($el) {\n\t\t\t$el.parent().prev().children().slideDown('fast');\n\t\t\t$el.hide();\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tAccountView.prototype.initialize.apply(this, $.makeArray(arguments));\n\n\t\t\tthis.$('.collection').each(function (index, el) {\n\t\t\t\tvar $el = $(el);\n\n\t\t\t\tif ($el.children().length > 12) {\n\t\t\t\t\t$el.after('
show more...
');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 530 */,\n/* 531 */,\n/* 532 */,\n/* 533 */,\n/* 534 */,\n/* 535 */,\n/* 536 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*global google */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\t__webpack_require__(74);\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t numeral = __webpack_require__(73),\n\t Backbone = __webpack_require__(20),\n\t basketHelper = __webpack_require__(556),\n\t HowItWorksSubView = __webpack_require__(793),\n\t LoanEditorBarSubView = __webpack_require__(513),\n\t LoanConditionsSubView = __webpack_require__(512),\n\t LoanInfoBarSubView = __webpack_require__(514),\n\t LoanTags = __webpack_require__(794),\n\t LoanComments = __webpack_require__(795),\n\t LoanFavorites = __webpack_require__(573),\n\t LendersTeams = __webpack_require__(797),\n\t LenderAvatar = __webpack_require__(798),\n\t LoadingSpinner = __webpack_require__(548),\n\t MapsTemplate = __webpack_require__(799),\n\t $script = __webpack_require__(555);\n\n\treturn Backbone.View.extend({\n\n\t\tevents: {\n\t\t\t'change .ac-input': 'onAcInputChange',\n\t\t\t'click .favorite-link': 'onFavoriteLinkClick',\n\t\t\t'click .proceed-to-checkout-button': 'onCheckoutClick',\n\t\t\t'click .mobile-proceed-to-checkout': 'onCheckoutClick',\n\t\t\t'click #checkout-button': 'onCheckoutClick',\n\t\t\t'click #basket-button': 'onCheckoutClick',\n\t\t\t'click .lend-action .lend-button': 'onLendButtonClick',\n\t\t\t'click .mobile-lend-action .lend-button': 'onLendButtonClick',\n\t\t\t'click .browse-more-loans a': 'onBrowseMoreLoansClick',\n\t\t\t'click .loan-amount-button ~ ul li': 'onDesktopLoanAmountChange',\n\t\t\t'change .lend-values-select': 'onMobileLoanAmountChange',\n\t\t\t'click .lend-values-select': 'setWindowPosition',\n\t\t\t'click #lend-button-amount-selector': 'onLendDropdownClick',\n\t\t\t'click [data-kv-accordion]': '_accordionClickHandler'\n\t\t},\n\n\t\tsetWindowPosition: function setWindowPosition() {\n\t\t\tthis.windowPosition = $(window).scrollTop();\n\t\t},\n\n\t\tonBrowseMoreLoansClick: function onBrowseMoreLoansClick(e) {\n\t\t\te.preventDefault();\n\t\t\t// if coming from a non-kiva domain or from a teams page, go to /categories\n\t\t\t// copypasta - this is pretty much a repeat of the a.find-another-loan handler in _handleLoanAddedToBasket()\n\t\t\t// note: the regex matches kiva domains that start with www or dev-vm-01, so as to include, say, www.dev.kiva.org while excluding admin.dev.kiva.org\n\t\t\tif (document.referrer.length === 0 || /^(?!https?:\\/\\/(www|dev-vm-01).*\\.kiva\\.org\\/).+|kiva\\.org\\/team/.test(document.referrer)) {\n\t\t\t\twindow.location.href = '/categories';\n\t\t\t} else {\n\t\t\t\twindow.history.back();\n\t\t\t}\n\t\t},\n\n\t\tonLendDropdownClick: function onLendDropdownClick(event) {\n\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'Modify loan amount', $('#search-box').val());\n\t\t\t});\n\t\t},\n\n\t\tonLendButtonClick: function onLendButtonClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this;\n\t\t\tif (self.showIneligible) {\n\t\t\t\tself._openIneligibleDecisionLightbox();\n\t\t\t} else if (self.showFreeTrialIneligible) {\n\t\t\t\tself._openFreeTrialIneligibleDecisionLightbox();\n\t\t\t} else {\n\t\t\t\tself._proceedWithLending();\n\t\t\t}\n\t\t},\n\n\t\t_proceedWithLending: function _proceedWithLending() {\n\t\t\tvar self = this;\n\t\t\t$('.lend-button-wrapper').hide();\n\t\t\t$('.adding-to-basket').show();\n\t\t\t$('.mobile-lend-action-default .basket-buttons').hide();\n\t\t\t$('.mobile-adding-to-basket').show();\n\n\t\t\t//todo: Nice to have: replace this with a component view similar to components/Lend/FavoriteButtonView.js\n\t\t\tif (self.currentLoanAmountValue === 'free') {\n\t\t\t\tbasketHelper.lendFreeTrialShare(this.businessId);\n\t\t\t} else {\n\t\t\t\tbasketHelper.addLoanToBasket(this.businessId, self.currentLoanAmountValue).done(function (result) {\n\t\t\t\t\tself._handleLoanAddedToBasket(result);\n\t\t\t\t}).fail(self._handleLoanAddedToBasketFailure);\n\t\t\t}\n\t\t},\n\n\t\t_handleLoanAddedToBasket: function _handleLoanAddedToBasket(result) {\n\t\t\tif (result.success) {\n\t\t\t\t$('.mobile-adding-to-basket').hide();\n\t\t\t\t$('.adding-to-basket').hide();\n\t\t\t\t$('#already-supported-message').hide();\n\t\t\t\t$('.browse-more-loans').show();\n\t\t\t\t$('.proceed-to-checkout-button').show();\n\t\t\t\t$('.mobile-proceed-to-checkout').show();\n\t\t\t\t$('#mobile-basket-button').css('height', '90px');\n\t\t\t\t$('#mobile-basket-button').css('z-index', '10001');\n\n\t\t\t\tbasketHelper.updateBasketCount(result.basket_item_count);\n\t\t\t} else {\n\t\t\t\tthis._handleLoanAddedToBasketFailure();\n\t\t\t}\n\t\t},\n\n\t\t_handleLoanAddedToBasketFailure: function _handleLoanAddedToBasketFailure() {\n\t\t\t$('.mobile-adding-to-basket').hide();\n\t\t\t$('.adding-to-basket').hide();\n\t\t\t$('.lend-button-wrapper').show();\n\t\t\t$('.mobile-lend-action-default').show();\n\t\t},\n\n\t\tonCheckoutClick: function onCheckoutClick(e) {\n\t\t\te.preventDefault();\n\t\t\twindow.location.href = '/basket';\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t, onAcInputChange: function onAcInputChange(event) {\n\t\t\tthis.toggleSectionDisplay(event.target);\n\t\t},\n\n\t\tonDesktopLoanAmountChange: function onDesktopLoanAmountChange(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = this;\n\t\t\tvar lendAmount = e.target.innerHTML;\n\t\t\tself.newLoanAmountValue = lendAmount.replace('$', '');\n\t\t\t// 25_hard_coded\n\t\t\tif (self.newLoanAmountValue !== 'Free 25' && self.currentLoanAmountValue === 'free') {\n\t\t\t\tself._openFreeTrialDecisionLightbox();\n\t\t\t\tself._setLightboxHandlers();\n\t\t\t} else {\n\t\t\t\tself._updateLoanAmount();\n\t\t\t}\n\t\t},\n\n\t\t_setLightboxHandlers: function _setLightboxHandlers() {\n\t\t\tvar self = this;\n\n\t\t\tthis.freeTrialDecisionLightbox.find('.main-option').bind('click', { self: self }, self.onFreeTrialDecline);\n\t\t\tthis.freeTrialDecisionLightbox.find('.alternative-option').bind('click', { self: self }, self.onFreeTrialAgree);\n\t\t\tthis.freeTrialDecisionLightbox.find('.close-reveal-modal').bind('click', { self: self }, self.onFreeTrialAgree);\n\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.find('.main-option').bind('click', { self: self }, self.onFreeTrialLendAnyway);\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.find('.alternative-option').bind('click', { self: self }, self.onFindFreeTrialEligibleLoans);\n\n\t\t\tthis.ineligibleDecisionLightbox.find('.main-option').bind('click', { self: self }, self.onLendAnyway);\n\t\t\tthis.ineligibleDecisionLightbox.find('.alternative-option').bind('click', { self: self }, self.onFindEligibleLoans);\n\n\t\t\t$(document).bind('keyup', { self: self }, self._escapeKeyUp);\n\t\t},\n\n\t\t_escapeKeyUp: function _escapeKeyUp(e) {\n\t\t\tif (e.keyCode == 27) {\n\t\t\t\t// esc\n\t\t\t\te.data.self.onFreeTrialDecline(e);\n\t\t\t}\n\t\t},\n\n\t\t_accordionClickHandler: function _accordionClickHandler(e) {\n\t\t\t// Apply following logic for expanded accordions\n\t\t\tif ($(e.currentTarget).attr('aria-expanded') === 'true') {\n\t\t\t\t// innertext is not standard and shouldn't be used in production, this just a workaround:\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText\n\t\t\t\tvar sectionHeading = e.currentTarget.innerText || '';\n\n\t\t\t\tif (sectionHeading.indexOf('Group\\'s story') > -1) {\n\t\t\t\t\tsectionHeading = 'Story';\n\t\t\t\t}\n\n\t\t\t\t// track section openings\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Borrower Profile', 'click-expand section', e.currentTarget.innerText);\n\t\t\t\t});\n\n\t\t\t\tif ($(e.currentTarget).attr('aria-controls') === 'ac-translation-body') {\n\t\t\t\t\t$(e.currentTarget).html('Hide original language description.');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($(e.currentTarget).attr('aria-controls') === 'ac-translation-body') {\n\t\t\t\t\t$(e.currentTarget).html('View original language description.');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_removeLightboxHandlers: function _removeLightboxHandlers() {\n\t\t\tvar self = this;\n\t\t\t$(document).unbind('keyup', self._escapeKeyUp);\n\t\t\tthis.freeTrialDecisionLightbox.find('.close-reveal-modal').unbind('click', self.onFreeTrialDecline);\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.find('.close-reveal-modal').unbind('click', self.onFreeTrialLendAnyway);\n\t\t\tthis.ineligibleDecisionLightbox.find('.close-reveal-modal').unbind('click', self.onLendAnyway);\n\t\t},\n\n\t\tonFreeTrialAgree: function onFreeTrialAgree(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\t// 25_hard_coded\n\t\t\tself.newLoanAmountValue = 'Free 25';\n\t\t\tself._updateLoanAmount();\n\t\t\tself._closeFreeTrialDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t},\n\n\t\tonFreeTrialDecline: function onFreeTrialDecline(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._updateLoanAmount();\n\t\t\tself._closeFreeTrialDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t},\n\n\t\tonFreeTrialLendAnyway: function onFreeTrialLendAnyway(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._updateLoanAmount();\n\t\t\tself._closeFreeTrialIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\tself._proceedWithLending();\n\t\t},\n\n\t\tonLendAnyway: function onLendAnyway(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._closeIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\tself._proceedWithLending();\n\t\t},\n\n\t\tonFindFreeTrialEligibleLoans: function onFindFreeTrialEligibleLoans(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._closeFreeTrialIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\twindow.location.href = '/lend';\n\t\t},\n\n\t\tonFindEligibleLoans: function onFindEligibleLoans(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._closeIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\twindow.location.href = '/lend/freeCreditEligible';\n\t\t},\n\n\t\t_updateLoanAmount: function _updateLoanAmount() {\n\t\t\tvar self = this;\n\t\t\tvar mobileSelectButton = $('.lend-values-select');\n\t\t\tvar desktopSelectButton = $('.lend-values-button button .loan-amount-text');\n\t\t\t// 25_hard_coded\n\t\t\tif (self.newLoanAmountValue === 'Free 25') {\n\t\t\t\tself.currentLoanAmountValue = 'free';\n\t\t\t\tmobileSelectButton.val(self.currentLoanAmountValue);\n\t\t\t\t// 25_hard_coded\n\t\t\t\tdesktopSelectButton.text('Free $25');\n\t\t\t} else {\n\t\t\t\tself.currentLoanAmountValue = self.newLoanAmountValue;\n\t\t\t\tmobileSelectButton.val(self.currentLoanAmountValue);\n\t\t\t\tdesktopSelectButton.text('$' + self.currentLoanAmountValue);\n\t\t\t}\n\t\t},\n\n\t\tonMobileLoanAmountChange: function onMobileLoanAmountChange(e) {\n\t\t\tif (this.windowPosition) {\n\t\t\t\t$(window).scrollTop(this.windowPosition);\n\t\t\t} else {\n\t\t\t\t$(window).scrollTop(0);\n\t\t\t}\n\t\t\tvar self = this;\n\t\t\tself.newLoanAmountValue = $(e.currentTarget).val();\n\t\t\tif (self.newLoanAmountValue !== 'free' && self.currentLoanAmountValue === 'free') {\n\t\t\t\tself._openFreeTrialDecisionLightbox();\n\t\t\t} else {\n\t\t\t\tself._updateLoanAmount();\n\t\t\t}\n\t\t},\n\n\t\t_openFreeTrialDecisionLightbox: function _openFreeTrialDecisionLightbox() {\n\t\t\tthis.freeTrialDecisionLightbox.foundation('reveal', 'open');\n\t\t\tthis._setLightboxHandlers();\n\t\t},\n\n\t\t_closeFreeTrialDecisionLightbox: function _closeFreeTrialDecisionLightbox() {\n\t\t\tthis.freeTrialDecisionLightbox.foundation('reveal', 'close');\n\t\t},\n\n\t\t_openIneligibleDecisionLightbox: function _openIneligibleDecisionLightbox() {\n\t\t\tthis.ineligibleDecisionLightbox.foundation('reveal', 'open');\n\t\t\tthis._setLightboxHandlers();\n\t\t},\n\n\t\t_closeIneligibleDecisionLightbox: function _closeIneligibleDecisionLightbox() {\n\t\t\tthis.ineligibleDecisionLightbox.foundation('reveal', 'close');\n\t\t},\n\n\t\t_openFreeTrialIneligibleDecisionLightbox: function _openFreeTrialIneligibleDecisionLightbox() {\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.foundation('reveal', 'open');\n\t\t\tthis._setLightboxHandlers();\n\t\t},\n\n\t\t_closeFreeTrialIneligibleDecisionLightbox: function _closeFreeTrialIneligibleDecisionLightbox() {\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.foundation('reveal', 'close');\n\t\t},\n\n\t\tonFavoriteLinkClick: function onFavoriteLinkClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.setFavorite(event.target);\n\t\t},\n\n\t\tsetFavorite: function setFavorite(targetElement) {\n\t\t\tvar LoanView = this;\n\t\t\tvar untag = LoanView.isFavorite;\n\t\t\tLoanFavorites.favoriteLoan(this.businessId, untag).done(function (result) {\n\t\t\t\t// Ideally we wouldn't have to handle this up here, but our backend error handling kinda sucks balls\n\t\t\t\tif (result !== 'SUCCESS') {\n\t\t\t\t\twwwApp.tipMsg('Could not Favorite your loan. Please try again.', 'error');\n\t\t\t\t} else {\n\t\t\t\t\tLoanView.toggleFavorite(targetElement);\n\t\t\t\t\tLoanView.isFavorite = !untag;\n\t\t\t\t}\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('Could not Favorite your loan. Ensure you are connected to the Internet.', 'error');\n\t\t\t});\n\t\t},\n\n\t\ttoggleFavorite: function toggleFavorite(element) {\n\t\t\t$(element).toggleClass('is-favorite');\n\t\t},\n\n\t\ttoggleSectionDisplay: function toggleSectionDisplay(el) {\n\t\t\t$(el).nextAll('article:first').slideToggle('slow');\n\t\t},\n\n\t\tsetSlickMargins: function setSlickMargins() {\n\t\t\t/* jshint maxstatements: 23 */\n\t\t\tvar $slickActive = $('.slick-active');\n\t\t\tvar slickWidth = $slickActive.width();\n\t\t\tvar imageWidth = $($slickActive.children()[0]).width();\n\t\t\tvar margin = (slickWidth - imageWidth) / 2;\n\t\t\tvar rightMargin = margin;\n\t\t\tif (imageWidth % 2 === 0) {\n\t\t\t\trightMargin = margin - 1;\n\t\t\t}\n\t\t\tvar $loanMessage = $('.loan-message');\n\t\t\tvar $loanImageFooter = $('.loan-image-footer');\n\t\t\tvar $prevArrow = $('.carousel-prev');\n\t\t\tvar $nextArrow = $('.carousel-next');\n\t\t\t$loanImageFooter.css('margin-right', rightMargin);\n\t\t\t$loanImageFooter.css('margin-left', margin);\n\t\t\t$loanMessage.css('right', rightMargin);\n\t\t\t$prevArrow.css('left', margin);\n\t\t\t$nextArrow.css('right', rightMargin);\n\n\t\t\t// Update Margins based on slide type\n\t\t\tif ($slickActive.find('.fluid-width-video-wrapper').length) {\n\t\t\t\t$loanImageFooter.css('margin-top', '40px');\n\t\t\t} else {\n\t\t\t\t$loanImageFooter.css('margin-top', '0');\n\t\t\t}\n\n\t\t\t$loanMessage.css('visibility', 'visible');\n\t\t\t$prevArrow.css('visibility', 'visible');\n\t\t\t$nextArrow.css('visibility', 'visible');\n\t\t},\n\n\t\thideSlickElements: function hideSlickElements() {\n\t\t\tvar $loanMessage = $('.loan-message');\n\t\t\tvar $prevArrow = $('.carousel-prev');\n\t\t\tvar $nextArrow = $('.carousel-next');\n\t\t\t$loanMessage.css('visibility', 'hidden');\n\t\t\t$prevArrow.css('visibility', 'hidden');\n\t\t\t$nextArrow.css('visibility', 'hidden');\n\t\t},\n\n\t\tinitSlick: function initSlick() {\n\t\t\tvar self = this;\n\t\t\tvar $slickCarousel = $('.loan-figure-carousel');\n\t\t\tvar $loanImageFooter = $('.loan-image-footer');\n\t\t\t$loanImageFooter.css('position', 'relative');\n\t\t\t$loanImageFooter.css('transition', 'margin 0.3s ease-in-out');\n\n\t\t\t$slickCarousel.on('init', function (slick) {\n\t\t\t\tvar loanFigure = $('.loan-figure');\n\n\t\t\t\tvar $images = loanFigure.find('.loan-image-wrap');\n\t\t\t\tvar $slickList = loanFigure.find('.slick-list');\n\t\t\t\t$slickList.css('height', 'auto');\n\t\t\t\t$images.css('transition', 'opacity 2s ease-in-out');\n\t\t\t\t$images.css('position', 'relative');\n\t\t\t\t$images.css('opacity', 1);\n\n\t\t\t\tself.setSlickMargins();\n\t\t\t\t$('.loan-image-footer').show();\n\t\t\t\tloanFigure.css({\n\t\t\t\t\t'padding-bottom': '',\n\t\t\t\t\t'background': 'none'\n\t\t\t\t});\n\t\t\t}).slick({\n\t\t\t\tmobileFirst: true,\n\t\t\t\tprevArrow: '.carousel-prev',\n\t\t\t\tnextArrow: '.carousel-next',\n\t\t\t\tadaptiveHeight: true,\n\t\t\t\tlazyLoad: 'ondemand',\n\t\t\t\tspeed: 1000\n\t\t\t});\n\n\t\t\t$slickCarousel.on('beforeChange', function () {\n\t\t\t\tself.hideSlickElements();\n\t\t\t});\n\n\t\t\t$slickCarousel.on('afterChange', function (event, slick, currentSlide) {\n\t\t\t\tself.setSlickMargins();\n\t\t\t});\n\t\t},\n\n\t\tinitRepaymentSchedule: function initRepaymentSchedule() {\n\t\t\t$('[data-reveal-id=\"repayment-schedule-tables\"]').click();\n\t\t},\n\n\t\tinitVars: function initVars(self, options) {\n\t\t\tthis.businessId = options.model.get('business_id');\n\t\t\tthis.loggedInUserRole = options.model.get('logged_in_user_role');\n\t\t\tthis.isFavorite = options.model.get('is_favorite');\n\t\t\tthis.showIneligible = options.model.get('show_ineligible');\n\t\t\tthis.showFreeTrialIneligible = options.model.get('show_free_trial_ineligible');\n\t\t\tthis.countryMapInfo = options.model.get('country_map_info');\n\t\t\tthis.isDirectLoan = options.model.get('is_direct_loan');\n\t\t\tthis.freeTrialDecisionLightbox = $('#free-trial-decision-lightbox');\n\t\t\tthis.ineligibleDecisionLightbox = $('#ineligible-decision-lightbox');\n\t\t\tthis.freeTrialIneligibleDecisionLightbox = $('#free-trial-ineligible-decision-lightbox');\n\t\t\tthis.currentLoanAmountValue = $('.lend-values-select').val();\n\t\t},\n\n\t\thandleCommentsAnchorLink: function handleCommentsAnchorLink() {\n\t\t\t// open comments accordion if anchor link in URL\n\t\t\tif (window.location.hash.indexOf('loanComments') > 0) {\n\t\t\t\tthis.showComments(1500);\n\t\t\t}\n\t\t},\n\n\t\tshowComments: function showComments(delay) {\n\t\t\tvar commentsSection = document.getElementsByClassName('comments-and-updates-title')[0];\n\n\t\t\tif (commentsSection) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tcommentsSection.scrollIntoView();\n\t\t\t\t\tif ($('.comments-and-updates-title').attr('aria-expanded') === 'false') {\n\t\t\t\t\t\t$('.comments-and-updates h2').click();\n\t\t\t\t\t}\n\t\t\t\t}, delay);\n\t\t\t}\n\t\t},\n\n\t\tgetLendersAndTeamsContext: function getLendersAndTeamsContext(options) {\n\t\t\t// expecting: lenderCount, lenders, numAnonymousLenders, teamCount, teams, spilloverCutoff\n\n\t\t\tvar allLendersAnonymous = false;\n\t\t\tvar lenderCount = numeral(options.lenderCount).format('0,0');\n\t\t\tvar lenderAnonymousCount = numeral(options.numAnonymousLenders).format('0,0');\n\n\t\t\tif (lenderCount > 0 && lenderCount - lenderAnonymousCount === 0) {\n\t\t\t\tallLendersAnonymous = true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlenderCount: numeral(options.lenderCount).format('0,0'),\n\t\t\t\tlendersExpanded: options.lendersExpanded,\n\t\t\t\tlendersLoading: options.lendersLoading,\n\t\t\t\tlenders: options.lendersExpanded ? options.lenders : options.lenders.slice(0, options.spilloverCutoff),\n\t\t\t\tnumAnonymousLenders: numeral(options.numAnonymousLenders).format('0,0'),\n\t\t\t\tbeyondLenderCutoffCount: options.lenderCount - options.numAnonymousLenders > options.lenders.length,\n\t\t\t\tshowSpilloverMessageForLenders: options.lenderCount > options.spilloverCutoff,\n\n\t\t\t\tteamCount: numeral(options.teamCount).format('0,0'),\n\t\t\t\tteamsExpanded: options.teamsExpanded,\n\t\t\t\tteamsLoading: options.teamsLoading,\n\t\t\t\tteams: options.teamsExpanded ? options.teams : options.teams.slice(0, options.spilloverCutoff),\n\t\t\t\tbeyondTeamCutoffCount: options.teamCount > options.teams.length,\n\t\t\t\tshowSpilloverMessageForTeams: options.teamCount > options.spilloverCutoff,\n\t\t\t\tallLendersAnonymous: allLendersAnonymous,\n\t\t\t\tbp_hide_loan_details_exp: this.model.get('bp_hide_loan_details_exp') === 'b'\n\t\t\t};\n\t\t},\n\n\t\tattachLendersAndTeamsEventHandlers: function attachLendersAndTeamsEventHandlers() {\n\t\t\tvar self = this;\n\n\t\t\t$('.show-more-lenders').click(function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (self.lendersAndTeams.lendersLoading) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar total = self.lendersAndTeams.lenderCount - self.lendersAndTeams.numAnonymousLenders;\n\t\t\t\tvar fetched = self.lendersAndTeams.lenders.length;\n\t\t\t\tvar limit = self.lendersAndTeams.lendersPerFetch;\n\n\t\t\t\tif (fetched < total) {\n\t\t\t\t\t$.getJSON('/ajax/getLendersForLoan', {\n\t\t\t\t\t\tloan_id: self.businessId,\n\t\t\t\t\t\toffset: fetched,\n\t\t\t\t\t\tlimit: limit\n\t\t\t\t\t}).done(function (lenders) {\n\t\t\t\t\t\tself.lendersAndTeams.lenders = self.lendersAndTeams.lenders.concat(lenders);\n\t\t\t\t\t\tself.lendersAndTeams.lendersLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t}).fail(function (jqxhr, status, error) {\n\t\t\t\t\t\tself.lendersAndTeams.lendersLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t\tthrow new Error(error);\n\t\t\t\t\t});\n\n\t\t\t\t\t$('.show-more-lenders').before(LoadingSpinner.render());\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('.show-all-lenders').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.lendersExpanded = true;\n\t\t\t\tself.renderLendersAndTeams();\n\t\t\t});\n\n\t\t\t$('.hide-more-lenders').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.lendersExpanded = false;\n\t\t\t\tself.renderLendersAndTeams();\n\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.lenders-title').offset().top\n\t\t\t\t}, 1000);\n\t\t\t});\n\n\t\t\t$('.show-more-teams').click(function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (self.lendersAndTeams.teamsLoading) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar total = self.lendersAndTeams.teamCount;\n\t\t\t\tvar fetched = self.lendersAndTeams.teams.length;\n\t\t\t\tvar limit = self.lendersAndTeams.teamsPerFetch;\n\n\t\t\t\tif (fetched < total) {\n\t\t\t\t\t$.getJSON('/ajax/getTeamsForLoan', {\n\t\t\t\t\t\tloan_id: self.businessId,\n\t\t\t\t\t\toffset: fetched,\n\t\t\t\t\t\tlimit: limit\n\t\t\t\t\t}).done(function (teams) {\n\t\t\t\t\t\tself.lendersAndTeams.teams = self.lendersAndTeams.teams.concat(teams);\n\t\t\t\t\t\tself.lendersAndTeams.teamsLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t}).fail(function (jqxhr, status, error) {\n\t\t\t\t\t\tself.lendersAndTeams.teamsLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t\tthrow new Error(error);\n\t\t\t\t\t});\n\n\t\t\t\t\t$('.show-more-teams').before(LoadingSpinner.render());\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('.show-all-teams').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.teamsExpanded = true;\n\t\t\t\tself.renderLendersAndTeams();\n\t\t\t});\n\n\t\t\t$('.hide-more-teams').click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.teamsExpanded = false;\n\t\t\t\tself.renderLendersAndTeams();\n\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.teams-title').offset().top\n\t\t\t\t}, 1000);\n\t\t\t});\n\t\t},\n\n\t\trenderLendersAndTeams: function renderLendersAndTeams() {\n\t\t\tvar context = this.getLendersAndTeamsContext(this.lendersAndTeams);\n\n\t\t\t$('#lenders-teams').html($('#lenders-teams .ac-title')[0].outerHTML + LendersTeams.render(context, {\n\t\t\t\t'01-molecules/03-media/02-lender-avatar': LenderAvatar,\n\t\t\t\t'01-molecules/03-media/01-loading-spinner': LoadingSpinner\n\t\t\t}));\n\n\t\t\t$(document).foundation('tooltip', 'reflow');\n\n\t\t\tif (window.kvAccordion && window.kvAccordion.reflow) {\n\t\t\t\twindow.kvAccordion.reflow();\n\t\t\t}\n\n\t\t\tthis.attachLendersAndTeamsEventHandlers();\n\t\t}\n\n\t\t/**\n * Load templates into slots on the webpage\n */\n\t\t, handleLazyTemplateLoading: function handleLazyTemplateLoading(context) {\n\t\t\t$('#country-section').append(MapsTemplate.render(context.model.get('country_info_context')));\n\n\t\t\tvar lendersTeamsContext = context.model.get('lenders_teams_context');\n\t\t\tif (_.size(lendersTeamsContext) > 0) {\n\t\t\t\tthis.lendersAndTeams = $.extend(lendersTeamsContext, {\n\t\t\t\t\tlendersExpanded: false,\n\t\t\t\t\tteamsExpanded: false,\n\t\t\t\t\tlenders: lendersTeamsContext.lenders || [],\n\t\t\t\t\tteams: lendersTeamsContext.teams || []\n\t\t\t\t});\n\n\t\t\t\tthis.renderLendersAndTeams();\n\t\t\t}\n\t\t}\n\n\t\t/**\n * adjust panel states if direct, small screen, or state saved\n */\n\t\t, handlePanelStates: function handlePanelStates() {\n\t\t\tvar storedPanelStates = wwwApp.localStorage.get('borrowerPanelStates'),\n\t\t\t expandCountryPanel = false,\n\t\t\t expandMoreInfoPanel = false;\n\n\t\t\t// default changes for direct loans on large screens\n\t\t\t// GROW-523 Borrower profile hide loan details exp\n\t\t\t// check that user is not in experiment to show default menus\n\t\t\tif (window.Foundation.utils.is_large_up() && this.model.get('bp_hide_loan_details_exp') !== 'b') {\n\t\t\t\tif (this.isDirectLoan) {\n\t\t\t\t\texpandMoreInfoPanel = true;\n\t\t\t\t} else {\n\t\t\t\t\texpandCountryPanel = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (storedPanelStates) {\n\t\t\t\tfor (var panel in storedPanelStates) {\n\n\t\t\t\t\tif (panel === 'ac-more-loan-info-body') {\n\t\t\t\t\t\t// only present in array if should be expanded\n\t\t\t\t\t\texpandMoreInfoPanel = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (panel === 'ac-country-info-body') {\n\t\t\t\t\t\t// only present in array if should be expanded\n\t\t\t\t\t\texpandCountryPanel = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t$('[aria-controls=\"' + panel + '\"]').click();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (expandMoreInfoPanel) {\n\t\t\t\t$('.more-loan-info h2').click();\n\t\t\t}\n\n\t\t\tif (expandCountryPanel) {\n\t\t\t\t$('.country-info h2').click();\n\t\t\t}\n\t\t},\n\n\t\tinitializeInContextEditor: function initializeInContextEditor(options) {\n\t\t\tif (options.model.get('show_in_context_editor')) {\n\t\t\t\tLoanEditorBarSubView.init(window.Loan_LoanEditorBarSubView);\n\t\t\t\tLoanInfoBarSubView.init(window.Loan_LoanInfoBarSubView);\n\t\t\t\tLoanConditionsSubView.init(window.Loan_LoanConditionsSubView);\n\t\t\t}\n\t\t},\n\n\t\tanalyticsHideStory: function analyticsHideStory(options) {\n\t\t\tif (options.model.get('bp_exp_version')) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'EXP-CASH-166-Nov2018', options.model.get('bp_exp_version'), undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Store Loan Id in localStorage for use in Recently Viewed\n */\n\t\t, storeRecentlyViewedLoan: function storeRecentlyViewedLoan() {\n\t\t\tvar recentLoanData = wwwApp.localStorage.get('recentlyViewedLoans') || [];\n\n\t\t\t// Check for id in array\n\t\t\tif (_.contains(recentLoanData, this.businessId)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Push loan onto the beginning of array\n\t\t\trecentLoanData.unshift(this.businessId);\n\n\t\t\t// Update localStorage with limit of 12 ids\n\t\t\twwwApp.localStorage.set('recentlyViewedLoans', recentLoanData.slice(0, 12));\n\t\t},\n\n\t\ttrackBetaExperiment: function trackBetaExperiment(version) {\n\t\t\tif (version) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Borrower Profile', 'legacy bp visit', version.toLowerCase(), undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\ttrackLoanStatus: function trackLoanStatus(status) {\n\t\t\tif (status) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'borrower profile status', status.toLowerCase(), undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\ttrackProfileRedirect: function trackProfileRedirect(version) {\n\t\t\t// Tracking event for the control version of the funded borrower profile experiment.\n\t\t\tif (version) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'EXP-CASH-847-Jun2019', version, undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\ttrackHideLoanDetails: function trackHideLoanDetails(version) {\n\t\t\tif (version) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Borrower Profile', 'EXP-GROW-523-Apr2021', version, undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\t/* jshint maxstatements: 25 */\n\t\t\tvar self = this;\n\t\t\tself.handleLazyTemplateLoading(options);\n\t\t\tself.initVars(self, options);\n\t\t\tif (this.isFavorite) {\n\t\t\t\tself.toggleFavorite('.favorite-link');\n\t\t\t}\n\t\t\tself.initSlick();\n\t\t\t$(window).resize(function () {\n\t\t\t\tself.setSlickMargins();\n\t\t\t});\n\t\t\tLoanFavorites.init();\n\t\t\tHowItWorksSubView.init();\n\t\t\tLoanTags.init(self.businessId);\n\t\t\tLoanComments.init(self.businessId, self.loggedInUserRole);\n\t\t\t$('#mobile-basket-button').css('height', 0);\n\n\t\t\tif (Backbone.history.getHash() == 'repaymentSchedule') {\n\t\t\t\tself.initRepaymentSchedule();\n\t\t\t}\n\n\t\t\tself.handlePanelStates();\n\n\t\t\tthis.handleCommentsAnchorLink();\n\n\t\t\t$('#my-kiva-dropdown a[href$=\"loanComments\"]').click(function () {\n\t\t\t\tself.showComments(100);\n\t\t\t});\n\n\t\t\tthis.initializeInContextEditor(options);\n\n\t\t\tself.storeRecentlyViewedLoan();\n\n\t\t\t// GROW-655\n\t\t\tthis.trackBetaExperiment(options.model.get('lend_beta_bp_exp_version'));\n\n\t\t\t// CASH-660\n\t\t\tthis.trackLoanStatus(options.model.get('is_fundraising'));\n\n\t\t\t// CASH-166 Experiment Analytics\n\t\t\tthis.analyticsHideStory(options);\n\n\t\t\t// GROW-523 Experiment hide loan details on borrower profiles\n\t\t\tthis.trackHideLoanDetails(options.model.get('bp_hide_loan_details_exp'));\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 537 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/* global console, wwwApp, snowplow */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t moment = __webpack_require__(546),\n\t Marionette = __webpack_require__(209),\n\t basketHelper = __webpack_require__(556),\n\t ResultsView = __webpack_require__(800),\n\t numeral = __webpack_require__(73);\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.mainWrapper',\n\n\t\tregions: {\n\t\t\tresultsRegion: '.results-region'\n\t\t},\n\n\t\tupdateResults: function updateResults(loans, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tthis.resultsView.updateResults(loans, enable_previous, enable_next, enable_first, enable_last);\n\t\t},\n\n\t\t_configureMoment: function _configureMoment() {\n\t\t\tmoment.relativeTimeThreshold('m', 120);\n\t\t\tmoment.relativeTimeThreshold('h', 48);\n\n\t\t\tmoment.updateLocale('en', {\n\t\t\t\trelativeTime: {\n\t\t\t\t\tfuture: 'in %s',\n\t\t\t\t\tpast: '%s ago',\n\t\t\t\t\ts: '%d seconds',\n\t\t\t\t\tm: '1 minute',\n\t\t\t\t\tmm: '%d minutes',\n\t\t\t\t\th: '1 hour',\n\t\t\t\t\thh: '%d hours',\n\t\t\t\t\td: '1 day',\n\t\t\t\t\tdd: '%d days',\n\t\t\t\t\tM: '1 month',\n\t\t\t\t\tMM: '%d months',\n\t\t\t\t\ty: '1 year',\n\t\t\t\t\tyy: '%d years'\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_handleLend: function _handleLend(loan_id) {\n\t\t\tif (this.free_trial) {\n\t\t\t\tbasketHelper.lendFreeTrialShare(loan_id);\n\t\t\t} else {\n\t\t\t\tvar self = this;\n\t\t\t\t// 25_hard_coded share_table\n\t\t\t\tbasketHelper.addLoanToBasket(loan_id, 25).done(function (result) {\n\t\t\t\t\tself._handleLoanAddedToBasket(result);\n\t\t\t\t}).fail(function () {\n\t\t\t\t\tself._handleLoanAddedToBasketFailure(loan_id);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tupdateLoanBasketStatus: function updateLoanBasketStatus(loan_id, amount) {\n\t\t\tthis.resultsView.updateBasketStatus(loan_id, amount);\n\t\t}\n\n\t\t// 25_hard_coded share_table\n\t\t, _handleLoanAddedToBasket: function _handleLoanAddedToBasket(result) {\n\t\t\tif (result.success) {\n\t\t\t\tthis.updateLoanBasketStatus(parseInt(result.business_id), 25);\n\t\t\t} else {\n\t\t\t\tthis._handleLoanAddedToBasketFailure(result.business_id);\n\t\t\t}\n\t\t},\n\n\t\t_handleLoanAddedToBasketFailure: function _handleLoanAddedToBasketFailure(loan_id) {\n\t\t\tthis.view.updateLoanBasketStatus(parseInt(loan_id), 0);\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\t/* jshint maxstatements: 29 */\n\t\t\tvar loans_shown = this.model.get('num_loans') > 0 ? 'Loans Shown' : 'NO Loans Shown';\n\t\t\tvar miles = this.model.get('miles');\n\n\t\t\tthis._configureMoment();\n\n\t\t\tthis.resultsView = new ResultsView();\n\n\t\t\tthis.listenTo(this.resultsView, 'lend', this._handleLend);\n\n\t\t\t// update loans in js view\n\t\t\tthis.updateResults(this.model.get('loans'), false, false, false, false);\n\n\t\t\tif (typeof wwwApp !== 'undefined') {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', loans_shown, 'Loans Near Me', miles, true);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.showChildView('resultsRegion', this.resultsView);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 538 */,\n/* 539 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* global paypal, Foundation */\n\n\nvar _ = __webpack_require__(11);\nvar $ = __webpack_require__(0);\nvar autoCorrecter = __webpack_require__(578);\nvar numeral = __webpack_require__(73);\nvar $script = __webpack_require__(555);\n\n$script('https://www.paypalobjects.com/api/checkout.js', 'paypal-checkout');\n\n/*\n * Set the appropriate inteface type based on string passed to function\n * @param: String 'paypal' or 'standard'\n */\nfunction toggleInterface(interfaceType) {\n\tvar $addCredit = $('.add-credit'),\n\t $addCreditForm = $addCredit.find('.add-credit-form'),\n\t $addCreditButton = $addCreditForm.find('#continue-button'),\n\t $monthlyField = $addCreditForm.find('.monthly-deposit-field'),\n\t $paypalButton = $('#paypal-button'),\n\t $cancelPaypalButton = $('#paypal-cancel'),\n\t $amountField = $addCreditForm.find('.amount-to-deposit-field input'),\n\t $addCreditPending = $addCredit.find('.add-credit-pending'),\n\t $addCreditThanks = $addCredit.find('.add-credit-thanks');\n\n\tswitch (interfaceType) {\n\t\tcase 'paypal':\n\t\t\t$addCreditThanks.hide();\n\t\t\t$addCreditPending.hide();\n\t\t\t$monthlyField.hide();\n\t\t\t$amountField.prop('disabled', true);\n\t\t\t$addCreditButton.hide();\n\t\t\tif ($paypalButton.length) {\n\t\t\t\t$paypalButton.show();\n\t\t\t\t$cancelPaypalButton.show();\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'pending':\n\t\t\t$addCreditForm.hide();\n\t\t\t$addCreditThanks.hide();\n\t\t\t$addCreditPending.show();\n\t\t\tbreak;\n\t\tcase 'thanks':\n\t\t\t$addCreditForm.hide();\n\t\t\t$addCreditThanks.show();\n\t\t\t$addCreditPending.hide();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t$addCreditForm.show();\n\t\t\t$addCreditThanks.hide();\n\t\t\t$addCreditPending.hide();\n\t\t\t$monthlyField.show();\n\t\t\t$amountField.prop('disabled', false);\n\t\t\t$addCreditButton.show();\n\t\t\t$paypalButton.hide();\n\t\t\t$cancelPaypalButton.hide();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * send successful add credit event for google analytics\n */\nfunction trackAddCredit(result) {\n\tvar total = 0;\n\t// update total with amount of credit added in cents, event values don't allow floats\n\ttry {\n\t\ttotal = Math.round(result.value.PAYMENTINFO_0_AMT * 100);\n\t} catch (e) {}\n\twwwApp.kvTrack.trackEvent('Lending', 'Add Credit', 'Add Credit Page', total);\n}\n\n/**\n * Update Interface, Redirect + Handle Errors that result from doExpressCheckout ajax call\n * @param result\n */\nfunction handleDoExpressCheckoutError(result, token) {\n\t// Determine Error Code\n\tvar errorObject, errorCode, errorMessage;\n\tif (result.value.length && result.value[0].length) {\n\t\terrorObject = result.value[0][0];\n\t\terrorCode = errorObject.L_ERRORCODE ? errorObject.L_ERRORCODE : 'NO_CODE';\n\t\terrorMessage = errorObject.L_SHORTMESSAGE ? errorObject.L_SHORTMESSAGE : 'There was an error processing your payment. Please try again.';\n\t}\n\n\t// Show Tip Message\n\twwwApp.tipMsg(errorMessage + ' - Error Code: ' + errorCode, 'error');\n\t// Reset UI\n\ttoggleInterface();\n}\n\n/**\n * Update transaction details\n */\nfunction updateTransactionDetails(result) {\n\tvar $addCreditThanks = $('.add-credit-thanks'),\n\t paypalAmt;\n\n\ttry {\n\t\tpaypalAmt = numeral(result.value.PAYMENTINFO_0_AMT);\n\t\t$addCreditThanks.find('.amount-paid').html(paypalAmt.format('$0.00'));\n\t} catch (e) {}\n}\n\nfunction onDoPaymentSuccess(result) {\n\tvar pp_txn_id = result.value.PAYMENTINFO_0_TRANSACTIONID;\n\tvar kiva_pp_id = result.value.PAYMENTINFO_0_SECUREMERCHANTACCOUNTID;\n\tvar token = result.value.TOKEN;\n\t// Payment type needed to detect non-instant payment types like echeck\n\tvar pp_payment_type = result.value.PAYMENTINFO_0_PAYMENTTYPE;\n\tvar pp_payment_status = result.value.PAYMENTINFO_0_PAYMENTSTATUS;\n\tvar custom = result.custom;\n\tif (pp_txn_id) {\n\t\t// Record deposit on Kiva side. Regardless of success/failure, we show thanks message to user.\n\t\t$.post('/ajax/handleExpressCheckout', {\n\t\t\ttoken: token,\n\t\t\ttxn_id: pp_txn_id,\n\t\t\tcustom: custom,\n\t\t\tkiva_pp_id: kiva_pp_id,\n\t\t\tpayment_type: pp_payment_type,\n\t\t\tpayment_status: pp_payment_status\n\t\t});\n\t}\n}\n\n/**\n * render the paypal button using code from checkout.js\n * @param expressCheckoutEnv should be 'sandbox' or 'production'\n */\nfunction renderPaypalButton(expressCheckoutEnv) {\n\n\t// Inject paypal button div\n\t$('.add-credit').find('form').append('Cancel').append('
');\n\n\t$('#paypal-cancel').click(function (e) {\n\t\te.preventDefault();\n\t\ttoggleInterface();\n\t});\n\n\tvar CREATE_PAYMENT_URL = '/ajax/setExpressCheckout'; // used to get initial token\n\tvar EXECUTE_PAYMENT_URL = '/ajax/doExpressCheckoutPayment'; // used to finalize transaction\n\n\t// Execute Render Function\n\tpaypal.Button.render({\n\n\t\tenv: expressCheckoutEnv, // Specify 'sandbox' for the test environment, 'production' otherwise\n\n\t\tpayment: function payment(resolve, reject) {\n\n\t\t\tvar amount = numeral($('.amount-to-deposit-field input').val()).value();\n\t\t\tconsole.log(CREATE_PAYMENT_URL, { 'amount': amount });\n\t\t\tpaypal.request.post(CREATE_PAYMENT_URL, { 'amount': amount }).then(function (result) {\n\t\t\t\tconsole.log(CREATE_PAYMENT_URL, 'done, result is', result);\n\t\t\t\tresolve(result.token);\n\t\t\t}).catch(function (err) {\n\t\t\t\tconsole.log(CREATE_PAYMENT_URL, 'error caught, err is ', err);\n\t\t\t});\n\t\t},\n\n\t\tonAuthorize: function onAuthorize(data, actions) {\n\n\t\t\ttoggleInterface('pending');\n\n\t\t\tvar amount = numeral($('.amount-to-deposit-field input').val()).value();\n\t\t\tconsole.log(EXECUTE_PAYMENT_URL, {\n\t\t\t\t'token': data.paymentToken,\n\t\t\t\t'payer_id': data.payerID,\n\t\t\t\t'amount': amount,\n\t\t\t\t'cancel_url': { 'page': 'account', 'action': 'deposit' },\n\t\t\t\t'___data': data\n\t\t\t});\n\n\t\t\tpaypal.request.post(EXECUTE_PAYMENT_URL, {\n\t\t\t\t'token': data.paymentToken,\n\t\t\t\t'payer_id': data.payerID,\n\t\t\t\t'cancel_url': { 'page': 'account', 'action': 'deposit' },\n\t\t\t\t'amount': amount\n\t\t\t}).then(function (result) {\n\t\t\t\tconsole.log(EXECUTE_PAYMENT_URL, 'done, result is', result);\n\t\t\t\tconsole.log(EXECUTE_PAYMENT_URL, 'tokens in/out', data.paymentToken, result.value.TOKEN);\n\n\t\t\t\tif (result.success) {\n\t\t\t\t\t// update transaction amount dynamic value\n\t\t\t\t\tupdateTransactionDetails(result);\n\t\t\t\t\ttoggleInterface('thanks');\n\t\t\t\t\tonDoPaymentSuccess(result);\n\n\t\t\t\t\t// Fire tracking on successful transaction\n\t\t\t\t\ttrackAddCredit(result);\n\t\t\t\t} else {\n\t\t\t\t\thandleDoExpressCheckoutError(result, data.paymentToken);\n\t\t\t\t}\n\t\t\t}).catch(function (err) {\n\t\t\t\tconsole.log(EXECUTE_PAYMENT_URL, 'error', err);\n\t\t\t\t// reset interface\n\t\t\t\ttoggleInterface();\n\t\t\t});\n\t\t\t// Execute the payment here, when the buyer approves the transaction\n\t\t\t// if we were doing client-side with REST then could do following:\n\t\t\t/*\n return actions.payment.execute().then(function(result) {\n console.log('result is : ' + result);\n alert('made it');\n });*/\n\t\t},\n\t\tonCancel: function onCancel(data, actions) {\n\t\t\tconsole.log('onCancel', { 'data': data, 'actions': actions });\n\t\t\ttoggleInterface();\n\t\t},\n\n\t\tonError: function onError(err) {\n\t\t\tconsole.log('onError', err);\n\t\t},\n\n\t\tstyle: {\n\t\t\tcolor: 'blue',\n\t\t\tshape: 'rect',\n\t\t\tsize: Foundation.utils.is_medium_up() ? 'large' : 'responsive'\n\t\t}\n\t}, '#paypal-button');\n}\n\nmodule.exports = {\n\tinit: function init(data) {\n\n\t\tvar expressCheckoutEnv = data.context.env || 'sandbox'; // default\n\n\t\tvar $deposit = $('.amount-to-deposit-field input');\n\n\t\tautoCorrecter.usd($deposit);\n\n\t\t// Abide Form Validation - Runs on Submit (clicking Continue)\n\t\t$('.add-credit form').on('valid.fndtn.abide', function () {\n\t\t\t// clear tip message if present\n\t\t\twwwApp.closeTipMsg();\n\n\t\t\t// Initialize or Show Paypal Express checkout button\n\t\t\ttoggleInterface('paypal');\n\t\t\t$script.ready('paypal-checkout', function () {\n\t\t\t\tif (!$('#paypal-button').length) {\n\t\t\t\t\trenderPaypalButton(expressCheckoutEnv);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n};\n\n/***/ }),\n/* 540 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* global paypal, Foundation */\n\n\nvar _ = __webpack_require__(11),\n $ = __webpack_require__(0),\n lightboxTemplate = __webpack_require__(572),\n $script = __webpack_require__(555);\n\n// expose jquery to window\nglobal.$ = global.jQuery = __webpack_require__(0);\n// load datatables from cdn\n$script('https://cdn.datatables.net/1.9.0/js/jquery.dataTables.min.js', 'jquery-dataTables');\n\nfunction _showSalesForceLightbox(solution_id) {\n\t$.get(wwwApp.ajaxUrl('ajaxProxy', { href: 'http://na84.salesforce.com/_ui/selfservice/pkb/PublicKnowledgeSolution/d?orgId=00D500000006svl&id=50150000000Rs0m' })).done(function (response) {\n\t\tresponse = response.replace(/<\\/?(span|font|blockquote|img|iframe|script).*?>|style=\".*?\"/g, '');\n\n\t\tvar title = $('td .solutionTitleDetail', response).html();\n\t\tvar text = $('td .htmlDetailElementDiv', response).html();\n\n\t\t$(lightboxTemplate.render({ descriptionTitle: title, descriptionText: text })).foundation('reveal', 'open');\n\t});\n}\n\nmodule.exports = {\n\tinit: function init(viewData) {\n\n\t\tvar year = viewData.year ? '/' + viewData.year : '';\n\n\t\t$('.how-kiva-uses-donations').on('click', function (event) {\n\t\t\tevent.preventDefault();\n\t\t\t_showSalesForceLightbox();\n\t\t});\n\n\t\t// execute dataTables script when ready\n\t\t$script.ready('jquery-dataTables', function () {\n\t\t\t$('#donationsTable').dataTable({\n\t\t\t\t'bAutoWidth': false,\n\t\t\t\t'bFilter': false,\n\t\t\t\t'bSort': false,\n\t\t\t\t'bLengthChange': false,\n\t\t\t\t'bPaginate': true,\n\t\t\t\t'iDisplayLength': viewData.perPage,\n\t\t\t\t'sPaginationType': 'full_numbers',\n\t\t\t\t'bProcessing': true,\n\t\t\t\t'bServerSide': true,\n\t\t\t\t'sAjaxSource': wwwApp.conf.get('rootHttp') + 'portfolio/donations/data' + year,\n\t\t\t\t'fnDrawCallback': function fnDrawCallback() {\n\t\t\t\t\tif ($('.dataTables_paginate .paginate_button').length <= 4) {\n\t\t\t\t\t\t// first,prev,,next,last\n\t\t\t\t\t\t$('.dataTables_paginate').hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(12)))\n\n/***/ }),\n/* 541 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/* global google, wwwApp */\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\t/* jshint maxstatements: 26 */\n\n\t// dependencies\n\n\tvar $ = __webpack_require__(0);\n\tvar _ = __webpack_require__(11);\n\tvar browser = __webpack_require__(211);\n\tvar numeral = __webpack_require__(73);\n\tvar $script = __webpack_require__(555);\n\tvar table_template = __webpack_require__(805);\n\tvar table_row_template = __webpack_require__(806);\n\tvar graph_lightbox_template = __webpack_require__(807);\n\tvar CTASubView = __webpack_require__(515);\n\n\t$script('https://www.gstatic.com/charts/loader.js', 'google-charts');\n\n\t// shared references\n\tvar google_loader,\n\t loan_map,\n\t loan_map_data_table,\n\t distribution_data = {},\n\t distribution_charts = {},\n\t loan_count_data_table;\n\n\tfunction confirmLoginSuccess() {\n\t\tif (document.referrer.indexOf('/login') && wwwApp.conf.get('logged_in')) {\n\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\twwwApp.kvTrack.trackEvent('Login', 'successful-login', 'landing-portfolio', undefined, true);\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction displayInactivitySettingsLightbox() {\n\t\t$('#inactive-account-settings-modal').foundation('reveal', 'open');\n\n\t\t$('#inactivity_form').submit(function (event) {\n\t\t\tevent.preventDefault();\n\t\t\t$.ajax({\n\t\t\t\turl: wwwApp.staticUrl('portfolio/updateActivitySettings'),\n\t\t\t\ttype: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\tdata: {\n\t\t\t\t\tinactivity_setting: $('input[name=\"inactivity_setting\"]:checked').val(),\n\t\t\t\t\tpaypal_email_address: $('input[name=\"paypal_email_address\"]').val()\n\t\t\t\t},\n\t\t\t\tsuccess: function success(result) {\n\t\t\t\t\t$('#inactive-account-settings-modal').foundation('reveal', 'close');\n\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\twwwApp.tipMsg('Thank you! We have updated your settings.');\n\t\t\t\t\t} else {\n\t\t\t\t\t\twwwApp.tipMsg(result.errMsg, 'error');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: function error() {\n\t\t\t\t\t$('#inactive-account-settings-modal').foundation('reveal', 'close');\n\t\t\t\t\twwwApp.tipMsg('There was an error. Please try again.', 'error');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction drawLoanCountGraph() {\n\t\tvar options = {\n\t\t\tcolors: ['#4faf4e'],\n\t\t\tchartArea: {\n\t\t\t\tleft: '10%',\n\t\t\t\ttop: '5%',\n\t\t\t\twidth: '85%',\n\t\t\t\theight: '85%'\n\t\t\t},\n\t\t\thAxis: {\n\t\t\t\tformat: 'MMM d, y',\n\t\t\t\tgridlines: {\n\t\t\t\t\tcount: -1\n\t\t\t\t}\n\t\t\t},\n\t\t\tvAxis: {\n\t\t\t\tminValue: 0,\n\t\t\t\tgridlines: {\n\t\t\t\t\tcount: -1\n\t\t\t\t}\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\tposition: 'none'\n\t\t\t}\n\t\t};\n\n\t\tvar $graph_area = $('.lightbox-content .loan-count-graph');\n\t\tvar graph = new google.visualization.AreaChart($graph_area[0]);\n\n\t\tif (loan_count_data_table.getNumberOfRows() === 1) {\n\t\t\tvar loanDateYear = new Date(loan_count_data_table.getValue(0, 0)).getFullYear();\n\n\t\t\toptions.hAxis.gridlines.count = 10;\n\t\t\toptions.hAxis.minValue = new Date(loanDateYear, 0, 0);\n\t\t\toptions.hAxis.maxValue = new Date(loanDateYear + 1, 0, 0);\n\t\t}\n\n\t\tgraph.draw(loan_count_data_table, options);\n\t\t$graph_area.css('opacity', 1);\n\t}\n\n\tfunction drawMap(width) {\n\t\tif (loan_map && loan_map_data_table) {\n\t\t\t// https://developers.google.com/chart/interactive/docs/gallery/geochart\n\t\t\tvar options = {\n\t\t\t\ttooltip: {\n\t\t\t\t\ttextStyle: { color: '#333' // $kiva-text-dark\n\t\t\t\t\t} },\n\t\t\t\tcolorAxis: {\n\t\t\t\t\tcolors: ['#aee15c', '#247037'] // $kiva-accent-green, $kiva-darkgreen\n\t\t\t\t},\n\t\t\t\tmagnifyingGlass: {\n\t\t\t\t\tenable: true,\n\t\t\t\t\tzoomFactor: 5.0\n\t\t\t\t},\n\t\t\t\twidth: width\n\t\t\t};\n\n\t\t\t// disable map hover on iOS Safari because it's buggy. see RP-63 & RP-92\n\t\t\tif (browser.ios && browser.safari) {\n\t\t\t\toptions.tooltip = {\n\t\t\t\t\ttrigger: 'selection'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tloan_map.draw(loan_map_data_table, options);\n\t\t}\n\t}\n\n\tfunction drawPieChart(chart_name, width) {\n\t\tif (distribution_data[chart_name] && distribution_charts[chart_name]) {\n\t\t\tvar options = {\n\t\t\t\theight: 225,\n\t\t\t\twidth: width,\n\t\t\t\tpieSliceText: 'none',\n\t\t\t\tcolors: ['#4faf4e', '#0D8EBB', '#5141A5', '#d74937', '#F8E71C', '#247037', '#D2F0F8', '#A54195', '#3200B2', '#FF030E', '#FF7E03', '#A9FFBF', '#B2A500', '#B25C00', '#FFAA50', '#F90AFF', '#aee15c', '#FF4F57', '#A3A6FF', '#FFD803'],\n\t\t\t\tchartArea: {\n\t\t\t\t\tleft: '5%',\n\t\t\t\t\ttop: '5%',\n\t\t\t\t\twidth: '90%',\n\t\t\t\t\theight: '90%'\n\t\t\t\t},\n\t\t\t\tlegend: {\n\t\t\t\t\talignment: 'center'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// disable map hover on iOS Safari because it's buggy. see RP-63 & RP-92\n\t\t\tif (browser.ios && browser.safari) {\n\t\t\t\toptions.tooltip = {\n\t\t\t\t\ttrigger: 'selection'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// make arrows bigger on touch devices so that they are easier to tap, see RP-91\n\t\t\tif (browser.mobile || browser.tablet) {\n\t\t\t\toptions.legend.textStyle = {\n\t\t\t\t\tfontSize: 16\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdistribution_charts[chart_name].draw(distribution_data[chart_name], options);\n\t\t}\n\t}\n\n\tfunction initDistributionGraphs(public_id) {\n\t\t$.getJSON(wwwApp.conf.get('rootHttp') + '/portfolio/distribution-graph-data?type=lender&permanent_name=' + public_id).done(function (data) {\n\t\t\tgoogle_loader.done(function () {\n\t\t\t\tvar $sections = $('.distribution-charts section');\n\n\t\t\t\tif (!data || data.success === false) {\n\t\t\t\t\t$sections.html('Error loading chart data.');\n\t\t\t\t} else {\n\t\t\t\t\t$sections.each(function () {\n\t\t\t\t\t\tvar $section = $(this);\n\t\t\t\t\t\tvar $chart = $section.find('.pie-chart');\n\t\t\t\t\t\tvar name = $section.attr('id').replace('-chart', '');\n\n\t\t\t\t\t\tdistribution_data[name] = google.visualization.arrayToDataTable(data[name + 'Chart'], true);\n\t\t\t\t\t\tdistribution_charts[name] = new google.visualization.PieChart($chart[0]);\n\n\t\t\t\t\t\tsetupDistributionChart($section, $chart, name);\n\t\t\t\t\t\tsetupDistributionTable($section, data[name + 'Chart'], data[name + 'Urls']);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}).fail(function () {\n\t\t\tvar $sections = $('.distribution-charts section');\n\n\t\t\tif ($sections.length) {\n\t\t\t\t$sections.html('Error loading chart data.');\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction initLoanCountGraph() {\n\t\t$.getJSON(wwwApp.ajaxUrl('getGraphData'), { graphName: 'user_loan_count' }).done(function (data) {\n\t\t\tgoogle_loader.done(function () {\n\t\t\t\tif (data.graphData) {\n\t\t\t\t\tvar graphData = _.map(data.graphData, function (datum) {\n\t\t\t\t\t\treturn [new Date(parseInt(datum[0])), datum[1]];\n\t\t\t\t\t});\n\n\t\t\t\t\tvar graphLabels = [[{ label: 'Date', type: 'datetime' }, { label: 'Loan', type: 'number' }]];\n\n\t\t\t\t\tgraphData = graphLabels.concat(graphData);\n\t\t\t\t\tloan_count_data_table = google.visualization.arrayToDataTable(graphData);\n\n\t\t\t\t\t$('.loan-count-stat a').click(function (e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\topenLoanCountGraphLightbox();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction initLoanViewToggle() {\n\t\tvar $loan_grid = $('.loan-grid'),\n\t\t $loan_map = $('.map-pane'),\n\t\t $geo_chart = $('.geo-chart');\n\n\t\t$('.recent-loans .icon-toggle').on('change', function (e) {\n\t\t\tif (e.target.value === 'map') {\n\t\t\t\t$loan_grid.hide();\n\t\t\t\t$loan_map.show();\n\t\t\t\tdrawMap($geo_chart.width());\n\t\t\t} else {\n\t\t\t\t$loan_grid.show();\n\t\t\t\t$loan_map.hide();\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction initRecentLoanMap(public_id) {\n\t\t$.getJSON(wwwApp.conf.get('rootHttp') + 'portfolio/requestLoanMapJson?lender=' + public_id).done(function (data) {\n\t\t\tgoogle_loader.done(function () {\n\t\t\t\tvar $container = $('.geo-chart')[0];\n\n\t\t\t\tif (data && $container) {\n\t\t\t\t\tloan_map = new google.visualization.GeoChart($container);\n\n\t\t\t\t\t_.find(data.rows, function (obj) {\n\t\t\t\t\t\tif (obj.p.iso_code === 'QS') {\n\t\t\t\t\t\t\tvar countryCode = 'SS';\n\t\t\t\t\t\t\tobj.p.iso_code = countryCode;\n\t\t\t\t\t\t\tobj.c[0].v = countryCode;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tloan_map_data_table = new google.visualization.DataTable(data);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction initResizeHandler() {\n\t\tvar $geo_chart = $('.geo_chart');\n\n\t\t$(window).on('resize', _.throttle(function () {\n\t\t\tvar $active = $('.distribution-charts .active');\n\n\t\t\tif ($active.length) {\n\t\t\t\tdrawPieChart($active.attr('id').replace('-chart', ''), $active.find('.pie-chart').width());\n\t\t\t}\n\n\t\t\tif ($geo_chart.length) {\n\t\t\t\tdrawMap($geo_chart.width());\n\t\t\t}\n\n\t\t\tif ($('.lightbox-content .loan-count-graph div').length) {\n\t\t\t\tdrawLoanCountGraph();\n\t\t\t}\n\t\t}, 200));\n\t}\n\n\tfunction loadGoogleCharts() {\n\t\tvar deferred = new $.Deferred();\n\n\t\t$script.ready('google-charts', function () {\n\t\t\tif (typeof google != 'undefined') {\n\t\t\t\tgoogle.charts.load('45', { packages: ['corechart', 'geochart'] });\n\t\t\t\tgoogle.charts.setOnLoadCallback(function () {\n\t\t\t\t\tdeferred.resolve();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdeferred.reject();\n\t\t\t}\n\t\t});\n\n\t\treturn deferred.promise();\n\t}\n\n\tfunction openLoanCountGraphLightbox() {\n\t\t$(graph_lightbox_template.render()).foundation('reveal', 'open').on('opened.fndtn.reveal', function () {\n\t\t\tdrawLoanCountGraph();\n\t\t});\n\t}\n\n\tfunction setupDistributionChart($section, $chart, name) {\n\t\t// draw charts when their tab is selected\n\t\t$section.on('toggled', function () {\n\t\t\tdrawPieChart(name, $chart.width());\n\t\t});\n\n\t\t// draw the currently active chart\n\t\tif ($section.hasClass('active')) {\n\t\t\tdrawPieChart(name, $chart.width());\n\t\t}\n\t}\n\n\tfunction setupDistributionTable($section, data, urls) {\n\t\tvar rows = [];\n\t\tvar more_rows = [];\n\t\tvar row_data,\n\t\t i,\n\t\t len = data.length;\n\t\tvar total_loans = _.reduce(data, function (total, row) {\n\t\t\treturn total + row[1];\n\t\t}, 0);\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\trow_data = {\n\t\t\t\tlabel: data[i][0],\n\t\t\t\tpercent: numeral(data[i][1] / total_loans).format('0.00%'),\n\t\t\t\turl: urls ? urls[data[i][0]] : false\n\t\t\t};\n\n\t\t\tif (i < 10) {\n\t\t\t\trows.push(row_data);\n\t\t\t} else {\n\t\t\t\tmore_rows.push(row_data);\n\t\t\t}\n\t\t}\n\n\t\t// add the table\n\t\t$section.append(table_template.render({\n\t\t\t'distribution-rows': rows,\n\t\t\t'show_more': !!more_rows.length,\n\t\t\t'number': more_rows.length\n\t\t}, {\n\t\t\t'01-molecules/40-portfolio/04-distribution-table-row': table_row_template\n\t\t}));\n\n\t\t// setup show more link\n\t\t$section.find('.show-more-link').click(function (event) {\n\t\t\tevent.preventDefault();\n\t\t\t$(this).css('display', 'none');\n\t\t\t$section.find('table').append(_.reduce(more_rows, function (row_string, row) {\n\t\t\t\treturn row_string + table_row_template.render(row);\n\t\t\t}, ''));\n\t\t});\n\t}\n\n\treturn {\n\t\tinit: function init(data) {\n\t\t\tCTASubView.init();\n\n\t\t\tgoogle_loader = loadGoogleCharts();\n\n\t\t\tif (data.has_loans) {\n\t\t\t\tinitLoanCountGraph();\n\t\t\t\tinitLoanViewToggle();\n\t\t\t\tinitRecentLoanMap(data.public_id);\n\t\t\t\tinitDistributionGraphs(data.public_id);\n\t\t\t\tinitResizeHandler();\n\t\t\t}\n\n\t\t\tif (data.missing_inactivity_settings) {\n\t\t\t\tdisplayInactivitySettingsLightbox();\n\t\t\t}\n\n\t\t\tconfirmLoginSuccess();\n\t\t}\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 542 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $ = __webpack_require__(0);\nvar autoCorrecter = __webpack_require__(578);\n\nmodule.exports = {\n\tinit: function init() {\n\t\tautoCorrecter.usd($('.amount-to-withdraw-field input'));\n\t}\n};\n\n/***/ }),\n/* 543 */,\n/* 544 */,\n/* 545 */,\n/* 546 */\n/***/ (function(module, exports) {\n\n//! moment.js\n//! version : 2.17.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return od.apply(null,arguments)}\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction b(a){od=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){\n// IE8 will treat undefined and null as object if it wasn't for\n// input != null\nreturn null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)\n// even if its not own property I'd still call it non-empty\nreturn!1;return!0}function f(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function g(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function h(a,b){var c,d=[];for(c=0;c0)for(c in rd)d=rd[c],e=b[d],p(e)||(a[d]=e);return a}\n// Moment prototype object\nfunction r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),\n// Prevent infinite loop in case updateOffset creates new moment\n// objects.\nsd===!1&&(sd=!0,a.updateOffset(this),sd=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a<0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}\n// compare two arrays, return the number of differences\nfunction v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d0?\"future\":\"past\"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Dd[c]=Dd[c+\"s\"]=Dd[b]=a}function K(a){return\"string\"==typeof a?Dd[a]||Dd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)i(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Ed[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Ed[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}\n// MOMENTS\nfunction R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Id[a]=e),b&&(Id[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Id[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function W(a){var b,c,d=a.match(Fd);for(b=0,c=d.length;b=0&&Gd.test(a);)a=a.replace(Gd,c),Gd.lastIndex=0,d-=1;return a}function Z(a,b,c){$d[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return i($d,a)?$d[a](b._strict,b._locale):new RegExp(_(a))}\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction _(a){return aa(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),f(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));\n//the Date.UTC function remaps years 0-99 to 1900-1999\nreturn a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}\n// start-of-first-week - start-of-year\nfunction ua(a,b,c){var// first-week day -- which january is always in the first week (4 for iso, 1 for other)\nd=7+b-c,\n// first-week day local weekday -- which local weekday is fwd\ne=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}\n//http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}\n// HELPERS\n// LOCALES\nfunction ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}\n// MOMENTS\nfunction Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}\n// HELPERS\nfunction Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:this._weekdays}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=k([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=je.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=je.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=je.call(this._weekdaysParse,g),e!==-1?e:(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:(e=je.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:(e=je.call(this._weekdaysParse,g),e!==-1?e:(e=je.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=je.call(this._minWeekdaysParse,g),e!==-1?e:(e=je.call(this._weekdaysParse,g),e!==-1?e:(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){\n// test the regex\nif(\n// make the regex if we don't have it already\ne=k([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}\n// MOMENTS\nfunction Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;\n// behaves the same as moment#day except\n// as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n// as a setter, sunday should belong to the previous week.\nif(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(i(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(i(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ue),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(i(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(i(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ve),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(i(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(i(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=we),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)\n// make the regex if we don't have it already\nc=k([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(\n// Sorting makes sure if one weekday (or abbr) is a prefix of another it\n// will match the longer piece.\ng.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}\n// FORMATTING\nfunction Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}\n// PARSING\nfunction Ua(a,b){return b._meridiemParse}\n// LOCALES\nfunction Va(a){\n// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n// Using charAt should be more compatible.\nreturn\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction Ya(a){for(var b,c,d,e,f=0;f0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)\n//the next array item is better than a shallower substring of this one\nbreak;b--}f++}return null}function Za(a){var b=null;\n// TODO: Find a better way to register and load all the locales in Node\nif(!Be[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=xe._abbr,require(\"./locale/\"+a),\n// because defineLocale currently also sets the global locale, we\n// want to undo that for lazy loaded locales\n$a(b)}catch(a){}return Be[a]}\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction $a(a,b){var c;\n// moment.duration._locale = moment._locale = data;\nreturn a&&(c=p(b)?bb(a):_a(a,b),c&&(xe=c)),xe._abbr}function _a(a,b){if(null!==b){var c=Ae;if(b.abbr=a,null!=Be[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),c=Be[a]._config;else if(null!=b.parentLocale){if(null==Be[b.parentLocale])return Ce[b.parentLocale]||(Ce[b.parentLocale]=[]),Ce[b.parentLocale].push({name:a,config:b}),null;c=Be[b.parentLocale]._config}\n// backwards compat for now: also set the locale\n// make sure we set the locale AFTER all child locales have been\n// created, so we won't end up with the child locale set.\nreturn Be[a]=new C(B(c,b)),Ce[a]&&Ce[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Be[a]}\n// useful for testing\nreturn delete Be[a],null}function ab(a,b){if(null!=b){var c,d=Ae;\n// MERGE\nnull!=Be[a]&&(d=Be[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Be[a],Be[a]=c,\n// backwards compat for now: also set the locale\n$a(a)}else\n// pass null for config to unupdate, useful for tests\nnull!=Be[a]&&(null!=Be[a].parentLocale?Be[a]=Be[a].parentLocale:null!=Be[a]&&delete Be[a]);return Be[a]}\n// returns locale data\nfunction bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return xe;if(!c(a)){if(\n//short-circuit everything else\nb=Za(a))return b;a=[a]}return Ya(a)}function cb(){return wd(Be)}function db(a){var b,c=a._a;return c&&m(a).overflow===-2&&(b=c[be]<0||c[be]>11?be:c[ce]<1||c[ce]>ea(c[ae],c[be])?ce:c[de]<0||c[de]>24||24===c[de]&&(0!==c[ee]||0!==c[fe]||0!==c[ge])?de:c[ee]<0||c[ee]>59?ee:c[fe]<0||c[fe]>59?fe:c[ge]<0||c[ge]>999?ge:-1,m(a)._overflowDayOfYear&&(bce)&&(b=ce),m(a)._overflowWeeks&&b===-1&&(b=he),m(a)._overflowWeekday&&b===-1&&(b=ie),m(a).overflow=b),a}\n// date from iso format\nfunction eb(a){var b,c,d,e,f,g,h=a._i,i=De.exec(h)||Ee.exec(h);if(i){for(m(a).iso=!0,b=0,c=Ge.length;bpa(e)&&(m(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[be]=c.getUTCMonth(),a._a[ce]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];\n// Zero out whatever was not defaulted, including time\nfor(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];\n// Check for 24:00:00.000\n24===a._a[de]&&0===a._a[ee]&&0===a._a[fe]&&0===a._a[ge]&&(a._nextDay=!0,a._a[de]=0),a._d=(a._useUTC?ta:sa).apply(null,f),\n// Apply timezone offset from input. The actual utcOffset can be changed\n// with parseZone.\nnull!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[de]=24)}}function jb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,\n// TODO: We need to take the current isoWeekYear, but that depends on\n// how we interpret now (local, utc, fixed offset). So create\n// a now version of current config (take local/utc/offset flags, and\n// create now).\nc=gb(b.GG,a._a[ae],wa(sb(),1,4).year),d=gb(b.W,1),e=gb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(sb(),f,g);c=gb(b.gg,a._a[ae],j.year),\n// Default to current week.\nd=gb(b.w,j.week),null!=b.d?(\n// weekday -- low day numbers are considered next week\ne=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(\n// local weekday -- counting starts from begining of week\ne=b.e+f,(b.e<0||b.e>6)&&(i=!0)):\n// default to begining of week\ne=f}d<1||d>xa(c,f,g)?m(a)._overflowWeeks=!0:null!=i?m(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ae]=h.year,a._dayOfYear=h.dayOfYear)}\n// date from string and format string\nfunction kb(b){\n// TODO: Move this to another part of the creation flow to prevent circular deps\nif(b._f===a.ISO_8601)return void eb(b);b._a=[],m(b).empty=!0;\n// This array is used to make a Date, either with `new Date` or `Date.UTC`\nvar c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Fd)||[],c=0;c0&&m(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),\n// don't parse if it's not a known token\nId[f]?(d?m(b).empty=!1:m(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&m(b).unusedTokens.push(f);\n// add remaining unparsed input length to the string\nm(b).charsLeftOver=i-j,h.length>0&&m(b).unusedInput.push(h),\n// clear _12h flag if hour is <= 12\nb._a[de]<=12&&m(b).bigHour===!0&&b._a[de]>0&&(m(b).bigHour=void 0),m(b).parsedDateParts=b._a.slice(0),m(b).meridiem=b._meridiem,\n// handle meridiem\nb._a[de]=lb(b._locale,b._a[de],b._meridiem),ib(b),db(b)}function lb(a,b,c){var d;\n// Fallback\nreturn null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}\n// date from string and array of format strings\nfunction mb(a){var b,c,d,e,f;if(0===a._f.length)return m(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction Db(b,c){var d,e=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if(\"string\"==typeof b){if(b=Ab(Xd,b),null===b)return this}else Math.abs(b)<16&&(b=60*b);return!this._isUTC&&c&&(d=Cb(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,\"m\"),e!==b&&(!c||this._changeInProgress?Tb(this,Ob(b-e,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?e:Cb(this)}function Eb(a,b){return null!=a?(\"string\"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Fb(a){return this.utcOffset(0,a)}function Gb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Cb(this),\"m\")),this}function Hb(){if(null!=this._tzm)this.utcOffset(this._tzm);else if(\"string\"==typeof this._i){var a=Ab(Wd,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Ib(a){return!!this.isValid()&&(a=a?sb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Jb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Kb(){if(!p(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=pb(a),a._a){var b=a._isUTC?k(a._a):sb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Lb(){return!!this.isValid()&&!this._isUTC}function Mb(){return!!this.isValid()&&this._isUTC}function Nb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ob(a,b){var c,d,e,g=a,\n// matching against regexp is expensive, do it on demand\nh=null;// checks for null or undefined\nreturn xb(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:f(a)?(g={},b?g[b]=a:g.milliseconds=a):(h=Ne.exec(a))?(c=\"-\"===h[1]?-1:1,g={y:0,d:u(h[ce])*c,h:u(h[de])*c,m:u(h[ee])*c,s:u(h[fe])*c,ms:u(yb(1e3*h[ge]))*c}):(h=Oe.exec(a))?(c=\"-\"===h[1]?-1:1,g={y:Pb(h[2],c),M:Pb(h[3],c),w:Pb(h[4],c),d:Pb(h[5],c),h:Pb(h[6],c),m:Pb(h[7],c),s:Pb(h[8],c)}):null==g?g={}:\"object\"==typeof g&&(\"from\"in g||\"to\"in g)&&(e=Rb(sb(g.from),sb(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new wb(g),xb(a)&&i(a,\"_locale\")&&(d._locale=a._locale),d}function Pb(a,b){\n// We'd normally use ~~inp for this, but unfortunately it also\n// converts floats to ints.\n// inp may be undefined, so careful calling replace on it.\nvar c=a&&parseFloat(a.replace(\",\",\".\"));\n// apply sign while we're at it\nreturn(isNaN(c)?0:c)*b}function Qb(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Rb(a,b){var c;return a.isValid()&&b.isValid()?(b=Bb(b,a),a.isBefore(b)?c=Qb(a,b):(c=Qb(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}\n// TODO: remove 'name' arg after deprecation is removed\nfunction Sb(a,b){return function(c,d){var e,f;\n//invert the arguments, but complain about it\nreturn null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Ob(c,d),Tb(this,e,a),this}}function Tb(b,c,d,e){var f=c._milliseconds,g=yb(c._days),h=yb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Ub(a,b){var c=a.diff(b,\"days\",!0);return c<-6?\"sameElse\":c<-1?\"lastWeek\":c<0?\"lastDay\":c<1?\"sameDay\":c<2?\"nextDay\":c<7?\"nextWeek\":\"sameElse\"}function Vb(b,c){\n// We want to compare the start of today, vs this.\n// Getting start-of-today depends on whether we're local/utc/offset or not.\nvar d=b||sb(),e=Bb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,sb(d)))}function Wb(){return new r(this)}function Xb(a,b){var c=s(a)?a:sb(a);return!(!this.isValid()||!c.isValid())&&(b=K(p(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()>c.valueOf():c.valueOf()f&&(b=f),Fc.call(this,a,b,c,d,e))}function Fc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}\n// MOMENTS\nfunction Gc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}\n// HELPERS\n// MOMENTS\nfunction Hc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Ic(a,b){b[ge]=u(1e3*(\"0.\"+a))}\n// MOMENTS\nfunction Jc(){return this._isUTC?\"UTC\":\"\"}function Kc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Lc(a){return sb(1e3*a)}function Mc(){return sb.apply(null,arguments).parseZone()}function Nc(a){return a}function Oc(a,b,c,d){var e=bb(),f=k().set(d,b);return e[c](f,a)}function Pc(a,b,c){if(f(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Oc(a,b,c,\"month\");var d,e=[];for(d=0;d<12;d++)e[d]=Oc(a,d,c,\"month\");return e}\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction Qc(a,b,c,d){\"boolean\"==typeof a?(f(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,f(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),g=a?e._week.dow:0;if(null!=c)return Oc(b,(c+g)%7,d,\"day\");var h,i=[];for(h=0;h<7;h++)i[h]=Oc(b,(h+g)%7,d,\"day\");return i}function Rc(a,b){return Pc(a,b,\"months\")}function Sc(a,b){return Pc(a,b,\"monthsShort\")}function Tc(a,b,c){return Qc(a,b,c,\"weekdays\")}function Uc(a,b,c){return Qc(a,b,c,\"weekdaysShort\")}function Vc(a,b,c){return Qc(a,b,c,\"weekdaysMin\")}function Wc(){var a=this._data;return this._milliseconds=Ze(this._milliseconds),this._days=Ze(this._days),this._months=Ze(this._months),a.milliseconds=Ze(a.milliseconds),a.seconds=Ze(a.seconds),a.minutes=Ze(a.minutes),a.hours=Ze(a.hours),a.months=Ze(a.months),a.years=Ze(a.years),this}function Xc(a,b,c,d){var e=Ob(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction Yc(a,b){return Xc(this,a,b,1)}\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction Zc(a,b){return Xc(this,a,b,-1)}function $c(a){return a<0?Math.floor(a):Math.ceil(a)}function _c(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;\n// if we have a mix of positive and negative values, bubble down first\n// check: https://github.com/moment/moment/issues/2166\n// The following code bubbles up values, see the tests for\n// examples of what that means.\n// convert days to months\n// 12 months -> 1 year\nreturn f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*$c(bd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ad(g)),h+=e,g-=$c(bd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ad(a){\n// 400 years have 146097 days (taking into account leap year rules)\n// 400 years have 12 months === 4800\nreturn 4800*a/146097}function bd(a){\n// the reverse of daysToMonths\nreturn 146097*a/4800}function cd(a){var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+ad(b),\"month\"===a?c:c/12;switch(\n// handle milliseconds separately because of floating point math errors (issue #1867)\nb=this._days+Math.round(bd(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;\n// Math.floor prevents floating point math errors here\ncase\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}\n// TODO: Use this.as('ms')?\nfunction dd(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12)}function ed(a){return function(){return this.as(a)}}function fd(a){return a=K(a),this[a+\"s\"]()}function gd(a){return function(){return this._data[a]}}function hd(){return t(this.days()/7)}\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction id(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function jd(a,b,c){var d=Ob(a).abs(),e=of(d.as(\"s\")),f=of(d.as(\"m\")),g=of(d.as(\"h\")),h=of(d.as(\"d\")),i=of(d.as(\"M\")),j=of(d.as(\"y\")),k=e0,k[4]=c,id.apply(null,k)}\n// This function allows you to set the rounding function for relative time strings\nfunction kd(a){return void 0===a?of:\"function\"==typeof a&&(of=a,!0)}\n// This function allows you to set a threshold for relative time strings\nfunction ld(a,b){return void 0!==pf[a]&&(void 0===b?pf[a]:(pf[a]=b,!0))}function md(a){var b=this.localeData(),c=jd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function nd(){\n// for ISO strings we do not use the normal bubbling rules:\n// * milliseconds bubble up until they become hours\n// * days do not bubble at all\n// * months bubble up until they become years\n// This is because there is no context-free conversion between hours and days\n// (think of clock changes)\n// and also not between days and months (28-31 days per month)\nvar a,b,c,d=qf(this._milliseconds)/1e3,e=qf(this._days),f=qf(this._months);\n// 3600 seconds -> 60 minutes -> 1 hour\na=t(d/60),b=t(a/60),d%=60,a%=60,\n// 12 months -> 1 year\nc=t(f/12),f%=12;\n// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\nvar g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}var od,pd;pd=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d68?1900:2e3)};\n// MOMENTS\nvar pe=O(\"FullYear\",!0);\n// FORMATTING\nU(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),\n// ALIASES\nJ(\"week\",\"w\"),J(\"isoWeek\",\"W\"),\n// PRIORITIES\nM(\"week\",5),M(\"isoWeek\",5),\n// PARSING\nZ(\"w\",Od),Z(\"ww\",Od,Kd),Z(\"W\",Od),Z(\"WW\",Od,Kd),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var qe={dow:0,// Sunday is the first day of the week.\ndoy:6};\n// FORMATTING\nU(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),\n// ALIASES\nJ(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),\n// PRIORITY\nM(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),\n// PARSING\nZ(\"d\",Od),Z(\"e\",Od),Z(\"E\",Od),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);\n// if we didn't get a weekday name, mark the date as invalid\nnull!=e?b.d=e:m(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});\n// LOCALES\nvar re=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),se=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),te=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ue=Zd,ve=Zd,we=Zd;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),\n// ALIASES\nJ(\"hour\",\"h\"),\n// PRIORITY\nM(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Od),Z(\"h\",Od),Z(\"HH\",Od,Kd),Z(\"hh\",Od,Kd),Z(\"hmm\",Pd),Z(\"hmmss\",Qd),Z(\"Hmm\",Pd),Z(\"Hmmss\",Qd),ba([\"H\",\"HH\"],de),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[de]=u(a),m(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d)),m(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d,2)),b[fe]=u(a.substr(e)),m(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d,2)),b[fe]=u(a.substr(e))});var xe,ye=/[ap]\\.?m?\\.?/i,ze=O(\"Hours\",!0),Ae={calendar:xd,longDateFormat:yd,invalidDate:zd,ordinal:Ad,ordinalParse:Bd,relativeTime:Cd,months:le,monthsShort:me,week:qe,weekdays:re,weekdaysMin:te,weekdaysShort:se,meridiemParse:ye},Be={},Ce={},De=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Ee=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Fe=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ge=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],\n// YYYYMM is NOT allowed by the standard\n[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],He=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Ie=/^\\/?Date\\((\\-?\\d+)/i;a.createFromInputFallback=x(\"value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),\n// constant that refers to the ISO standard\na.ISO_8601=function(){};var Je=x(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=sb.apply(null,arguments);return this.isValid()&&a.isValid()?athis?this:a:o()}),Le=function(){return Date.now?Date.now():+new Date};zb(\"Z\",\":\"),zb(\"ZZ\",\"\"),\n// PARSING\nZ(\"Z\",Xd),Z(\"ZZ\",Xd),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Ab(Xd,a)});\n// HELPERS\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar Me=/([\\+\\-]|\\d\\d)/gi;\n// HOOKS\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\na.updateOffset=function(){};\n// ASP.NET json date format regex\nvar Ne=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Oe=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ob.fn=wb.prototype;var Pe=Sb(1,\"add\"),Qe=Sb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Re=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});\n// FORMATTING\nU(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),zc(\"gggg\",\"weekYear\"),zc(\"ggggg\",\"weekYear\"),zc(\"GGGG\",\"isoWeekYear\"),zc(\"GGGGG\",\"isoWeekYear\"),\n// ALIASES\nJ(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),\n// PRIORITY\nM(\"weekYear\",1),M(\"isoWeekYear\",1),\n// PARSING\nZ(\"G\",Vd),Z(\"g\",Vd),Z(\"GG\",Od,Kd),Z(\"gg\",Od,Kd),Z(\"GGGG\",Sd,Md),Z(\"gggg\",Sd,Md),Z(\"GGGGG\",Td,Nd),Z(\"ggggg\",Td,Nd),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),\n// FORMATTING\nU(\"Q\",0,\"Qo\",\"quarter\"),\n// ALIASES\nJ(\"quarter\",\"Q\"),\n// PRIORITY\nM(\"quarter\",7),\n// PARSING\nZ(\"Q\",Jd),ba(\"Q\",function(a,b){b[be]=3*(u(a)-1)}),\n// FORMATTING\nU(\"D\",[\"DD\",2],\"Do\",\"date\"),\n// ALIASES\nJ(\"date\",\"D\"),\n// PRIOROITY\nM(\"date\",9),\n// PARSING\nZ(\"D\",Od),Z(\"DD\",Od,Kd),Z(\"Do\",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),ba([\"D\",\"DD\"],ce),ba(\"Do\",function(a,b){b[ce]=u(a.match(Od)[0],10)});\n// MOMENTS\nvar Se=O(\"Date\",!0);\n// FORMATTING\nU(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),\n// ALIASES\nJ(\"dayOfYear\",\"DDD\"),\n// PRIORITY\nM(\"dayOfYear\",4),\n// PARSING\nZ(\"DDD\",Rd),Z(\"DDDD\",Ld),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),\n// FORMATTING\nU(\"m\",[\"mm\",2],0,\"minute\"),\n// ALIASES\nJ(\"minute\",\"m\"),\n// PRIORITY\nM(\"minute\",14),\n// PARSING\nZ(\"m\",Od),Z(\"mm\",Od,Kd),ba([\"m\",\"mm\"],ee);\n// MOMENTS\nvar Te=O(\"Minutes\",!1);\n// FORMATTING\nU(\"s\",[\"ss\",2],0,\"second\"),\n// ALIASES\nJ(\"second\",\"s\"),\n// PRIORITY\nM(\"second\",15),\n// PARSING\nZ(\"s\",Od),Z(\"ss\",Od,Kd),ba([\"s\",\"ss\"],fe);\n// MOMENTS\nvar Ue=O(\"Seconds\",!1);\n// FORMATTING\nU(\"S\",0,0,function(){return~~(this.millisecond()/100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),\n// ALIASES\nJ(\"millisecond\",\"ms\"),\n// PRIORITY\nM(\"millisecond\",16),\n// PARSING\nZ(\"S\",Rd,Jd),Z(\"SS\",Rd,Kd),Z(\"SSS\",Rd,Ld);var Ve;for(Ve=\"SSSS\";Ve.length<=9;Ve+=\"S\")Z(Ve,Ud);for(Ve=\"S\";Ve.length<=9;Ve+=\"S\")ba(Ve,Ic);\n// MOMENTS\nvar We=O(\"Milliseconds\",!1);\n// FORMATTING\nU(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var Xe=r.prototype;Xe.add=Pe,Xe.calendar=Vb,Xe.clone=Wb,Xe.diff=bc,Xe.endOf=oc,Xe.format=gc,Xe.from=hc,Xe.fromNow=ic,Xe.to=jc,Xe.toNow=kc,Xe.get=R,Xe.invalidAt=xc,Xe.isAfter=Xb,Xe.isBefore=Yb,Xe.isBetween=Zb,Xe.isSame=$b,Xe.isSameOrAfter=_b,Xe.isSameOrBefore=ac,Xe.isValid=vc,Xe.lang=Re,Xe.locale=lc,Xe.localeData=mc,Xe.max=Ke,Xe.min=Je,Xe.parsingFlags=wc,Xe.set=S,Xe.startOf=nc,Xe.subtract=Qe,Xe.toArray=sc,Xe.toObject=tc,Xe.toDate=rc,Xe.toISOString=ec,Xe.inspect=fc,Xe.toJSON=uc,Xe.toString=dc,Xe.unix=qc,Xe.valueOf=pc,Xe.creationData=yc,\n// Year\nXe.year=pe,Xe.isLeapYear=ra,\n// Week Year\nXe.weekYear=Ac,Xe.isoWeekYear=Bc,\n// Quarter\nXe.quarter=Xe.quarters=Gc,\n// Month\nXe.month=ka,Xe.daysInMonth=la,\n// Week\nXe.week=Xe.weeks=Ba,Xe.isoWeek=Xe.isoWeeks=Ca,Xe.weeksInYear=Dc,Xe.isoWeeksInYear=Cc,\n// Day\nXe.date=Se,Xe.day=Xe.days=Ka,Xe.weekday=La,Xe.isoWeekday=Ma,Xe.dayOfYear=Hc,\n// Hour\nXe.hour=Xe.hours=ze,\n// Minute\nXe.minute=Xe.minutes=Te,\n// Second\nXe.second=Xe.seconds=Ue,\n// Millisecond\nXe.millisecond=Xe.milliseconds=We,\n// Offset\nXe.utcOffset=Db,Xe.utc=Fb,Xe.local=Gb,Xe.parseZone=Hb,Xe.hasAlignedHourOffset=Ib,Xe.isDST=Jb,Xe.isLocal=Lb,Xe.isUtcOffset=Mb,Xe.isUtc=Nb,Xe.isUTC=Nb,\n// Timezone\nXe.zoneAbbr=Jc,Xe.zoneName=Kc,\n// Deprecations\nXe.dates=x(\"dates accessor is deprecated. Use date instead.\",Se),Xe.months=x(\"months accessor is deprecated. Use month instead\",ka),Xe.years=x(\"years accessor is deprecated. Use year instead\",pe),Xe.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",Eb),Xe.isDSTShifted=x(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",Kb);var Ye=C.prototype;Ye.calendar=D,Ye.longDateFormat=E,Ye.invalidDate=F,Ye.ordinal=G,Ye.preparse=Nc,Ye.postformat=Nc,Ye.relativeTime=H,Ye.pastFuture=I,Ye.set=A,\n// Month\nYe.months=fa,Ye.monthsShort=ga,Ye.monthsParse=ia,Ye.monthsRegex=na,Ye.monthsShortRegex=ma,\n// Week\nYe.week=ya,Ye.firstDayOfYear=Aa,Ye.firstDayOfWeek=za,\n// Day of Week\nYe.weekdays=Fa,Ye.weekdaysMin=Ha,Ye.weekdaysShort=Ga,Ye.weekdaysParse=Ja,Ye.weekdaysRegex=Na,Ye.weekdaysShortRegex=Oa,Ye.weekdaysMinRegex=Pa,\n// Hours\nYe.isPM=Va,Ye.meridiem=Wa,$a(\"en\",{ordinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),\n// Side effect imports\na.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var Ze=Math.abs,$e=ed(\"ms\"),_e=ed(\"s\"),af=ed(\"m\"),bf=ed(\"h\"),cf=ed(\"d\"),df=ed(\"w\"),ef=ed(\"M\"),ff=ed(\"y\"),gf=gd(\"milliseconds\"),hf=gd(\"seconds\"),jf=gd(\"minutes\"),kf=gd(\"hours\"),lf=gd(\"days\"),mf=gd(\"months\"),nf=gd(\"years\"),of=Math.round,pf={s:45,// seconds to minute\nm:45,// minutes to hour\nh:22,// hours to day\nd:26,// days to month\nM:11},qf=Math.abs,rf=wb.prototype;\n// Deprecations\n// Side effect imports\n// FORMATTING\n// PARSING\n// Side effect imports\nreturn rf.abs=Wc,rf.add=Yc,rf.subtract=Zc,rf.as=cd,rf.asMilliseconds=$e,rf.asSeconds=_e,rf.asMinutes=af,rf.asHours=bf,rf.asDays=cf,rf.asWeeks=df,rf.asMonths=ef,rf.asYears=ff,rf.valueOf=dd,rf._bubble=_c,rf.get=fd,rf.milliseconds=gf,rf.seconds=hf,rf.minutes=jf,rf.hours=kf,rf.days=lf,rf.weeks=hd,rf.months=mf,rf.years=nf,rf.humanize=md,rf.toISOString=nd,rf.toString=nd,rf.toJSON=nd,rf.locale=lc,rf.localeData=mc,rf.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",nd),rf.lang=Re,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Vd),Z(\"X\",Yd),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),a.version=\"2.17.1\",b(sb),a.fn=Xe,a.min=ub,a.max=vb,a.now=Le,a.utc=k,a.unix=Lc,a.months=Rc,a.isDate=g,a.locale=$a,a.invalid=o,a.duration=Ob,a.isMoment=s,a.weekdays=Tc,a.parseZone=Mc,a.localeData=bb,a.isDuration=xb,a.monthsShort=Sc,a.weekdaysMin=Vc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Uc,a.normalizeUnits=K,a.relativeTimeRounding=kd,a.relativeTimeThreshold=ld,a.calendarFormat=Ub,a.prototype=Xe,a});\n\n/***/ }),\n/* 547 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.ItemView.extend({\n\t\tevents: {\n\t\t\tclick: '_handleClick'\n\t\t},\n\n\t\t_handleClick: function _handleClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.trigger('clicked');\n\t\t},\n\n\t\tdisable: function disable() {\n\t\t\tthis.$el.addClass('disabled');\n\t\t},\n\n\t\tenable: function enable() {\n\t\t\tthis.$el.removeClass('disabled');\n\t\t},\n\n\t\thide: function hide() {\n\t\t\tthis.$el.addClass('hidden');\n\t\t},\n\n\t\tshow: function show() {\n\t\t\tthis.$el.removeClass('hidden');\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 548 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"
\");return t.fl(); },partials: {}, subs: { }}, \"
\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\t
\\n\\t
\\n
\", H);return T; }();\n\n/***/ }),\n/* 549 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar undef;\n\tvar _ = __webpack_require__(11);\n\n\t/**\n * Will only set true. False equivalent to not-set.\n *\n * @param value\n * @returns {true|undefined}\n */\n\tfunction acceptance(value) {\n\t\tif (value !== null) {\n\t\t\tif (value === true || value === 'true' || value > 0) {\n\t\t\t\tvalue = true;\n\t\t\t} else {\n\t\t\t\tvalue = undef;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n * Coerce value to an array. If value is not already an array, will\n * return [] for null/undefined/'', and [value] otherwise\n *\n * @param value\n * @returns {array}\n */\n\tfunction array(value) {\n\t\tif (!_.isArray(value)) {\n\t\t\tif (value === null || value === undef || value === '') {\n\t\t\t\tvalue = [];\n\t\t\t} else {\n\t\t\t\tvalue = [value];\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n * Coerce value to true or false\n *\n * @param value\n * @returns {boolean}\n */\n\tfunction bool(value) {\n\t\tif (value !== null) {\n\t\t\tvalue = value === true || value === 'true' || value > 0;\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n * Coerces the value to a number. If the value is a non-number like \"abc\" or null,\n * will return 0 if the value is falsey and 1 if the value is truthy\n *\n * @param value\n * @returns {number}\n */\n\tfunction number(value) {\n\t\tif (!_.isNumber(value) || _.isNaN(value)) {\n\t\t\tvar old = value;\n\t\t\tvalue = parseFloat(value);\n\n\t\t\tif (_.isNaN(value)) {\n\t\t\t\tvalue = old ? 1 : 0;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n * Coerces a value to an array of numbers\n *\n * @param value\n * @returns {[number]}\n */\n\tfunction number_array(value) {\n\t\treturn _.map(array(value), function (val) {\n\t\t\treturn number(val);\n\t\t});\n\t}\n\n\t/**\n * Coerces a string like \"0,8\" to an array like [0,8]\n *\n * @param value\n * @returns {[number]}\n */\n\tfunction number_range(value) {\n\t\treturn number_array(range(value));\n\t}\n\n\t/**\n * Coerces a string like \"a,z\" to an array like [\"a\", \"z\"]\n *\n * @param value\n * @returns {[string]}\n */\n\tfunction range(value) {\n\t\tif (_.isString(value)) {\n\t\t\tvalue = _.map(value.split(','), function (val) {\n\t\t\t\treturn val.trim();\n\t\t\t});\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n * Returns the value as a string\n *\n * @param value\n * @returns {string}\n */\n\tfunction string(value) {\n\t\treturn value + '';\n\t}\n\n\t/**\n * Coerces a string like \"a,z|b,y\" to an array like [\"a,z\", \"b,y\"]\n *\n * @param value\n * @returns {[string]}\n */\n\tfunction vertical_line_range(value) {\n\t\tif (_.isString(value)) {\n\t\t\tvalue = _.map(value.split('|'), function (val) {\n\t\t\t\treturn val.trim();\n\t\t\t});\n\t\t}\n\n\t\treturn value;\n\t}\n\n\treturn {\n\t\tacceptance: acceptance,\n\t\tarray: array,\n\t\tbool: bool,\n\t\tnumber: number,\n\t\tnumber_array: number_array,\n\t\tnumber_range: number_range,\n\t\trange: range,\n\t\tstring: string,\n\t\tvertical_line_range: vertical_line_range\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 550 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t coercions = __webpack_require__(549),\n\t Backbone = __webpack_require__(20);\n\n\treturn Backbone.Model.extend({\n\n\t\t/**\n *\n * @param name\n * @param value\n * @returns {*}\n */\n\t\tcoerce: function coerce(name, value) {\n\t\t\tvar type = this.filterTypes[name];\n\t\t\tvar coercion = coercions[type];\n\t\t\treturn type && coercion ? coercion(value) : value;\n\t\t}\n\n\t\t/**\n *\n * @returns {object}\n */\n\t\t, getCriteria: function getCriteria() {\n\t\t\treturn this.omit(this.filterNames);\n\t\t}\n\n\t\t/**\n *\n * @returns {object}\n */\n\t\t, getFilters: function getFilters() {\n\t\t\treturn this.pick(this.filterNames);\n\t\t}\n\n\t\t/**\n *\n * @param data\n * @returns {string}\n */\n\t\t, parameterize: function parameterize(data) {\n\t\t\t// Manually encode some characters which jQuery is not doing right\n\t\t\tdata = $.param(data);\n\n\t\t\tdata = data.replace(/\\(/g, '%28');\n\t\t\tdata = data.replace(/\\)/g, '%29');\n\t\t\tdata = data.replace(/\\+/g, '%20');\n\t\t\treturn data;\n\t\t}\n\n\t\t/**\n * Note, we don't actually set any attributes on the model when parsing the sirenAction.\n * Instead, we set the `filterNames` and the `filterTypes`.\n *\n * @param searchAction\n * @returns {*}\n */\n\t\t, parse: function parse(searchAction) {\n\t\t\tvar filterTypes = {},\n\t\t\t filterNames = [];\n\n\t\t\t_.each(searchAction.fields, function (field) {\n\t\t\t\tvar name;\n\n\t\t\t\tif (field.name != 'q') {\n\t\t\t\t\tif (field.name.indexOf('q.') === 0) {\n\t\t\t\t\t\tname = field.name.slice(2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = field.name;\n\t\t\t\t\t}\n\t\t\t\t\tfilterNames.push(name);\n\n\t\t\t\t\tif (field.type) {\n\t\t\t\t\t\tfilterTypes[name] = field.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\tthis.filterNames = filterNames;\n\t\t\tthis.filterTypes = filterTypes;\n\t\t\treturn {};\n\t\t}\n\n\t\t/**\n *\n * @param url\n * @returns {*}\n */\n\t\t, resolve: function resolve(url) {\n\t\t\tvar self = this;\n\n\t\t\tthis.siren.abortLastRequest();\n\n\t\t\treturn this.siren.resolve(url).done(function (collection) {\n\t\t\t\tself.meta.set(collection._meta);\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @returns {$.Deferred}\n */\n\t\t, resolveSearch: function resolveSearch() {\n\t\t\treturn this.resolve(this.href + this.toQueryString());\n\t\t}\n\n\t\t/**\n *\n * @returns {Object|undefined}\n */\n\t\t, getCoercedFilters: function getCoercedFilters() {\n\t\t\tvar filters = this.getFilters(),\n\t\t\t coerced,\n\t\t\t self = this;\n\n\t\t\tif (!_.isEmpty(filters)) {\n\t\t\t\tcoerced = {};\n\t\t\t\t_.each(filters, function (value, name) {\n\t\t\t\t\tcoerced[name] = self.coerce(name, value);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn coerced;\n\t\t}\n\n\t\t/**\n *\n * @returns {string}\n */\n\t\t, toQueryString: function toQueryString() {\n\t\t\tvar query = '';\n\n\t\t\tif (!this.isEmpty()) {\n\t\t\t\tvar filters = this.getCoercedFilters();\n\t\t\t\tvar criteria = this.getCriteria();\n\n\t\t\t\tif (filters) {\n\t\t\t\t\tcriteria.q = 'j:' + JSON.stringify(filters);\n\t\t\t\t}\n\n\t\t\t\tquery = '?' + this.parameterize(criteria);\n\t\t\t}\n\n\t\t\treturn query;\n\t\t}\n\n\t\t/**\n * http://backbonejs.org/#Model-constructor\n *\n * @param {Object} searchAction\n * @param {Object} options\n */\n\t\t, constructor: function constructor(searchAction, options) {\n\t\t\toptions = options || {};\n\t\t\toptions.parse = true; // Force \"parse\" to be called on instantiation: http://stackoverflow.com/questions/11068989/backbone-js-using-parse-without-calling-fetch/14950519#14950519\n\n\t\t\tthis.siren = options.siren;\n\t\t\t$.extend(this, searchAction);\n\n\t\t\tthis.meta = new Backbone.Model();\n\n\t\t\tBackbone.Model.call(this, searchAction, options);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 551 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t numeral = __webpack_require__(73) // THIS IS AN AWESOME LIBRARY. USE IT.\n\t;\n\n\t// used by decodeEntities. making here so that it's only made once.\n\tvar element = document.createElement('div');\n\n\tfunction decodeEntities(str) {\n\t\tstr += '';\n\n\t\t// strip script/html tags\n\t\tstr = str.replace(/]*>([\\S\\s]*?)<\\/script>/gmi, '');\n\t\tstr = str.replace(/<\\/?\\w(?:[^\"'>]|\"[^\"]*\"|'[^']*')*>/gmi, '');\n\t\telement.innerHTML = str;\n\t\tstr = element.textContent;\n\t\telement.textContent = '';\n\n\t\treturn str;\n\t}\n\n\tfunction escapeHtml(str) {\n\t\tvar map = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'\"': '"',\n\t\t\t\"'\": ''' // jshint ignore:line\n\t\t};\n\n\t\treturn str.replace(/[&<>\"']/g, function (m) {\n\t\t\treturn map[m];\n\t\t});\n\t}\n\n\tfunction formatBcMoney(money, format) {\n\t\tif (_.has(money, 'amount') && _.has(money, 'currency')) {\n\t\t\treturn formatMoney(money.amount, money.currency, format);\n\t\t} else {\n\t\t\treturn '-';\n\t\t}\n\t}\n\n\tfunction formatMoney(amount, currency, format) {\n\t\tformat = format || '($0,0[.]00)';\n\t\tif (currency && currency !== 'USD') {\n\t\t\tformat = format.replace('$', '') + ' ' + currency;\n\t\t}\n\t\treturn numeral(amount).format(format);\n\t}\n\n\t/**\n * Accepts a percentile amount, formats it. ( e.g. for 86%, accepts 86, not .86 ).\n *\n * @param percentAmount\n * @param format\n * @returns {*}\n */\n\tfunction formatPercent(percentAmount, format) {\n\t\tformat = format || '0[.]0%';\n\t\treturn numeral(percentAmount).divide(100).format(format);\n\t}\n\n\t// create a 'safe' htmlified string\n\tfunction htmlify(str) {\n\t\tstr = unhtmlify(str);\n\t\tstr = escapeHtml(str);\n\n\t\t// turn urls into \n\t\tstr = str.replace(/(\\s)(www.[^\\s)<]+)\\b/g, '$1https://$2');\n\t\tstr = str.replace(/(\\b)(https?:\\/\\/([^\\s)<>\"']+))\\b/g, '$1$3');\n\n\t\t// preserve and \n\t\tstr = str.replace(/<[bB]>(.+)<\\/[bB]>/g, '$1');\n\t\tstr = str.replace(/<[iI]>(.+)<\\/[iI]>/g, '$1');\n\n\t\t// turn new lines into
\n\t\tstr = str.replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1
$2');\n\n\t\treturn str;\n\t}\n\n\tfunction stripslashes(str) {\n\t\treturn (str + '').replace(/\\\\(.?)/g, function (s, n1) {\n\t\t\tswitch (n1) {\n\t\t\t\tcase '\\\\':\n\t\t\t\t\treturn '\\\\';\n\t\t\t\tcase '0':\n\t\t\t\t\treturn '\\0';\n\t\t\t\tcase '':\n\t\t\t\t\treturn '';\n\t\t\t\tdefault:\n\t\t\t\t\treturn n1;\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction truncate(myString, maxLength) {\n\t\tif (!myString) {\n\t\t\treturn '';\n\t\t}\n\t\tif (myString.length > maxLength) {\n\t\t\tmyString = myString.substring(0, maxLength - 3) + '...';\n\t\t}\n\t\treturn myString;\n\t}\n\n\t// convert any tags in str to non-html representation\n\tfunction unhtmlify(str) {\n\t\tstr += '';\n\n\t\tstr = stripslashes(str);\n\t\tstr = str.replace('

', '\\n');\n\t\tstr = str.replace('

', '');\n\t\tstr = str.replace('
', '\\n');\n\t\tstr = decodeEntities(str);\n\n\t\treturn str;\n\t}\n\n\treturn {\n\t\tdecodeEntities: decodeEntities,\n\t\tescapeHtml: escapeHtml,\n\t\tformatBcMoney: formatBcMoney,\n\t\tformatMoney: formatMoney,\n\t\tformatPercent: formatPercent,\n\t\thtmlify: htmlify,\n\t\tstripslashes: stripslashes,\n\t\ttruncate: truncate,\n\t\tunhtmlify: unhtmlify\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 552 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(554), __webpack_require__(778), __webpack_require__(780)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (Backgrid) {\n\t'use strict';\n\n\treturn Backgrid;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 553 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/**\n * Porting this over from Backbone.Siren.FormView\n * I'm removing a few things, specifically, the parsing of individual fields and fieldAttributes\n * since that heavy lifting is now being done by .stickit()\n *\n * @todo While the name, backbone.marionette.formView implies this is a generic library, it is NOT\n * Eventually it would be nice to break down the abstraction layers and open source backbone.marionette\n * while keeping our own app specific version that inherits from it...\n *\n *\n * Things formView needs to do:\n * - create form element\n * - use the viewHelpers: controlSet and formRow\n * - auto-generated\n * - allow for setting of additional data\n *\n */\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t Backbone = __webpack_require__(20),\n\t Marionette = __webpack_require__(209),\n\t $ = Backbone.$;\n\n\t/**\n * To be used as the iterator to _.reduce().\n *\n * @param {Array} memo Memoized results\n * @param {Object} stickitField\n * @param {String} selector\n * @returns {*}\n */\n\tfunction reduceStickitFields(memo, stickitField, selector) {\n\n\t\t// Don't stickit if stickitField is not a model (it could be a function)\n\t\tif (!(stickitField.model instanceof Backbone.Model)) {\n\t\t\treturn memo;\n\t\t}\n\n\t\t// Check if there is already a stickitConfig for the given model\n\t\tvar stickitConfig = _.find(memo, function (config) {\n\t\t\treturn stickitField.model.cid === config.model.cid;\n\t\t});\n\n\t\t// Create a new config if one does not already exist for the current model\n\t\tif (!stickitConfig) {\n\t\t\tstickitConfig = {\n\t\t\t\tmodel: stickitField.model,\n\t\t\t\tconfigs: {}\n\t\t\t};\n\t\t\tmemo.push(stickitConfig);\n\t\t}\n\n\t\tstickitConfig.configs[selector] = stickitField;\n\t\treturn memo;\n\t}\n\n\treturn Marionette.View.extend({\n\t\ttagName: 'form'\n\n\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t, handleFormViewSubmit: function handleFormViewSubmit(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar buttonText,\n\t\t\t self = this,\n\t\t\t nonModelAttributes = {};\n\n\t\t\t// Allow mapping of attribute values to designated models\n\t\t\t_.each(this.fields, function (field, name) {\n\t\t\t\tvar model;\n\n\t\t\t\tif (field.isSecure) {\n\t\t\t\t\tnonModelAttributes[name] = self.action.getSecureKey(name);\n\n\t\t\t\t\t// We don't want to store secure keys any longer than we need to.\n\t\t\t\t\tself.action.clearSecureKey(name);\n\t\t\t\t\tself.$('[name=\"' + name + '\"]').val('');\n\t\t\t\t} else {\n\t\t\t\t\tmodel = field.model;\n\n\t\t\t\t\tif (model instanceof Backbone.Model) {\n\t\t\t\t\t\tnonModelAttributes[name] = model.get(name);\n\t\t\t\t\t} else if (typeof model == 'function') {\n\t\t\t\t\t\tnonModelAttributes[name] = model.call(self, name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Display ajax status and prevent multiple submits\n\t\t\tbuttonText = this.$submit.text();\n\t\t\tthis.$submit.text('Processing...').attr('disabled', true);\n\n\t\t\t// We wrap in a $.when because .execute can return false in the case of failed validation\n\t\t\t// @todo re-enable validation at some point...\n\t\t\t$.when(this.action.execute({ attributes: nonModelAttributes, validate: false })).always(function () {\n\t\t\t\tself.$submit.text(buttonText).removeAttr('disabled');\n\t\t\t});\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = {};\n\n\t\t\tif (this.model) {\n\t\t\t\tdata = this.model.toJSON();\n\t\t\t} else if (this.collection) {\n\t\t\t\tdata = { items: this.collection.toJSON() };\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t/**\n * Sets the action as well as the model\n *\n * @param {Backbone.Siren.Action} action\n * @returns {Backbone.Siren.FormView}\n */\n\t\t, setAction: function setAction(action) {\n\t\t\tif (action.parent instanceof Backbone.Model) {\n\t\t\t\tthis.model = action.parent;\n\t\t\t} else if (action.parent instanceof Backbone.Collection) {\n\t\t\t\tthis.collection = action.parent;\n\t\t\t} else {\n\t\t\t\tthrow 'Action object either missing required \"parent\" or \"parent\" is not a Backbone.Siren Model';\n\t\t\t}\n\n\t\t\tthis.action = action;\n\t\t\treturn this;\n\t\t}\n\n\t\t/**\n * Auto-generate form attributes with supplied action.\n *\n * @param {Backbone.Siren.Action} action\n * @param {Object} [attributes]\n */\n\t\t, parseAttributes: function parseAttributes(action, attributes) {\n\t\t\tattributes = attributes || {};\n\n\t\t\tvar tagName = this.tagName,\n\t\t\t attrs = {};\n\n\t\t\tif (tagName == 'form') {\n\t\t\t\t_.extend(attrs, attributes); // Pass on any additional attributes\n\n\t\t\t\tif (action.type) {\n\t\t\t\t\tattrs.enctype = action.type;\n\t\t\t\t}\n\n\t\t\t\tif (action.method) {\n\t\t\t\t\tattrs.method = action.method;\n\t\t\t\t}\n\n\t\t\t\tif (action.href) {\n\t\t\t\t\tattrs.action = action.href;\n\t\t\t\t}\n\n\t\t\t\t// @todo rename to .validate\n\t\t\t\tattrs.novalidate = !attributes.validation;\n\t\t\t}\n\n\t\t\tattrs.id = attributes.id || action.name + '-' + tagName;\n\t\t\treturn attrs;\n\t\t}\n\n\t\t/**\n *\n * @param {String} selector\n */\n\t\t, removeStickitField: function removeStickitField(selector) {\n\t\t\treturn delete this.stickitFields[selector];\n\t\t}\n\n\t\t/**\n * Adds a stickitField to our View.\n * Later, it can be \"stickit-ed\" by calling .stickAll()\n *\n * @param {String} selector\n * @param {Object} stickitField\n */\n\t\t, addStickitField: function addStickitField(selector, stickitField) {\n\t\t\tif (typeof stickitField == 'string') {\n\t\t\t\tstickitField = { observe: stickitField };\n\t\t\t}\n\n\t\t\tthis.stickitFields[selector] = _.extend(this.stickitFields[selector] || {}, stickitField);\n\t\t}\n\n\t\t/**\n * Adds many stickitFields\n *\n * @param {Object} stickitFields An object of stickitField objects\n */\n\t\t, addStickitFields: function addStickitFields(stickitFields) {\n\t\t\tvar self = this;\n\n\t\t\t_.each(stickitFields, function (field, selector) {\n\t\t\t\tself.addStickitField(selector, field);\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Adds a stickit configuration.\n * See http://nytimes.github.io/backbone.stickit for available configuration settings\n *\n * @param {Backbone.Model} model\n * @param {Object} configs\n */\n\t\t, addStickit: function addStickit(model, configs) {\n\t\t\tvar self = this;\n\n\t\t\t_.each(configs, function (stickitField, selector) {\n\t\t\t\tif (typeof stickitField == 'string') {\n\t\t\t\t\tstickitField = { observe: stickitField };\n\t\t\t\t}\n\n\t\t\t\tif (stickitField) {\n\t\t\t\t\tstickitField.model = model;\n\t\t\t\t\tself.addStickitField(selector, stickitField);\n\t\t\t\t} else {\n\t\t\t\t\tself.removeStickitField(selector);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @param action\n * @param fields\n * @return {Object}\n */\n\t\t, parseFields: function parseFields(fields) {\n\t\t\tfields = fields || {};\n\n\t\t\tvar self = this,\n\t\t\t parsedFields = {};\n\n\t\t\t_.each(this.action.fields, function (field) {\n\t\t\t\tvar fieldName = field.name,\n\t\t\t\t parsedField = {};\n\n\t\t\t\t// @todo, should the server be forced to set required=required instead of required=true?\n\t\t\t\t// ideally, no, since that is too much coupling to the DOM, but we're already pretty coupled...\n\t\t\t\tparsedField.required = parsedField.required ? 'required' : '';\n\n\t\t\t\tif (field.isSecure) {\n\t\t\t\t\tfield.model = self.action.getSecureKeys();\n\t\t\t\t}\n\n\t\t\t\tparsedFields[fieldName] = _.extend({ type: 'text' }, parsedField, field, fields[fieldName]);\n\t\t\t});\n\n\t\t\tthis.fields = parsedFields;\n\t\t\treturn parsedFields;\n\t\t}\n\n\t\t/**\n * Processes and returns all stickit fields as an array of stickit configuration objects.\n *\n * @return {Array}\n */\n\t\t, getStickitFields: function getStickitFields() {\n\t\t\treturn _.reduce(this.stickitFields, $.proxy(reduceStickitFields, this), []);\n\t\t}\n\n\t\t/**\n *\n * @param {Object} field\n */\n\t\t, getSelectorForField: function getSelectorForField(field) {\n\t\t\treturn field.bind ? field.bind.selector || '[name=\"' + field.name + '\"]' : '[name=\"' + field.name + '\"]';\n\t\t}\n\n\t\t/**\n *\n * @param {Object} field\n */\n\t\t, getModelForField: function getModelForField(field) {\n\t\t\treturn field.isSecure ? this.action.getSecureKeys() : field.model || this.model;\n\t\t}\n\n\t\t/**\n * Converts a \"field\" definition to a \"stickitField\" definition.\n * The \"bind\" parameter of the field can be used to override default stickit configs.\n *\n * @param {Object} field\n */\n\t\t, fieldToStickitField: function fieldToStickitField(field) {\n\t\t\tvar stickitField = {},\n\t\t\t defaults = {\n\t\t\t\tobserve: field.name,\n\t\t\t\tmodel: this.getModelForField(field),\n\t\t\t\tsetOptions: {\n\t\t\t\t\t// @todo re-enable validation at some point...\n\t\t\t\t\tvalidate: false //!!this.options.validateOnChange\n\t\t\t\t\t, actionName: this.action.name,\n\t\t\t\t\tforceUpdate: true\n\t\t\t\t}\n\t\t\t},\n\t\t\t selector = this.getSelectorForField(field);\n\n\t\t\tstickitField[selector] = _.extend(defaults, field.bind);\n\t\t\treturn stickitField;\n\t\t}\n\n\t\t/**\n * Converts this.fields into this.stickitFields\n *\n */\n\t\t, fieldsToStickitFields: function fieldsToStickitFields() {\n\t\t\tvar self = this;\n\n\t\t\t_.each(this.fields, function (field) {\n\t\t\t\tself.addStickitFields(self.fieldToStickitField(field));\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Calls stickit on all configured stickit objects.\n *\n */\n\t\t, stickAll: function stickAll() {\n\t\t\tvar self = this;\n\n\t\t\t_.each(this.getStickitFields(), function (config) {\n\t\t\t\tself.stickit(config.model, config.configs);\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @param {Object} options\n */\n\t\t, render: function render(options) {\n\t\t\toptions = options || {};\n\n\t\t\tthis.isClosed = false;\n\n\t\t\tthis.triggerMethod('before:render', this);\n\t\t\tthis.triggerMethod('form:before:render', this);\n\n\t\t\tvar data = this.serializeData();\n\t\t\tdata = this.mixinTemplateHelpers(data);\n\n\t\t\tvar template = this.getTemplate();\n\t\t\tvar html = Marionette.Renderer.render(template, data, this);\n\n\t\t\tthis.$el.html(html);\n\t\t\tthis.bindUIElements();\n\t\t\tthis.$submit = this.$('[type=\"submit\"]');\n\n\t\t\tthis.triggerMethod('render', this);\n\t\t\tthis.triggerMethod('form:rendered', this);\n\n\t\t\tif (typeof options.stickit == 'undefined' || options.stickit) {\n\t\t\t\tthis.stickAll();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\tclose: function close() {\n\t\t\tif (this.isClosed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.triggerMethod('form:before:close');\n\n\t\t\tMarionette.View.prototype.close.apply(this, _.toArray(arguments));\n\n\t\t\tthis.triggerMethod('form:closed');\n\t\t}\n\n\t\t/**\n * Sets up all formView data. Must be called before rendering the formView.\n *\n * @param {Object} options\n * @param {Backbone.Siren.Action} options.action\n * @param {Object} [options.field] field settings (includes field attributes), can set some basic stickit settings\n */\n\t\t, initializeForm: function initializeForm(options) {\n\t\t\t_.extend(this.options, options);\n\n\t\t\tvar action = options.action;\n\n\t\t\tif (!(action && action.name)) {\n\t\t\t\tthrow 'Missing required property: \"action\", or missing action name';\n\t\t\t}\n\n\t\t\tthis.setAction(action);\n\t\t\tthis.parseFields(options.fields);\n\n\t\t\tif (!this.action.hasClass('batch')) {\n\t\t\t\tthis.fieldsToStickitFields();\n\t\t\t}\n\n\t\t\t// Set the attributes manually if the view has already been instantiated.\n\t\t\tif (this.cid) {\n\t\t\t\tthis.$el.attr(this.parseAttributes(action, options.attributes));\n\t\t\t\tthis.$el.submit($.proxy(this.handleFormViewSubmit, this));\n\t\t\t} else {\n\t\t\t\t// The view is being instantiated, configure the options.\n\t\t\t\toptions.attributes = this.parseAttributes(options.action, options.attributes);\n\t\t\t\t$.extend(options.events, { submit: this.handleFormViewSubmit }, options.events);\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @TODO uglymunky refactor this\n *\n */\n\t\t, emptyTemplate: function emptyTemplate() {\n\t\t\treturn wwwApp.ajaxIndicator();\n\t\t}\n\n\t\t/**\n * Override the default .getTemplate() so we can display an \"emptyTemplate\" if the model hasn't been defined\n *\n */\n\t\t, getTemplate: function getTemplate() {\n\t\t\tif (this.model || this.collection) {\n\t\t\t\treturn Marionette.getOption(this, 'template');\n\t\t\t} else if (this.emptyTemplate) {\n\t\t\t\treturn _.bind(this.emptyTemplate, this);\n\t\t\t}\n\t\t},\n\n\t\tconstructor: function constructor() {\n\t\t\tvar args = _.toArray(arguments);\n\t\t\tvar options = args[0] || {};\n\t\t\toptions.validateOnChange = options.validateOnChange === undefined ? true : options.validateOnChange;\n\n\t\t\tif (options.action) {\n\t\t\t\tthis.initializeForm(options);\n\t\t\t}\n\n\t\t\tthis.options = args[0] = options;\n\n\t\t\tthis.stickitFields = {};\n\t\t\tMarionette.View.prototype.constructor.apply(this, args);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 554 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n backgrid 0.3.8\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2017 Cloudflare, Inc. and contributors \n Licensed under the MIT license.\n*/\n\n(function (root, factory) {\n\n if (true) {\n // AMD (+ global for extensions)\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(11), __webpack_require__(20)], __WEBPACK_AMD_DEFINE_RESULT__ = (function (_, Backbone) {\n return (root.Backgrid = factory(_, Backbone));\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports === \"object\") {\n // CommonJS\n module.exports = factory(require(\"underscore\"), require(\"backbone\"));\n } else {\n // Browser\n root.Backgrid = factory(root._, root.Backbone);\n }}(this, function (_, Backbone) {\n\n \"use strict\";\n\n/*\n backgrid\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2013-present Cloudflare, Inc. and contributors\n Licensed under the MIT license.\n*/\n\n// Copyright 2009, 2010 Kristopher Michael Kowal\n// https://github.com/kriskowal/es5-shim\n// ES5 15.5.4.20\n// http://es5.github.com/#x15.5.4.20\nvar ws = \"\\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\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n // http://perfectionkills.com/whitespace-deviations/\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n if (this === undefined || this === null) {\n throw new TypeError(\"can't convert \" + this + \" to object\");\n }\n return String(this)\n .replace(trimBeginRegexp, \"\")\n .replace(trimEndRegexp, \"\");\n };\n}\n\nfunction lpad(str, length, padstr) {\n var paddingLen = length - (str + '').length;\n paddingLen = paddingLen < 0 ? 0 : paddingLen;\n var padding = '';\n for (var i = 0; i < paddingLen; i++) {\n padding = padding + padstr;\n }\n return padding + str;\n}\n\nvar $ = Backbone.$;\n\nvar Backgrid = {\n\n Extension: {},\n\n resolveNameToClass: function (name, suffix) {\n if (_.isString(name)) {\n var key = _.map(name.split('-'), function (e) {\n return e.slice(0, 1).toUpperCase() + e.slice(1);\n }).join('') + suffix;\n var klass = Backgrid[key] || Backgrid.Extension[key];\n if (_.isUndefined(klass)) {\n throw new ReferenceError(\"Class '\" + key + \"' not found\");\n }\n return klass;\n }\n\n return name;\n },\n\n callByNeed: function () {\n var value = arguments[0];\n if (!_.isFunction(value)) return value;\n\n var context = arguments[1];\n var args = [].slice.call(arguments, 2);\n return value.apply(context, !!(args + '') ? args : []);\n }\n\n};\n_.extend(Backgrid, Backbone.Events);\n\n/**\n Command translates a DOM Event into commands that Backgrid\n recognizes. Interested parties can listen on selected Backgrid events that\n come with an instance of this class and act on the commands.\n\n It is also possible to globally rebind the keyboard shortcuts by replacing\n the methods in this class' prototype.\n\n @class Backgrid.Command\n @constructor\n */\nvar Command = Backgrid.Command = function (evt) {\n _.extend(this, {\n altKey: !!evt.altKey,\n \"char\": evt[\"char\"],\n charCode: evt.charCode,\n ctrlKey: !!evt.ctrlKey,\n key: evt.key,\n keyCode: evt.keyCode,\n locale: evt.locale,\n location: evt.location,\n metaKey: !!evt.metaKey,\n repeat: !!evt.repeat,\n shiftKey: !!evt.shiftKey,\n which: evt.which\n });\n};\n_.extend(Command.prototype, {\n /**\n Up Arrow\n\n @member Backgrid.Command\n */\n moveUp: function () { return this.keyCode == 38; },\n /**\n Down Arrow\n\n @member Backgrid.Command\n */\n moveDown: function () { return this.keyCode === 40; },\n /**\n Shift Tab\n\n @member Backgrid.Command\n */\n moveLeft: function () { return this.shiftKey && this.keyCode === 9; },\n /**\n Tab\n\n @member Backgrid.Command\n */\n moveRight: function () { return !this.shiftKey && this.keyCode === 9; },\n /**\n Enter\n\n @member Backgrid.Command\n */\n save: function () { return this.keyCode === 13; },\n /**\n Esc\n\n @member Backgrid.Command\n */\n cancel: function () { return this.keyCode === 27; },\n /**\n None of the above.\n\n @member Backgrid.Command\n */\n passThru: function () {\n return !(this.moveUp() || this.moveDown() || this.moveLeft() ||\n this.moveRight() || this.save() || this.cancel());\n }\n});\n\n/*\n backgrid\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2013-present Cloudflare, Inc. and contributors\n Licensed under the MIT license.\n*/\n\n/**\n Just a convenient class for interested parties to subclass.\n\n The default Cell classes don't require the formatter to be a subclass of\n Formatter as long as the fromRaw(rawData) and toRaw(formattedData) methods\n are defined.\n\n @abstract\n @class Backgrid.CellFormatter\n @constructor\n*/\nvar CellFormatter = Backgrid.CellFormatter = function () {};\n_.extend(CellFormatter.prototype, {\n\n /**\n Takes a raw value from a model and returns an optionally formatted string\n for display. The default implementation simply returns the supplied value\n as is without any type conversion.\n\n @member Backgrid.CellFormatter\n @param {*} rawData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {*}\n */\n fromRaw: function (rawData, model) {\n return rawData;\n },\n\n /**\n Takes a formatted string, usually from user input, and returns a\n appropriately typed value for persistence in the model.\n\n If the user input is invalid or unable to be converted to a raw value\n suitable for persistence in the model, toRaw must return `undefined`.\n\n @member Backgrid.CellFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {*|undefined}\n */\n toRaw: function (formattedData, model) {\n return formattedData;\n }\n\n});\n\n/**\n A floating point number formatter. Doesn't understand scientific notation at\n the moment.\n\n @class Backgrid.NumberFormatter\n @extends Backgrid.CellFormatter\n @constructor\n @throws {RangeError} If decimals < 0 or > 20.\n*/\nvar NumberFormatter = Backgrid.NumberFormatter = function (options) {\n _.extend(this, this.defaults, options || {});\n\n if (this.decimals < 0 || this.decimals > 20) {\n throw new RangeError(\"decimals must be between 0 and 20\");\n }\n};\nNumberFormatter.prototype = new CellFormatter();\n_.extend(NumberFormatter.prototype, {\n\n /**\n @member Backgrid.NumberFormatter\n @cfg {Object} options\n\n @cfg {number} [options.decimals=2] Number of decimals to display. Must be an integer.\n\n @cfg {string} [options.decimalSeparator='.'] The separator to use when\n displaying decimals.\n\n @cfg {string} [options.orderSeparator=','] The separator to use to\n separator thousands. May be an empty string.\n */\n defaults: {\n decimals: 2,\n decimalSeparator: '.',\n orderSeparator: ','\n },\n\n HUMANIZED_NUM_RE: /(\\d)(?=(?:\\d{3})+$)/g,\n\n /**\n Takes a floating point number and convert it to a formatted string where\n every thousand is separated by `orderSeparator`, with a `decimal` number of\n decimals separated by `decimalSeparator`. The number returned is rounded\n the usual way.\n\n @member Backgrid.NumberFormatter\n @param {number} number\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string}\n */\n fromRaw: function (number, model) {\n if (_.isNull(number) || _.isUndefined(number)) return '';\n\n number = parseFloat(number).toFixed(~~this.decimals);\n\n var parts = number.split('.');\n var integerPart = parts[0];\n var decimalPart = parts[1] ? (this.decimalSeparator || '.') + parts[1] : '';\n\n return integerPart.replace(this.HUMANIZED_NUM_RE, '$1' + this.orderSeparator) + decimalPart;\n },\n\n /**\n Takes a string, possibly formatted with `orderSeparator` and/or\n `decimalSeparator`, and convert it back to a number.\n\n @member Backgrid.NumberFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {number|undefined} Undefined if the string cannot be converted to\n a number.\n */\n toRaw: function (formattedData, model) {\n formattedData = formattedData.trim();\n\n if (formattedData === '') return null;\n\n var rawData = '';\n\n var thousands = formattedData.split(this.orderSeparator);\n for (var i = 0; i < thousands.length; i++) {\n rawData += thousands[i];\n }\n\n var decimalParts = rawData.split(this.decimalSeparator);\n rawData = '';\n for (var i = 0; i < decimalParts.length; i++) {\n rawData = rawData + decimalParts[i] + '.';\n }\n\n if (rawData[rawData.length - 1] === '.') {\n rawData = rawData.slice(0, rawData.length - 1);\n }\n\n var result = (rawData * 1).toFixed(~~this.decimals) * 1;\n if (_.isNumber(result) && !_.isNaN(result)) return result;\n }\n\n});\n\n/**\n A number formatter that converts a floating point number, optionally\n multiplied by a multiplier, to a percentage string and vice versa.\n\n @class Backgrid.PercentFormatter\n @extends Backgrid.NumberFormatter\n @constructor\n @throws {RangeError} If decimals < 0 or > 20.\n */\nvar PercentFormatter = Backgrid.PercentFormatter = function () {\n Backgrid.NumberFormatter.apply(this, arguments);\n};\n\nPercentFormatter.prototype = new Backgrid.NumberFormatter(),\n\n_.extend(PercentFormatter.prototype, {\n\n /**\n @member Backgrid.PercentFormatter\n @cfg {Object} options\n\n @cfg {number} [options.multiplier=1] The number used to multiply the model\n value for display.\n\n @cfg {string} [options.symbol='%'] The symbol to append to the percentage\n string.\n */\n defaults: _.extend({}, NumberFormatter.prototype.defaults, {\n multiplier: 1,\n symbol: \"%\"\n }),\n\n /**\n Takes a floating point number, where the number is first multiplied by\n `multiplier`, then converted to a formatted string like\n NumberFormatter#fromRaw, then finally append `symbol` to the end.\n\n @member Backgrid.PercentFormatter\n @param {number} rawValue\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string}\n */\n fromRaw: function (number, model) {\n var args = [].slice.call(arguments, 1);\n args.unshift(number * this.multiplier);\n return (NumberFormatter.prototype.fromRaw.apply(this, args) || \"0\") + this.symbol;\n },\n\n /**\n Takes a string, possibly appended with `symbol` and/or `decimalSeparator`,\n and convert it back to a number for the model like NumberFormatter#toRaw,\n and then dividing it by `multiplier`.\n\n @member Backgrid.PercentFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {number|undefined} Undefined if the string cannot be converted to\n a number.\n */\n toRaw: function (formattedValue, model) {\n var tokens = formattedValue.split(this.symbol);\n if (tokens && tokens[0] && tokens[1] === \"\" || tokens[1] == null) {\n var rawValue = NumberFormatter.prototype.toRaw.call(this, tokens[0]);\n if (_.isUndefined(rawValue)) return rawValue;\n return rawValue / this.multiplier;\n }\n }\n\n});\n\n/**\n Formatter to converts between various datetime formats.\n\n This class only understands ISO-8601 formatted datetime strings and UNIX\n offset (number of milliseconds since UNIX Epoch). See\n Backgrid.Extension.MomentFormatter if you need a much more flexible datetime\n formatter.\n\n @class Backgrid.DatetimeFormatter\n @extends Backgrid.CellFormatter\n @constructor\n @throws {Error} If both `includeDate` and `includeTime` are false.\n*/\nvar DatetimeFormatter = Backgrid.DatetimeFormatter = function (options) {\n _.extend(this, this.defaults, options || {});\n\n if (!this.includeDate && !this.includeTime) {\n throw new Error(\"Either includeDate or includeTime must be true\");\n }\n};\nDatetimeFormatter.prototype = new CellFormatter();\n_.extend(DatetimeFormatter.prototype, {\n\n /**\n @member Backgrid.DatetimeFormatter\n\n @cfg {Object} options\n\n @cfg {boolean} [options.includeDate=true] Whether the values include the\n date part.\n\n @cfg {boolean} [options.includeTime=true] Whether the values include the\n time part.\n\n @cfg {boolean} [options.includeMilli=false] If `includeTime` is true,\n whether to include the millisecond part, if it exists.\n */\n defaults: {\n includeDate: true,\n includeTime: true,\n includeMilli: false\n },\n\n DATE_RE: /^([+\\-]?\\d{4})-(\\d{2})-(\\d{2})$/,\n TIME_RE: /^(\\d{2}):(\\d{2}):(\\d{2})(\\.(\\d{3}))?$/,\n ISO_SPLITTER_RE: /T|Z| +/,\n\n _convert: function (data, validate) {\n if ((data + '').trim() === '') return null;\n\n var date, time = null;\n if (_.isNumber(data)) {\n var jsDate = new Date(data);\n date = lpad(jsDate.getUTCFullYear(), 4, 0) + '-' + lpad(jsDate.getUTCMonth() + 1, 2, 0) + '-' + lpad(jsDate.getUTCDate(), 2, 0);\n time = lpad(jsDate.getUTCHours(), 2, 0) + ':' + lpad(jsDate.getUTCMinutes(), 2, 0) + ':' + lpad(jsDate.getUTCSeconds(), 2, 0);\n }\n else {\n data = data.trim();\n var parts = data.split(this.ISO_SPLITTER_RE) || [];\n date = this.DATE_RE.test(parts[0]) ? parts[0] : '';\n time = date && parts[1] ? parts[1] : this.TIME_RE.test(parts[0]) ? parts[0] : '';\n }\n\n var YYYYMMDD = this.DATE_RE.exec(date) || [];\n var HHmmssSSS = this.TIME_RE.exec(time) || [];\n\n if (validate) {\n if (this.includeDate && _.isUndefined(YYYYMMDD[0])) return;\n if (this.includeTime && _.isUndefined(HHmmssSSS[0])) return;\n if (!this.includeDate && date) return;\n if (!this.includeTime && time) return;\n }\n\n var jsDate = new Date(Date.UTC(YYYYMMDD[1] * 1 || 0,\n YYYYMMDD[2] * 1 - 1 || 0,\n YYYYMMDD[3] * 1 || 0,\n HHmmssSSS[1] * 1 || null,\n HHmmssSSS[2] * 1 || null,\n HHmmssSSS[3] * 1 || null,\n HHmmssSSS[5] * 1 || null));\n\n var result = '';\n\n if (this.includeDate) {\n result = lpad(jsDate.getUTCFullYear(), 4, 0) + '-' + lpad(jsDate.getUTCMonth() + 1, 2, 0) + '-' + lpad(jsDate.getUTCDate(), 2, 0);\n }\n\n if (this.includeTime) {\n result = result + (this.includeDate ? 'T' : '') + lpad(jsDate.getUTCHours(), 2, 0) + ':' + lpad(jsDate.getUTCMinutes(), 2, 0) + ':' + lpad(jsDate.getUTCSeconds(), 2, 0);\n\n if (this.includeMilli) {\n result = result + '.' + lpad(jsDate.getUTCMilliseconds(), 3, 0);\n }\n }\n\n if (this.includeDate && this.includeTime) {\n result += \"Z\";\n }\n\n return result;\n },\n\n /**\n Converts an ISO-8601 formatted datetime string to a datetime string, date\n string or a time string. The timezone is ignored if supplied.\n\n @member Backgrid.DatetimeFormatter\n @param {string} rawData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string|null|undefined} ISO-8601 string in UTC. Null and undefined\n values are returned as is.\n */\n fromRaw: function (rawData, model) {\n if (_.isNull(rawData) || _.isUndefined(rawData)) return '';\n return this._convert(rawData);\n },\n\n /**\n Converts an ISO-8601 formatted datetime string to a datetime string, date\n string or a time string. The timezone is ignored if supplied. This method\n parses the input values exactly the same way as\n Backgrid.Extension.MomentFormatter#fromRaw(), in addition to doing some\n sanity checks.\n\n @member Backgrid.DatetimeFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string|undefined} ISO-8601 string in UTC. Undefined if a date is\n found when `includeDate` is false, or a time is found when `includeTime` is\n false, or if `includeDate` is true and a date is not found, or if\n `includeTime` is true and a time is not found.\n */\n toRaw: function (formattedData, model) {\n return this._convert(formattedData, true);\n }\n\n});\n\n/**\n Formatter to convert any value to string.\n\n @class Backgrid.StringFormatter\n @extends Backgrid.CellFormatter\n @constructor\n */\nvar StringFormatter = Backgrid.StringFormatter = function () {};\nStringFormatter.prototype = new CellFormatter();\n_.extend(StringFormatter.prototype, {\n /**\n Converts any value to a string using Ecmascript's implicit type\n conversion. If the given value is `null` or `undefined`, an empty string is\n returned instead.\n\n @member Backgrid.StringFormatter\n @param {*} rawValue\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string}\n */\n fromRaw: function (rawValue, model) {\n if (_.isUndefined(rawValue) || _.isNull(rawValue)) return '';\n return rawValue + '';\n }\n});\n\n/**\n Simple email validation formatter.\n\n @class Backgrid.EmailFormatter\n @extends Backgrid.CellFormatter\n @constructor\n */\nvar EmailFormatter = Backgrid.EmailFormatter = function () {};\nEmailFormatter.prototype = new CellFormatter();\n_.extend(EmailFormatter.prototype, {\n /**\n Return the input if it is a string that contains an '@' character and if\n the strings before and after '@' are non-empty. If the input does not\n validate, `undefined` is returned.\n\n @member Backgrid.EmailFormatter\n @param {*} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string|undefined}\n */\n toRaw: function (formattedData, model) {\n var parts = formattedData.trim().split(\"@\");\n if (parts.length === 2 && _.all(parts)) {\n return formattedData;\n }\n }\n});\n\n/**\n Formatter for SelectCell.\n\n If the type of a model value is not a string, it is expected that a subclass\n of this formatter is provided to the SelectCell, with #toRaw overridden to\n convert the string value returned from the DOM back to whatever value is\n expected in the model.\n\n @class Backgrid.SelectFormatter\n @extends Backgrid.CellFormatter\n @constructor\n*/\nvar SelectFormatter = Backgrid.SelectFormatter = function () {};\nSelectFormatter.prototype = new CellFormatter();\n_.extend(SelectFormatter.prototype, {\n\n /**\n Normalizes raw scalar or array values to an array.\n\n @member Backgrid.SelectFormatter\n @param {*} rawValue\n @param {Backbone.Model} model Used for more complicated formatting\n @return {Array.<*>}\n */\n fromRaw: function (rawValue, model) {\n return _.isArray(rawValue) ? rawValue : rawValue != null ? [rawValue] : [];\n }\n});\n\n/*\n backgrid\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2013-present Cloudflare, Inc. and contributors\n Licensed under the MIT license.\n*/\n\n/**\n Generic cell editor base class. Only defines an initializer for a number of\n required parameters.\n\n @abstract\n @class Backgrid.CellEditor\n @extends Backbone.View\n*/\nvar CellEditor = Backgrid.CellEditor = Backbone.View.extend({\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backgrid.CellFormatter} options.formatter\n @param {Backgrid.Column} options.column\n @param {Backbone.Model} options.model\n\n @throws {TypeError} If `formatter` is not a formatter instance, or when\n `model` or `column` are undefined.\n */\n initialize: function (options) {\n this.formatter = options.formatter;\n this.column = options.column;\n if (!(this.column instanceof Column)) {\n this.column = new Column(this.column);\n }\n\n this.listenTo(this.model, \"backgrid:editing\", this.postRender);\n },\n\n /**\n Post-rendering setup and initialization. Focuses the cell editor's `el` in\n this default implementation. **Should** be called by Cell classes after\n calling Backgrid.CellEditor#render.\n */\n postRender: function (model, column) {\n if (column == null || column.get(\"name\") == this.column.get(\"name\")) {\n this.$el.focus();\n }\n return this;\n }\n\n});\n\n/**\n InputCellEditor the cell editor type used by most core cell types. This cell\n editor renders a text input box as its editor. The input will render a\n placeholder if the value is empty on supported browsers.\n\n @class Backgrid.InputCellEditor\n @extends Backgrid.CellEditor\n*/\nvar InputCellEditor = Backgrid.InputCellEditor = CellEditor.extend({\n\n /** @property */\n tagName: \"input\",\n\n /** @property */\n attributes: {\n type: \"text\"\n },\n\n /** @property */\n events: {\n \"blur\": \"saveOrCancel\",\n \"keydown\": \"saveOrCancel\"\n },\n\n /**\n Initializer. Removes this `el` from the DOM when a `done` event is\n triggered.\n\n @param {Object} options\n @param {Backgrid.CellFormatter} options.formatter\n @param {Backgrid.Column} options.column\n @param {Backbone.Model} options.model\n @param {string} [options.placeholder]\n */\n initialize: function (options) {\n InputCellEditor.__super__.initialize.apply(this, arguments);\n\n if (options.placeholder) {\n this.$el.attr(\"placeholder\", options.placeholder);\n }\n },\n\n /**\n Renders a text input with the cell value formatted for display, if it\n exists.\n */\n render: function () {\n var model = this.model;\n this.$el.val(this.formatter.fromRaw(model.get(this.column.get(\"name\")), model));\n return this;\n },\n\n /**\n If the key pressed is `enter`, `tab`, `up`, or `down`, converts the value\n in the editor to a raw value for saving into the model using the formatter.\n\n If the key pressed is `esc` the changes are undone.\n\n If the editor goes out of focus (`blur`) but the value is invalid, the\n event is intercepted and cancelled so the cell remains in focus pending for\n further action. The changes are saved otherwise.\n\n Triggers a Backbone `backgrid:edited` event from the model when successful,\n and `backgrid:error` if the value cannot be converted. Classes listening to\n the `error` event, usually the Cell classes, should respond appropriately,\n usually by rendering some kind of error feedback.\n\n @param {Event} e\n */\n saveOrCancel: function (e) {\n\n var formatter = this.formatter;\n var model = this.model;\n var column = this.column;\n\n var command = new Command(e);\n var blurred = e.type === \"blur\";\n\n if (command.moveUp() || command.moveDown() || command.moveLeft() || command.moveRight() ||\n command.save() || blurred) {\n\n e.preventDefault();\n e.stopPropagation();\n\n var val = this.$el.val();\n var newValue = formatter.toRaw(val, model);\n if (_.isUndefined(newValue)) {\n model.trigger(\"backgrid:error\", model, column, val);\n }\n else {\n model.set(column.get(\"name\"), newValue);\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n }\n // esc\n else if (command.cancel()) {\n // undo\n e.stopPropagation();\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n },\n\n postRender: function (model, column) {\n if (column == null || column.get(\"name\") == this.column.get(\"name\")) {\n // move the cursor to the end on firefox if text is right aligned\n if (this.$el.css(\"text-align\") === \"right\") {\n var val = this.$el.val();\n this.$el.focus().val(null).val(val);\n }\n else this.$el.focus();\n }\n return this;\n }\n\n});\n\n/**\n The super-class for all Cell types. By default, this class renders a plain\n table cell with the model value converted to a string using the\n formatter. The table cell is clickable, upon which the cell will go into\n editor mode, which is rendered by a Backgrid.InputCellEditor instance by\n default. Upon encountering any formatting errors, this class will add an\n `error` CSS class to the table cell.\n\n @abstract\n @class Backgrid.Cell\n @extends Backbone.View\n*/\nvar Cell = Backgrid.Cell = Backbone.View.extend({\n\n /** @property */\n tagName: \"td\",\n\n /**\n @property {Backgrid.CellFormatter|Object|string} [formatter=CellFormatter]\n */\n formatter: CellFormatter,\n\n /**\n @property {Backgrid.CellEditor} [editor=Backgrid.InputCellEditor] The\n default editor for all cell instances of this class. This value must be a\n class, it will be automatically instantiated upon entering edit mode.\n\n See Backgrid.CellEditor\n */\n editor: InputCellEditor,\n\n /** @property */\n events: {\n \"click\": \"enterEditMode\"\n },\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n\n @throws {ReferenceError} If formatter is a string but a formatter class of\n said name cannot be found in the Backgrid module.\n */\n initialize: function (options) {\n this.column = options.column;\n if (!(this.column instanceof Column)) {\n this.column = new Column(this.column);\n }\n\n var column = this.column, model = this.model, $el = this.$el;\n\n var formatter = Backgrid.resolveNameToClass(column.get(\"formatter\") ||\n this.formatter, \"Formatter\");\n\n if (!_.isFunction(formatter.fromRaw) && !_.isFunction(formatter.toRaw)) {\n formatter = new formatter();\n }\n\n this.formatter = formatter;\n\n this.editor = Backgrid.resolveNameToClass(this.editor, \"CellEditor\");\n\n this.listenTo(model, \"change:\" + column.get(\"name\"), function () {\n if (!$el.hasClass(\"editor\")) this.render();\n });\n\n this.listenTo(model, \"backgrid:error\", this.renderError);\n\n this.listenTo(column, \"change:editable change:sortable change:renderable\",\n function (column) {\n var changed = column.changedAttributes();\n for (var key in changed) {\n if (changed.hasOwnProperty(key)) {\n $el.toggleClass(key, changed[key]);\n }\n }\n });\n\n this.updateStateClassesMaybe();\n },\n\n updateStateClassesMaybe: function () {\n var model = this.model;\n var column = this.column;\n var $el = this.$el;\n $el.toggleClass(\"editable\", Backgrid.callByNeed(column.editable(), column, model));\n $el.toggleClass(\"sortable\", Backgrid.callByNeed(column.sortable(), column, model));\n $el.toggleClass(\"renderable\", Backgrid.callByNeed(column.renderable(), column, model));\n },\n\n /**\n Render a text string in a table cell. The text is converted from the\n model's raw value for this cell's column.\n */\n render: function () {\n var $el = this.$el;\n $el.empty();\n var model = this.model;\n var columnName = this.column.get(\"name\");\n $el.text(this.formatter.fromRaw(model.get(columnName), model));\n $el.addClass(columnName);\n this.updateStateClassesMaybe();\n this.delegateEvents();\n return this;\n },\n\n /**\n If this column is editable, a new CellEditor instance is instantiated with\n its required parameters. An `editor` CSS class is added to the cell upon\n entering edit mode.\n\n This method triggers a Backbone `backgrid:edit` event from the model when\n the cell is entering edit mode and an editor instance has been constructed,\n but before it is rendered and inserted into the DOM. The cell and the\n constructed cell editor instance are sent as event parameters when this\n event is triggered.\n\n When this cell has finished switching to edit mode, a Backbone\n `backgrid:editing` event is triggered from the model. The cell and the\n constructed cell instance are also sent as parameters in the event.\n\n When the model triggers a `backgrid:error` event, it means the editor is\n unable to convert the current user input to an apprpriate value for the\n model's column, and an `error` CSS class is added to the cell accordingly.\n */\n enterEditMode: function () {\n var model = this.model;\n var column = this.column;\n\n var editable = Backgrid.callByNeed(column.editable(), column, model);\n if (editable) {\n\n this.currentEditor = new this.editor({\n column: this.column,\n model: this.model,\n formatter: this.formatter\n });\n\n model.trigger(\"backgrid:edit\", model, column, this, this.currentEditor);\n\n // Need to redundantly undelegate events for Firefox\n this.undelegateEvents();\n this.$el.empty();\n this.$el.append(this.currentEditor.$el);\n this.currentEditor.render();\n this.$el.addClass(\"editor\");\n\n model.trigger(\"backgrid:editing\", model, column, this, this.currentEditor);\n }\n },\n\n /**\n Put an `error` CSS class on the table cell.\n */\n renderError: function (model, column) {\n if (column == null || column.get(\"name\") == this.column.get(\"name\")) {\n this.$el.addClass(\"error\");\n }\n },\n\n /**\n Removes the editor and re-render in display mode.\n */\n exitEditMode: function () {\n this.$el.removeClass(\"error\");\n this.currentEditor.remove();\n this.stopListening(this.currentEditor);\n delete this.currentEditor;\n this.$el.removeClass(\"editor\");\n this.render();\n },\n\n /**\n Clean up this cell.\n\n @chainable\n */\n remove: function () {\n if (this.currentEditor) {\n this.currentEditor.remove.apply(this.currentEditor, arguments);\n delete this.currentEditor;\n }\n return Cell.__super__.remove.apply(this, arguments);\n }\n\n});\n\n/**\n StringCell displays HTML escaped strings and accepts anything typed in.\n\n @class Backgrid.StringCell\n @extends Backgrid.Cell\n*/\nvar StringCell = Backgrid.StringCell = Cell.extend({\n\n /** @property */\n className: \"string-cell\",\n\n formatter: StringFormatter\n\n});\n\n/**\n UriCell renders an HTML `` anchor for the value and accepts URIs as user\n input values. No type conversion or URL validation is done by the formatter\n of this cell. Users who need URL validation are encourage to subclass UriCell\n to take advantage of the parsing capabilities of the HTMLAnchorElement\n available on HTML5-capable browsers or using a third-party library like\n [URI.js](https://github.com/medialize/URI.js).\n\n @class Backgrid.UriCell\n @extends Backgrid.Cell\n*/\nvar UriCell = Backgrid.UriCell = Cell.extend({\n\n /** @property */\n className: \"uri-cell\",\n\n /**\n @property {string} [title] The title attribute of the generated anchor. It\n uses the display value formatted by the `formatter.fromRaw` by default.\n */\n title: null,\n\n /**\n @property {string} [target=\"_blank\"] The target attribute of the generated\n anchor.\n */\n target: \"_blank\",\n\n initialize: function (options) {\n UriCell.__super__.initialize.apply(this, arguments);\n this.title = options.title || this.title;\n this.target = options.target || this.target;\n },\n\n render: function () {\n this.$el.empty();\n var rawValue = this.model.get(this.column.get(\"name\"));\n var formattedValue = this.formatter.fromRaw(rawValue, this.model);\n this.$el.append($(\"\", {\n tabIndex: -1,\n href: rawValue,\n title: this.title || formattedValue,\n target: this.target\n }).text(formattedValue));\n this.delegateEvents();\n return this;\n }\n\n});\n\n/**\n Like Backgrid.UriCell, EmailCell renders an HTML `` anchor for the\n value. The `href` in the anchor is prefixed with `mailto:`. EmailCell will\n complain if the user enters a string that doesn't contain the `@` sign.\n\n @class Backgrid.EmailCell\n @extends Backgrid.StringCell\n*/\nvar EmailCell = Backgrid.EmailCell = StringCell.extend({\n\n /** @property */\n className: \"email-cell\",\n\n formatter: EmailFormatter,\n\n render: function () {\n this.$el.empty();\n var model = this.model;\n var formattedValue = this.formatter.fromRaw(model.get(this.column.get(\"name\")), model);\n this.$el.append($(\"\", {\n tabIndex: -1,\n href: \"mailto:\" + formattedValue,\n title: formattedValue\n }).text(formattedValue));\n this.delegateEvents();\n return this;\n }\n\n});\n\n/**\n NumberCell is a generic cell that renders all numbers. Numbers are formatted\n using a Backgrid.NumberFormatter.\n\n @class Backgrid.NumberCell\n @extends Backgrid.Cell\n*/\nvar NumberCell = Backgrid.NumberCell = Cell.extend({\n\n /** @property */\n className: \"number-cell\",\n\n /**\n @property {number} [decimals=2] Must be an integer.\n */\n decimals: NumberFormatter.prototype.defaults.decimals,\n\n /** @property {string} [decimalSeparator='.'] */\n decimalSeparator: NumberFormatter.prototype.defaults.decimalSeparator,\n\n /** @property {string} [orderSeparator=','] */\n orderSeparator: NumberFormatter.prototype.defaults.orderSeparator,\n\n /** @property {Backgrid.CellFormatter} [formatter=Backgrid.NumberFormatter] */\n formatter: NumberFormatter,\n\n /**\n Initializes this cell and the number formatter.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n */\n initialize: function (options) {\n NumberCell.__super__.initialize.apply(this, arguments);\n var formatter = this.formatter;\n formatter.decimals = this.decimals;\n formatter.decimalSeparator = this.decimalSeparator;\n formatter.orderSeparator = this.orderSeparator;\n }\n\n});\n\n/**\n An IntegerCell is just a Backgrid.NumberCell with 0 decimals. If a floating\n point number is supplied, the number is simply rounded the usual way when\n displayed.\n\n @class Backgrid.IntegerCell\n @extends Backgrid.NumberCell\n*/\nvar IntegerCell = Backgrid.IntegerCell = NumberCell.extend({\n\n /** @property */\n className: \"integer-cell\",\n\n /**\n @property {number} decimals Must be an integer.\n */\n decimals: 0\n});\n\n/**\n A PercentCell is another Backgrid.NumberCell that takes a floating number,\n optionally multiplied by a multiplier and display it as a percentage.\n\n @class Backgrid.PercentCell\n @extends Backgrid.NumberCell\n */\nvar PercentCell = Backgrid.PercentCell = NumberCell.extend({\n\n /** @property */\n className: \"percent-cell\",\n\n /** @property {number} [multiplier=1] */\n multiplier: PercentFormatter.prototype.defaults.multiplier,\n\n /** @property {string} [symbol='%'] */\n symbol: PercentFormatter.prototype.defaults.symbol,\n\n /** @property {Backgrid.CellFormatter} [formatter=Backgrid.PercentFormatter] */\n formatter: PercentFormatter,\n\n /**\n Initializes this cell and the percent formatter.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n */\n initialize: function () {\n PercentCell.__super__.initialize.apply(this, arguments);\n var formatter = this.formatter;\n formatter.multiplier = this.multiplier;\n formatter.symbol = this.symbol;\n }\n\n});\n\n/**\n DatetimeCell is a basic cell that accepts datetime string values in RFC-2822\n or W3C's subset of ISO-8601 and displays them in ISO-8601 format. For a much\n more sophisticated date time cell with better datetime formatting, take a\n look at the Backgrid.Extension.MomentCell extension.\n\n @class Backgrid.DatetimeCell\n @extends Backgrid.Cell\n\n See:\n\n - Backgrid.Extension.MomentCell\n - Backgrid.DatetimeFormatter\n*/\nvar DatetimeCell = Backgrid.DatetimeCell = Cell.extend({\n\n /** @property */\n className: \"datetime-cell\",\n\n /**\n @property {boolean} [includeDate=true]\n */\n includeDate: DatetimeFormatter.prototype.defaults.includeDate,\n\n /**\n @property {boolean} [includeTime=true]\n */\n includeTime: DatetimeFormatter.prototype.defaults.includeTime,\n\n /**\n @property {boolean} [includeMilli=false]\n */\n includeMilli: DatetimeFormatter.prototype.defaults.includeMilli,\n\n /** @property {Backgrid.CellFormatter} [formatter=Backgrid.DatetimeFormatter] */\n formatter: DatetimeFormatter,\n\n /**\n Initializes this cell and the datetime formatter.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n */\n initialize: function (options) {\n DatetimeCell.__super__.initialize.apply(this, arguments);\n var formatter = this.formatter;\n formatter.includeDate = this.includeDate;\n formatter.includeTime = this.includeTime;\n formatter.includeMilli = this.includeMilli;\n\n var placeholder = this.includeDate ? \"YYYY-MM-DD\" : \"\";\n placeholder += (this.includeDate && this.includeTime) ? \"T\" : \"\";\n placeholder += this.includeTime ? \"HH:mm:ss\" : \"\";\n placeholder += (this.includeTime && this.includeMilli) ? \".SSS\" : \"\";\n\n this.editor = this.editor.extend({\n attributes: _.extend({}, this.editor.prototype.attributes, this.editor.attributes, {\n placeholder: placeholder\n })\n });\n }\n\n});\n\n/**\n DateCell is a Backgrid.DatetimeCell without the time part.\n\n @class Backgrid.DateCell\n @extends Backgrid.DatetimeCell\n*/\nvar DateCell = Backgrid.DateCell = DatetimeCell.extend({\n\n /** @property */\n className: \"date-cell\",\n\n /** @property */\n includeTime: false\n\n});\n\n/**\n TimeCell is a Backgrid.DatetimeCell without the date part.\n\n @class Backgrid.TimeCell\n @extends Backgrid.DatetimeCell\n*/\nvar TimeCell = Backgrid.TimeCell = DatetimeCell.extend({\n\n /** @property */\n className: \"time-cell\",\n\n /** @property */\n includeDate: false\n\n});\n\n/**\n BooleanCellEditor renders a checkbox as its editor.\n\n @class Backgrid.BooleanCellEditor\n @extends Backgrid.CellEditor\n*/\nvar BooleanCellEditor = Backgrid.BooleanCellEditor = CellEditor.extend({\n\n /** @property */\n tagName: \"input\",\n\n /** @property */\n attributes: {\n tabIndex: -1,\n type: \"checkbox\"\n },\n\n /** @property */\n events: {\n \"mousedown\": function () {\n this.mouseDown = true;\n },\n \"blur\": \"enterOrExitEditMode\",\n \"mouseup\": function () {\n this.mouseDown = false;\n },\n \"change\": \"saveOrCancel\",\n \"keydown\": \"saveOrCancel\"\n },\n\n /**\n Renders a checkbox and check it if the model value of this column is true,\n uncheck otherwise.\n */\n render: function () {\n var model = this.model;\n var val = this.formatter.fromRaw(model.get(this.column.get(\"name\")), model);\n this.$el.prop(\"checked\", val);\n return this;\n },\n\n /**\n Event handler. Hack to deal with the case where `blur` is fired before\n `change` and `click` on a checkbox.\n */\n enterOrExitEditMode: function (e) {\n if (!this.mouseDown) {\n var model = this.model;\n model.trigger(\"backgrid:edited\", model, this.column, new Command(e));\n }\n },\n\n /**\n Event handler. Save the value into the model if the event is `change` or\n one of the keyboard navigation key presses. Exit edit mode without saving\n if `escape` was pressed.\n */\n saveOrCancel: function (e) {\n var model = this.model;\n var column = this.column;\n var formatter = this.formatter;\n var command = new Command(e);\n // skip ahead to `change` when space is pressed\n if (command.passThru() && e.type != \"change\") return true;\n if (command.cancel()) {\n e.stopPropagation();\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n\n var $el = this.$el;\n if (command.save() || command.moveLeft() || command.moveRight() || command.moveUp() ||\n command.moveDown()) {\n e.preventDefault();\n e.stopPropagation();\n var val = formatter.toRaw($el.prop(\"checked\"), model);\n model.set(column.get(\"name\"), val);\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n else if (e.type == \"change\") {\n var val = formatter.toRaw($el.prop(\"checked\"), model);\n model.set(column.get(\"name\"), val);\n $el.focus();\n }\n }\n\n});\n\n/**\n BooleanCell renders a checkbox both during display mode and edit mode. The\n checkbox is checked if the model value is true, unchecked otherwise.\n\n @class Backgrid.BooleanCell\n @extends Backgrid.Cell\n*/\nvar BooleanCell = Backgrid.BooleanCell = Cell.extend({\n\n /** @property */\n className: \"boolean-cell\",\n\n /** @property */\n editor: BooleanCellEditor,\n\n /** @property */\n events: {\n \"click\": \"enterEditMode\"\n },\n\n /**\n Renders a checkbox and check it if the model value of this column is true,\n uncheck otherwise.\n */\n render: function () {\n this.$el.empty();\n var model = this.model, column = this.column;\n var editable = Backgrid.callByNeed(column.editable(), column, model);\n this.$el.append($(\"\", {\n tabIndex: -1,\n type: \"checkbox\",\n checked: this.formatter.fromRaw(model.get(column.get(\"name\")), model),\n disabled: !editable\n }));\n this.delegateEvents();\n return this;\n }\n\n});\n\n/**\n SelectCellEditor renders an HTML `');\n\n\t\t\t\tfield.attr('type', 'hidden');\n\t\t\t\tfield.attr('name', key);\n\t\t\t\tfield.attr('value', value);\n\n\t\t\t\tform.append(field);\n\t\t\t});\n\n\t\t\t// The form needs to be a part of the document in\n\t\t\t// order for us to be able to submit it.\n\t\t\t$(document.body).append(form);\n\t\t\tform.submit();\n\t\t}\n\t};\n});\n\n/***/ }),\n/* 557 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0);\n\t__webpack_require__(213);\n\n\t/**\n *\n * @param {jQuery.Event} event\n */\n\tfunction handleDropdownWrapperHoverOver(event) {\n\t\tthis.suppressClick();\n\t\tthis.expand(event.target);\n\t}\n\n\t/**\n *\n * @param {jQuery.Event} event\n */\n\tfunction handleDropdownWrapperHoverOut(event) {\n\t\tthis.collapse(event.target);\n\t}\n\n\tfunction Dropdown(target) {\n\t\tvar self = this;\n\t\tvar $target = $(target);\n\n\t\tthis.options = Dropdown.defaults;\n\t\tthis.$el = $target;\n\n\t\t$('.' + this.options.dropdownNavItemClass, $target).hoverIntent($.proxy(handleDropdownWrapperHoverOver, this), $.proxy(handleDropdownWrapperHoverOut, this));\n\n\t\tthis.$el.on('click.dropdown', '.' + this.options.dropdownNavItemClass, function (event) {\n\t\t\tif (!self.clicksAreSuppressed) {\n\t\t\t\tself.toggle(event.target);\n\t\t\t}\n\t\t});\n\n\t\t$('html').on('click.dropdown', function (event) {\n\t\t\tif (typeof event.target.className == 'string' && event.target.className.indexOf(self.options.dropdownWrapperClass) < 0) {\n\t\t\t\tself.collapseAll();\n\t\t\t}\n\t\t});\n\t}\n\n\tDropdown.defaults = {\n\t\tdropdownNavItemClass: 'dropdownNavItem',\n\t\tdropdownWrapperClass: 'dropdownWrap',\n\t\tsecondaryNavClass: 'dropdownNavSecondary'\n\t};\n\n\tDropdown.prototype = {\n\n\t\t/**\n *\n * @returns {jQuery}\n */\n\t\tactivePrimaryNavItems: function activePrimaryNavItems() {\n\t\t\treturn $('> li', this.$el).filter('.active');\n\t\t}\n\n\t\t/**\n * Handy for finding out which primary nav item an element belongs to\n *\n * @param {jQuery} $el\n * @returns {jQuery}\n */\n\t\t, getPrimaryNavItem: function getPrimaryNavItem($el) {\n\t\t\treturn $($el).closest('.' + this.options.dropdownNavItemClass);\n\t\t}\n\n\t\t/**\n * Expands if collapsed, collapses if expanded\n *\n * @param {jQuery} $el\n */\n\t\t, toggle: function toggle($el) {\n\t\t\tvar $primaryNavItem = this.getPrimaryNavItem($el);\n\n\t\t\tif ($primaryNavItem.hasClass('active')) {\n\t\t\t\tthis.collapse($primaryNavItem);\n\t\t\t} else {\n\t\t\t\tthis.expand($primaryNavItem);\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Expands/drops-down the dropdown\n *\n * @param {jQuery}\n */\n\t\t, expand: function expand($el) {\n\t\t\tthis.getPrimaryNavItem($el).addClass('active');\n\t\t}\n\n\t\t/**\n * Collapses/pulls-up the dropdown\n *\n * @param {jQuery}\n */\n\t\t, collapse: function collapse($el) {\n\t\t\tthis.getPrimaryNavItem($el).removeClass('active');\n\t\t}\n\n\t\t/**\n * Collapses all expanded dropdowns\n *\n */\n\t\t, collapseAll: function collapseAll() {\n\t\t\tvar self = this;\n\n\t\t\tthis.activePrimaryNavItems().each(function (index, item) {\n\t\t\t\tself.collapse(item);\n\t\t\t});\n\t\t}\n\n\t\t/**\n * Comes in handy in preventing users from accidentally closing a dropdown by clicking after they hovered.\n *\n */\n\t\t, suppressClick: function suppressClick() {\n\t\t\tvar self = this;\n\n\t\t\tthis.clicksAreSuppressed = true;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tself.clicksAreSuppressed = false;\n\t\t\t}, 1000);\n\t\t},\n\n\t\turHere: function urHere($el) {\n\t\t\tif ($el) {\n\t\t\t\tif (typeof $el == 'string') {\n\t\t\t\t\t$el = $('[class*=\"-' + $el + ' \"]');\n\t\t\t\t} else {\n\t\t\t\t\t$el = $($el);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$el = $('[href$=\"' + document.location.pathname + '\"]');\n\t\t\t}\n\n\t\t\t$('.urHere', this.$el).removeClass('urHere');\n\t\t\t$el.children().first().parentsUntil(this.$el, 'li').addClass('urHere');\n\t\t}\n\t};\n\n\treturn Dropdown;\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 558 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t moment = __webpack_require__(546);\n\n\treturn Marionette.ItemView.extend({\n\t\tclassName: 'lenderActivityAbstractView vBlock',\n\n\t\tformatTimestamp: function formatTimestamp() {\n\t\t\treturn moment(this.model.get('timestamp')).fromNow(true);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 559 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar formatters = __webpack_require__(551),\n\t moment = __webpack_require__(546),\n\t numeral = __webpack_require__(73),\n\t _ = __webpack_require__(11),\n\t camelCaseToTitleCase = function camelCaseToTitleCase(text) {\n\t\t// so here the status is not provided!?\n\t\tif (!text) {\n\t\t\treturn 'Unknown';\n\t\t}\n\t\tvar result = text.replace(/([A-Z])/g, ' $1');\n\t\treturn result.charAt(0).toUpperCase() + result.slice(1);\n\t},\n\t colorSpan = function colorSpan(color, html) {\n\t\treturn '' + html + '';\n\t};\n\n\treturn {\n\n\t\tisWarningStatus: function isWarningStatus(loan) {\n\t\t\treturn loan.status === 'defaulted' || loan.statusDetail === 'issue_revising' || loan.delinquent;\n\t\t},\n\n\t\tisGoodStatus: function isGoodStatus(loan) {\n\t\t\treturn loan.status === 'raised' || loan.status === 'ended' || loan.status === 'payingBack' && !loan.delinquent;\n\t\t},\n\n\t\tloanStatusPrettyText: function loanStatusPrettyText(loan) {\n\t\t\t/*jshint maxcomplexity:12 */\n\t\t\tswitch (loan.status) {\n\t\t\t\tcase 'payingBack':\n\t\t\t\t\treturn 'Paying back ' + (loan.delinquent ? 'delinquent' : 'on time');\n\t\t\t\tcase 'fundRaising':\n\t\t\t\t\treturn (loan.inPfp ? 'Private' : 'Public') + ' fundraising';\n\t\t\t\tcase 'raised':\n\t\t\t\t\treturn 'Funded';\n\t\t\t\tcase 'ended':\n\t\t\t\t\treturn 'Repaid';\n\t\t\t\tcase 'defaulted':\n\t\t\t\t\treturn 'Ended in default';\n\t\t\t\tcase 'issue':\n\t\t\t\t\treturn loan.statusDetail === 'issue_revising' ? 'Issue flagged' : 'In Kiva review';\n\t\t\t\tcase 'inactive_expired':\n\t\t\t\t\treturn 'Rejected';\n\t\t\t\tcase 'inactive':\n\t\t\t\t\treturn 'In Kiva review';\n\t\t\t\tdefault:\n\t\t\t\t\treturn camelCaseToTitleCase(loan.status);\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @param loan\n * @param extraStatus\n * @param showExtra\n * @returns {*}\n */\n\t\t, loanStatusPretty: function loanStatusPretty(loan, extraStatus, showExtra) {\n\t\t\tvar color = null,\n\t\t\t text = null;\n\n\t\t\tif (!loan && extraStatus) {\n\t\t\t\t// display loanStatus property ( for borrower item view / loan application statuses )\n\t\t\t\tswitch (extraStatus) {\n\n\t\t\t\t\tcase 'open':\n\t\t\t\t\t\ttext = 'Application in progress';\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'review':\n\t\t\t\t\tcase 'review_hold':\n\t\t\t\t\t\ttext = 'In Kiva review';\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\ttext = camelCaseToTitleCase(extraStatus);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// build on the actual loan object\n\t\t\t\ttext = this.loanStatusPrettyText(loan);\n\t\t\t\tcolor = this.isWarningStatus(loan) ? 'red' : this.isGoodStatus(loan) ? 'green' : null;\n\n\t\t\t\tif (showExtra && loan.status === 'payingBack' && loan.delinquent) {\n\t\t\t\t\ttext += '
' + formatters.formatBcMoney(loan.arrearsAmount) + ' past due.';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn color ? colorSpan(color, text) : text;\n\t\t} // end loanStatusPretty\n\n\t\t/**\n * returns an array with a sub-key 'repayments'\n * @param loan\n * @param extra_params\n * @returns {*}\n */\n\t\t, serializeUpcomingRepayments: function serializeUpcomingRepayments(loan, extra_params) {\n\t\t\tif (loan.status === 'payingBack' || loan.status === 'defaulted') {\n\t\t\t\textra_params = _.extend({}, extra_params);\n\t\t\t\tvar overdue = !!numeral(loan.arrearsAmount && loan.arrearsAmount.amount).value();\n\t\t\t\tvar nextPayment = loan.terms.get('expectedPayments').find(function (payment) {\n\t\t\t\t\treturn payment ? moment(payment.get('effectiveDate')).isAfter() : false;\n\t\t\t\t});\n\t\t\t\tvar nextRepayment = nextPayment ? {\n\t\t\t\t\tamount: formatters.formatBcMoney(nextPayment.get('amount')),\n\t\t\t\t\tdueDate: moment(nextPayment.get('effectiveDate')).format('MMM D, YYYY')\n\t\t\t\t} : null;\n\n\t\t\t\treturn {\n\t\t\t\t\trepayments: _.extend(extra_params, !overdue ? nextRepayment : {\n\t\t\t\t\t\toverdue: true,\n\t\t\t\t\t\tamount: formatters.formatBcMoney(loan.arrearsAmount),\n\t\t\t\t\t\tnextRepayment: nextRepayment\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {};\n\t\t}\n\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 560 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/** poor man's lightbox component */\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t decision_lb = __webpack_require__(626);\n\n\tvar defaults = {\n\t\t'lightboxId': _.uniqueId(),\n\t\t'title': 'My Title',\n\t\t'message': 'My Message',\n\t\t'mainOptionButtonText': 'main option button text',\n\t\t'alternativeOptionButtonText': 'alternative option button text',\n\t\t'onClickMain': function onClickMain() {},\n\t\t'onClickAlt': function onClickAlt() {}\n\t};\n\n\tvar onRender = function onRender(context) {\n\n\t\tcontext = _.extend(defaults, context);\n\n\t\tvar $lb = $(decision_lb.render(context));\n\t\t$lb.foundation('reveal', 'open').on('opened.fndtn.reveal', function () {\n\t\t\tvar $mainBtn = $('.main-option', $lb),\n\t\t\t $altBtn = $('.alternative-option', $lb);\n\n\t\t\t$mainBtn.click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tcontext.onClickMain();\n\t\t\t\t$lb.foundation('reveal', 'close');\n\t\t\t});\n\n\t\t\t$altBtn.click(function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tcontext.onClickAlt();\n\t\t\t\t$lb.foundation('reveal', 'close');\n\t\t\t});\n\t\t});\n\t};\n\n\treturn {\n\t\trender: onRender\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 561 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t _ = __webpack_require__(11),\n\t uri = __webpack_require__(52);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(628),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tevents: {\n\t\t\t'click': 'handleNavClick'\n\t\t},\n\n\t\tabsoluteUrl: function absoluteUrl(url, current) {\n\t\t\tcurrent = current || uri();\n\t\t\treturn uri(url).host ? url : current.protocol + '://' + current.host + url;\n\t\t},\n\n\t\tsetCurrentHref: function setCurrentHref(href) {\n\t\t\tthis.model.set('active', this.absoluteUrl(href));\n\t\t\tthis.render();\n\t\t},\n\n\t\thandleNavClick: function handleNavClick(event) {\n\t\t\tvar href = this.$(event.target).attr('href');\n\t\t\tif (href && href.length && href[0] !== '#') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.trigger('navigate', event.target.href);\n\t\t\t}\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tvar context = {};\n\t\t\tvar current = uri();\n\t\t\tvar self = this;\n\n\t\t\tvar active_tree = _.find(data.links, function (link) {\n\t\t\t\treturn link.links ? _.findWhere(link.links, { url: data.active }) : false;\n\t\t\t});\n\n\t\t\tcontext['bar-links'] = _.map(data.links, function (link) {\n\t\t\t\treturn {\n\t\t\t\t\turl: self.absoluteUrl(link.url, current),\n\t\t\t\t\ttitle: link.title,\n\t\t\t\t\tactive: active_tree ? link.url === active_tree.url : false\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tif (active_tree) {\n\t\t\t\tcontext['main-title'] = active_tree.title;\n\t\t\t\tcontext['drop-links'] = _.sortBy(context['bar-links'], function (link) {\n\t\t\t\t\treturn !link.active;\n\t\t\t\t});\n\t\t\t\tcontext['drop-links'][0]['sub-links'] = _.map(active_tree.links, function (link) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\turl: self.absoluteUrl(link.url, current),\n\t\t\t\t\t\t'sub-title': link.title,\n\t\t\t\t\t\t'sub-active': link.url === data.active\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn context;\n\t\t}\n\n\t\t/**\n *\n * @param options - should be the same as what is passed into TertiaryNavView\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tthis.model.set({\n\t\t\t\tactive: this.absoluteUrl(options.active),\n\t\t\t\tlinks: options.links\n\t\t\t});\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 562 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t _ = __webpack_require__(11),\n\t uri = __webpack_require__(52);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(629),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tevents: {\n\t\t\t'click': 'handleNavClick'\n\t\t},\n\n\t\tabsoluteUrl: function absoluteUrl(url, current) {\n\t\t\tcurrent = current || uri();\n\t\t\treturn uri(url).host ? url : current.protocol + '://' + current.host + url;\n\t\t},\n\n\t\tsetCurrentHref: function setCurrentHref(href) {\n\t\t\tthis.model.set('active', this.absoluteUrl(href));\n\t\t\tthis.render();\n\t\t},\n\n\t\thandleNavClick: function handleNavClick(event) {\n\t\t\tvar href = this.$(event.target).attr('href');\n\t\t\tif (href && href.length && href[0] !== '#') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.trigger('navigate', event.target.href);\n\t\t\t}\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tvar context = {};\n\t\t\tvar current = uri();\n\t\t\tvar self = this;\n\n\t\t\tvar active_tree = _.find(data.links, function (link) {\n\t\t\t\treturn link.links ? _.findWhere(link.links, { url: data.active }) : false;\n\t\t\t});\n\n\t\t\tif (active_tree) {\n\t\t\t\tcontext['bar-sub-links'] = _.map(active_tree.links, function (link) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\turl: self.absoluteUrl(link.url, current),\n\t\t\t\t\t\t'sub-title': link.title,\n\t\t\t\t\t\t'sub-active': link.url === data.active,\n\t\t\t\t\t\t'new-window': link['new-window']\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn context;\n\t\t}\n\n\t\t/**\n *\n * @param options - should be the same as what is passed into SecondaryNavView\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tthis.model.set({\n\t\t\t\tactive: this.absoluteUrl(options.active),\n\t\t\t\tlinks: options.links\n\t\t\t});\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 563 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*tombstone inserted 2018-08-08*/try {\n\t/*global tombstone*/tombstone('/sites/www_kiva/client/src/views/components/Checkout/ReserveMessageView.js');\n} catch (e) {}\n/* global console, $ */\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t moment = __webpack_require__(546),\n\t _ = __webpack_require__(11);\n\n\t// ItemView\n\treturn Marionette.LayoutView.extend({\n\n\t\ttemplate: __webpack_require__(638),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tif (data.expiryTime !== null && !data.not_reserved) {\n\t\t\t\tvar time_left = moment(data.expiryTime) - moment();\n\n\t\t\t\tif (time_left < 0) {\n\t\t\t\t\t//A negative time left means the loan is no longer reserved\n\t\t\t\t\tdata.not_reserved = true;\n\t\t\t\t} else {\n\t\t\t\t\t// set the message for remaining reserved time\n\t\t\t\t\tdata.reserved_for = moment(data.expiryTime).fromNow(true);\n\t\t\t\t\t// set red class via warning variable\n\t\t\t\t\tdata.time_left_warning = data.isEndingSoon;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.model.set(_.pick(options, 'expiryTime', 'isEndingSoon', 'not_reserved'));\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 564 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*tombstone inserted 2018-08-08*/try {\n\t/*global tombstone*/tombstone('/sites/www_kiva/client/src/views/components/Checkout/CheckoutTotals.js');\n} catch (e) {}\n/* global console, wwwApp, Foundation */\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(647),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tevents: {\n\t\t\t'change #donation-edit-amount': '_updateModelDonation',\n\t\t\t'click .donation-update-button': '_handleDonationUpdate'\n\t\t},\n\n\t\tmodelEvents: {\n\t\t\t'change': 'render'\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar totalsModel = this.model.toJSON();\n\n\t\t\t/* Available keys\n \tbonusAppliedTotal, bonusAvailableTotal, creditAmountNeeded, creditAppliedTotal, creditAvailableTotal\n \tdonationTotal, freeTrialAppliedTotal, freeTrialAvailableTotal, itemTotal\n \tkivaCardTotal, kivaCreditAppliedTotal, kivaCreditAvailableTotal, loanReservationTotal\n \tredemptionCodeAppliedTotal, redemptionCodeAvailableTotal\n */\n\n\t\t\tvar totalsObj = {\n\t\t\t\tis_logged_in: wwwApp.conf.get('logged_in'),\n\t\t\t\ttotals: {\n\t\t\t\t\torder_total: totalsModel.totals.itemTotal,\n\t\t\t\t\tgrand_total: totalsModel.totals.creditAmountNeeded,\n\t\t\t\t\tfree_credit: parseFloat(totalsModel.totals.bonusAvailableTotal) != 0 ? totalsModel.totals.bonusAvailableTotal : 0,\n\t\t\t\t\tkiva_credit_remaining: parseFloat(totalsModel.totals.kivaCreditAvailableTotal) - parseFloat(totalsModel.totals.kivaCreditAppliedTotal),\n\t\t\t\t\tkiva_credit_applied_total: parseFloat(totalsModel.totals.kivaCreditAppliedTotal) != 0 ? totalsModel.totals.kivaCreditAppliedTotal : 0,\n\t\t\t\t\tkiva_credit_applicable_total: '',\n\t\t\t\t\tkiva_credit_available_total: parseFloat(totalsModel.totals.kivaCreditAvailableTotal) != 0 ? totalsModel.totals.kivaCreditAvailableTotal : 0,\n\t\t\t\t\tnegative_kiva_credit: ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn totalsObj;\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.store = options.store;\n\n\t\t\tvar self = this;\n\n\t\t\tthis.store.subscribe(['totals.itemTotal'], function (state) {\n\t\t\t\tself.model.set('totals', state.totals);\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 565 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backbone = __webpack_require__(20),\n\t Marionette = __webpack_require__(209),\n\t ClickableView = __webpack_require__(547),\n\t $ = __webpack_require__(0);\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: __webpack_require__(668),\n\n\t\t_handleFavoriteToggle: function _handleFavoriteToggle() {\n\t\t\tthis.trigger('toggle:favorite', this.model.get('is_favorite'));\n\t\t},\n\n\t\tupdateFavoriteStatus: function updateFavoriteStatus(is_favorite) {\n\t\t\t$('#' + this.favoriteButton.$el.attr('data-selector')).remove();\n\t\t\tthis.needs_reflow = true;\n\n\t\t\tthis.model.set('is_favorite', is_favorite);\n\t\t\tthis.render();\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.favoriteButton = new ClickableView({ el: this.$('.favorite-link') });\n\t\t\tthis.listenTo(this.favoriteButton, 'clicked', this._handleFavoriteToggle);\n\n\t\t\t/*if (this.needs_reflow) {\n \tthis.$el.foundation('tooltip', 'reflow');\n \tthis.needs_reflow = false;\n }*/\n\t\t},\n\n\t\tsetTouch: function setTouch() {\n\n\t\t\tthis.model.set('is_touch', $('html').hasClass('touch'));\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tthis.needs_reflow = false;\n\t\t\tthis.model = new Backbone.Model(options.data);\n\t\t\tthis.setTouch();\n\t\t\tthis.render();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 566 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backbone = __webpack_require__(20),\n\t Marionette = __webpack_require__(209),\n\t numeral = __webpack_require__(73),\n\t ClickableView = __webpack_require__(547);\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: __webpack_require__(669),\n\n\t\tpartials: {\n\t\t\t'molecules-loading-spinner': __webpack_require__(548)\n\t\t},\n\n\t\t_handleLend: function _handleLend() {\n\t\t\tthis.model.set('is_adding', true);\n\t\t\tthis.render();\n\n\t\t\tthis.trigger('lend');\n\t\t},\n\n\t\tupdateBasketStatus: function updateBasketStatus(basket_amount) {\n\t\t\tvar amount = numeral(this.model.get('amount_in_basket')).add(basket_amount);\n\t\t\tthis.model.set({\n\t\t\t\t'is_in_basket': amount.value() > 0,\n\t\t\t\t'amount_in_basket': amount.value(),\n\t\t\t\t'is_adding': false\n\t\t\t});\n\t\t\tthis.render();\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.lendButton = new ClickableView({ el: this.$('.lend-button') });\n\t\t\tthis.listenTo(this.lendButton, 'clicked', this._handleLend);\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tnumeral.defaultFormat('$0,0[.]00');\n\n\t\t\tif (data.amount_in_basket !== undefined) {\n\t\t\t\tdata.amount_in_basket = numeral(data.amount_in_basket).format();\n\t\t\t}\n\n\t\t\tdata.basket_url = wwwApp.url('basket', 'basket');\n\t\t\tdata.borrower_url = wwwApp.url('businesses', 'loanView', { loanId: data.id });\n\n\t\t\tdata.img = {\n\t\t\t\t'loader': {\n\t\t\t\t\tsrc: wwwApp.staticUrl('img/loading.gif')\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (!data.is_adding && !data.is_lent_to && !data.is_in_basket && !data.is_ended) {\n\t\t\t\tdata.is_regular = true;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tthis.model = new Backbone.Model(options.data);\n\t\t\tthis.render();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 567 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);if(t.s(t.f(\"is_admin\",c,p,1),c,p,0,142,424,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"show_loan_length\",c,p,1),c,p,0,646,702,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t
\");t.b(t.v(t.f(\"loan_length\",c,p,0)));t.b(\"
\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"show_loan_length\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"is_expiring_soon\",c,p,1),c,p,0,774,849,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t
\");t.b(t.v(t.f(\"expiring_soon_message\",c,p,0)));t.b(\"
\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t\t
\");t.b(\"\\n\" + i);t.b(\"\t\t
\");t.b(\"\\n\" + i);t.b(t.rp(\"\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"location_label\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t\t

\");t.b(t.v(t.f(\"use\",c,p,0)));t.b(\"

\");t.b(\"\\n\" + i);if(t.s(t.f(\"is_expiring_soon\",c,p,1),c,p,0,1334,1405,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t
\");t.b(t.v(t.f(\"expiring_soon_message\",c,p,0)));t.b(\"
\");t.b(\"\\n\" + i);});c.pop();}t.b(\"
\");t.b(\"\\n\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);if(t.s(t.f(\"partnerName\",c,p,1),c,p,0,1526,1604,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\tField Partner\");t.b(\"\\n\" + i);t.b(\"\t\t\t

\");t.b(t.v(t.f(\"partnerName\",c,p,0)));t.b(\"

\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"trusteeName\",c,p,1),c,p,0,1639,1711,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\tTrustee\");t.b(\"\\n\" + i);t.b(\"\t\t\t

\");t.b(t.v(t.f(\"trusteeName\",c,p,0)));t.b(\"

\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\" + i);t.b(\"\t\tLoan length\");t.b(\"\\n\" + i);t.b(\"\t\t

\");t.b(t.v(t.f(\"lenderRepaymentTerm\",c,p,0)));t.b(\" months

\");t.b(\"\\n\" + i);t.b(\"\t
\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\");return t.fl(); },partials: {\"\\n\\t\\n\\n
\\n {{name}}\\n
\\n\\t\\t\\t{{location_label}}\\n
\\n\\n\\t\\t

{{use}}

\\n\\t\\t{{#is_expiring_soon}}\\n\\t\\t\\t
{{expiring_soon_message}}
\\n\\t\\t{{/is_expiring_soon}}\\n
\\n\\n\\n\\t
\\n\\t\\t{{#partnerName}}\\n\\t\\t\\tField Partner\\n\\t\\t\\t

{{partnerName}}

\\n\\t\\t{{/partnerName}}\\n\\t\\t{{#trusteeName}}\\n\\t\\t\\tTrustee\\n\\t\\t\\t

{{trusteeName}}

\\n\\t\\t{{/trusteeName}}\\n\\t
\\n\\t
\\n\\t\\tLoan length\\n\\t\\t

{{lenderRepaymentTerm}} months

\\n\\t
\\n\\n \\n
\\n
\\n\", H);return T; }();\n\n/***/ }),\n/* 568 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t ClickableView = __webpack_require__(547),\n\t scrollEvent = __webpack_require__(676);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(677),\n\n\t\t_handleNewSearch: function _handleNewSearch() {\n\t\t\tthis.trigger('start-new-search');\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.newSearchLink = new ClickableView({ el: this.$('.all-loans-link') });\n\t\t\tthis.listenTo(this.newSearchLink, 'clicked', this._handleNewSearch);\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tscrollEvent.init();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 569 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
\");t.b(\"\\n\" + i);t.b(\"\t\");if(t.s(t.f(\"is_new_loan_card\",c,p,1),c,p,0,110,151,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"
 
\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t
Loan / country
\");t.b(\"\\n\" + i);t.b(\"\t
Partner / Trustee
\");t.b(\"\\n\" + i);t.b(\"\t
Loan length
\");t.b(\"\\n\" + i);t.b(\"
\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);if(t.s(t.f(\"loans\",c,p,1),c,p,0,528,600,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
  • \");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/04-loancards/00-loancard-listing0\",c,p,\"\t\t\t\"));t.b(\"\t\t
  • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"if-no-results\",c,p,1),c,p,0,631,681,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/07-messaging/01-no-results1\",c,p,\"\t\t\"));});c.pop();}t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/10-lend/03-paging2\",c,p,\"\"));return t.fl(); },partials: {\"<02-organisms/04-loancards/00-loancard-listing0\":{name:\"02-organisms/04-loancards/00-loancard-listing\", partials: {}, subs: { }},\"<01-molecules/07-messaging/01-no-results1\":{name:\"01-molecules/07-messaging/01-no-results\", partials: {}, subs: { }},\"<02-organisms/10-lend/03-paging2\":{name:\"02-organisms/10-lend/03-paging\", partials: {}, subs: { }}}, subs: { }}, \"
    \\n\\t{{#is_new_loan_card}}
     
    {{/is_new_loan_card}}\\n\\t
    Loan / country
    \\n\\t
    Partner / Trustee
    \\n\\t
    Loan length
    \\n
    \\n\\n\\n\\t{{#loans}}\\n\\t\\t
  • \\n\\t\\t\\t{{> 02-organisms/04-loancards/00-loancard-listing}}\\n\\t\\t
  • \\n\\t{{/loans}}\\n\\n\\t{{#if-no-results}}\\n\\t\\t{{> 01-molecules/07-messaging/01-no-results}}\\n\\t{{/if-no-results}}\\n\\n\\n\\n{{> 02-organisms/10-lend/03-paging}}\", H);return T; }();\n\n/***/ }),\n/* 570 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\", H);return T; }();\n\n/***/ }),\n/* 571 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t _ = __webpack_require__(11);\n\n\treturn Marionette.ItemView.extend({\n\n\t\tevents: {\n\t\t\tchange: '_handleChange'\n\n\t\t\t/*\n * Sets attribtues to the model, but does not lead to an executed search\n */\n\t\t}, setValue: function setValue(name, value) {\n\t\t\t_.each(this.el.querySelectorAll('[value=\\'' + value + '\\']'), function (el) {\n\t\t\t\tel.checked = true;\n\t\t\t});\n\t\t},\n\n\t\tcoerceValue: function coerceValue(name, value) {\n\t\t\tvar retVal = value;\n\n\t\t\tif (name === 'gender' && value === 'men') {\n\t\t\t\tretVal = 'male';\n\t\t\t} else if (name === 'gender' && value === 'women') {\n\t\t\t\tretVal = 'female';\n\t\t\t} else if (name === 'gender' && value === 'nonbinary') {\n\t\t\t\tretVal = 'nonbinary';\n\t\t\t} else if (name === 'distributionModel' && value === 'field-partner') {\n\t\t\t\tretVal = 'field_partner';\n\t\t\t}\n\n\t\t\treturn retVal;\n\t\t},\n\n\t\t_handleChange: function _handleChange(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (event.target.value === 'none') {\n\t\t\t\tthis.trigger('unset', { name: event.target.name });\n\t\t\t} else {\n\t\t\t\tthis.trigger('change', { name: event.target.name, value: event.target.value });\n\t\t\t}\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 572 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

    \");t.b(t.t(t.f(\"descriptionTitle\",c,p,0)));t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

    \");t.b(t.t(t.f(\"descriptionText\",c,p,0)));t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t{{!The content within this div is the only change from the copy and pasted lightbox atom. If you need to\\n\\t\\t\\t\\t make changes to this lightbox outside of this div, those changes need to be made to every lightbox file within the\\n\\t\\t\\t\\t Molecules/10-lightbox folder. }}\\n\\t\\t\\t\\t

    {{{descriptionTitle}}}

    \\n\\t\\t\\t\\t

    {{{descriptionText}}}

    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \", H);return T; }();\n\n/***/ }),\n/* 573 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*global wwwApp*/\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0);\n\n\treturn {\n\t\tinit: function init() {\n\t\t\tthis.userSawTipMsg = false;\n\t\t},\n\n\t\ttipMsgOnFirstFavorite: function tipMsgOnFirstFavorite(untag) {\n\t\t\tif (!untag) {\n\t\t\t\t// only show the tip message if they are trying to favorite a loan (not un-favorite)\n\t\t\t\ttry {\n\t\t\t\t\tif (!sessionStorage.userFavoritedLoan) {\n\t\t\t\t\t\tsessionStorage.userFavoritedLoan = true;\n\t\t\t\t\t\twwwApp.tipMsg('This loan has been added to your \"Saved loans\" list, which is accessible under the \"Lend\" menu in the header.');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (!this.userSawTipMsg) {\n\t\t\t\t\t\tthis.userSawTipMsg = true;\n\t\t\t\t\t\twwwApp.tipMsg('This loan has been added to your \"Saved loans\" list, which is accessible under the \"Lend\" menu in the header.');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfavoriteLoan: function favoriteLoan(loanId, untag) {\n\t\t\tvar ajaxCall = $.ajax({\n\t\t\t\turl: wwwApp.ajaxUrl('saveUserFavorite'),\n\t\t\t\ttype: 'post',\n\t\t\t\tdata: {\n\t\t\t\t\tentity_id: loanId,\n\t\t\t\t\tuntag: untag\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar self = this;\n\t\t\tajaxCall.done(function () {\n\t\t\t\tself.tipMsgOnFirstFavorite(untag);\n\t\t\t});\n\n\t\t\treturn ajaxCall;\n\t\t}\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 574 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t _ = __webpack_require__(11),\n\t $ = __webpack_require__(0);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(575),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tevents: {\n\t\t\t'click a': '_handlePageClick'\n\t\t},\n\n\t\t_handlePageClick: function _handlePageClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar $link = $(event.target);\n\n\t\t\tif (!$link.hasClass('disabled')) {\n\t\t\t\tif ($link.hasClass('prev-page')) {\n\t\t\t\t\tthis.trigger('page-change', this.model.get('current_page') - 1);\n\t\t\t\t} else if ($link.hasClass('next-page')) {\n\t\t\t\t\tthis.trigger('page-change', this.model.get('current_page') + 1);\n\t\t\t\t} else if ($link.hasClass('page-number')) {\n\t\t\t\t\tthis.trigger('page-change', parseInt($link.text()));\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tvar current = data.current_page;\n\t\t\tvar total = data.num_pages;\n\t\t\tvar numbers, pages;\n\n\t\t\tif (total < 7) {\n\t\t\t\tnumbers = _.range(1, total + 1);\n\t\t\t} else {\n\t\t\t\tif (current === 1 || current === 2) {\n\t\t\t\t\tnumbers = _.range(1, 6);\n\t\t\t\t} else if (current === total - 1 || current === total) {\n\t\t\t\t\tnumbers = _.range(total - 4, total + 1);\n\t\t\t\t} else {\n\t\t\t\t\tnumbers = _.range(current - 2, current + 3);\n\t\t\t\t}\n\n\t\t\t\tnumbers = numbers.concat([1, total]); // add the first and last page numbers\n\t\t\t\tnumbers.sort(function (a, b) {\n\t\t\t\t\treturn a - b;\n\t\t\t\t}); // sort by number\n\t\t\t\tnumbers = _.uniq(numbers, true); // remove duplicates\n\n\t\t\t\tif (numbers[1] !== 2) {\n\t\t\t\t\tnumbers.splice(1, 0, 0); // add a placeholder for first ellipsis\n\t\t\t\t}\n\t\t\t\tif (numbers[numbers.length - 2] !== total - 1) {\n\t\t\t\t\tnumbers.splice(numbers.length - 1, 0, 0); // add a placeholder for last ellipsis\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpages = _.map(numbers, function (number) {\n\t\t\t\tif (number) {\n\t\t\t\t\treturn { number: number, current: current === number };\n\t\t\t\t} else {\n\t\t\t\t\treturn { ellipsis: true };\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tshow_pagination: total > 1,\n\t\t\t\tfirst_page: current === 1,\n\t\t\t\tlast_page: current === total,\n\t\t\t\tpages: pages\n\t\t\t};\n\t\t}\n\n\t\t/**\n *\n * @param options - should be the same as what is passed into SecondaryNavView\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tthis.model.set(options);\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 575 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\", H);return T; }();\n\n/***/ }),\n/* 576 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n// @TOOD - taking an exception here and mixing logic with templates cause I don't have time and I just need to get something working...\n\n/**\n * Helper function for rendering views.\n *\n */\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t htmlCheckablesTpl = '
    \">' + '<% _.each(inputs, function (input) {%>' + '
    ' + '\" name=\"<%= input.name %>\" id=\"<%= input.id %>\" value=\"<%= input.value %>\" <%= input.checked ? \\'checked\\' : \\'\\'%>>' + '' + '
    ' + '<% }) %>' + '
    ',\n\t htmlCheckableTpl = '\" name=\"<%= input.name %>\" id=\"<%= input.id %>\" value=\"<%= input.value %>\" <%= input.checked ? \\'checked\\' : \\'\\'%>>' + '\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t\tLender messages shouldn't be used for self-promotion, advertising or solicitation. More information can be found in Kiva's community guidelines.\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);};};};t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"{{#is-styleguide}}\\n Compose a lender message\\n{{/is-styleguide}}\\n\\n
    \\n
    \\n
    \\n \\n \\n \\n \\n \\n
    \\n\\t\\t\\t\\t{{#no-loans}}\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t

    You need to make a loan before you can send a message.

    \\n\\t\\t\\t\\t\\t\\t

    In order to send a message, you will need to make a loan using your own funds first. This helps us prevent spam and unwanted messages.

    \\n\\t\\t\\t\\t\\t\\t

    Please make a loan first (note that loans made with bonus credit are not eligible) and then try your message again!

    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t{{/no-loans}}\\n\\t\\t\\t\\t{{^no-loans}}{{#sender-anonymous}}\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t

    You need a public profile to send messages.

    \\n\\t\\t\\t\\t\\t\\t

    Your lender profile is anonymous. You must have a public lender profile to use lender messages. Update your profile settings, go to your account settings.

    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t{{/sender-anonymous}}{{/no-loans}}\\n\\t\\t\\t\\t{{^no-loans}}{{^sender-anonymous}}{{#recipient-anonymous}}\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t

    The recipient is anonymous and does not accept messages.

    \\n\\t\\t\\t\\t\\t\\t

    Sorry, you can't send a message to this lender at this time.

    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t{{/recipient-anonymous}}{{/sender-anonymous}}{{/no-loans}}\\n\\t\\t\\t\\t{{^sender-anonymous}}{{^recipient-anonymous}}{{^no-loans}}\\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    {{location}}
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    {{location}}
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tLender messages shouldn't be used for self-promotion, advertising or solicitation. More information can be found in Kiva's community guidelines.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t\\t
    \\n\\t\\t\\t\\t{{/no-loans}}{{/recipient-anonymous}}{{/sender-anonymous}}\\n
    \\n
    \\n
    \\n
    \", H);return T; }();\n\n/***/ }),\n/* 707 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"other-lender\",c,p,1),c,p,0,93,230,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"other-lender\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");t.b(\"\\n\" + i);};t.b(\"\t\t
    Date: \");t.b(t.v(t.f(\"date\",c,p,0)));t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"is-sent\",c,p,1),c,p,0,445,447,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"To\");});c.pop();}if(!t.s(t.f(\"is-sent\",c,p,1),c,p,1,0,0,\"\")){t.b(\"From\");};t.b(\": \");t.b(\"\\n\" + i);if(t.s(t.f(\"other-lender\",c,p,1),c,p,0,517,615,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");if(t.s(t.f(\"location\",c,p,1),c,p,0,570,598,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" | \");t.b(t.v(t.f(\"location\",c,p,0)));t.b(\"\");});c.pop();}t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"other-lender\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\tAnonymous\");t.b(\"\\n\" + i);};t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.t(t.f(\"message-body\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);if(!t.s(t.f(\"is-sent\",c,p,1),c,p,1,0,0,\"\")){t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\t\tReply\");t.b(\"\\n\" + i);t.b(\" Delete\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);};t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t
    \\n\\t\\t{{#other-lender}}\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t{{/other-lender}}\\n\\t\\t{{^other-lender}}\\n\\t\\t\\t\\n\\t\\t{{/other-lender}}\\n\\t\\t
    Date: {{date}}
    \\n\\t\\t
    \\n\\t\\t\\t{{#is-sent}}To{{/is-sent}}{{^is-sent}}From{{/is-sent}}: \\n\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t{{name}}\\n\\t\\t\\t\\t{{#location}} | {{location}}{{/location}}\\n\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t{{^other-lender}}\\n\\t\\t\\t\\tAnonymous\\n\\t\\t\\t{{/other-lender}}\\n\\t\\t
    \\n\\t
    \\n\\t

    \\n\\t\\t{{{message-body}}}\\n\\t

    \\n {{^is-sent}}\\n
    \\n\\t\\t\\tReply\\n Delete\\n
    \\n {{/is-sent}}\\n\\t
    \\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 708 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\t\");if(t.s(t.f(\"sentMessages\",c,p,1),c,p,0,73,86,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Sent messages\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\");if(!t.s(t.f(\"sentMessages\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Inbox\");};t.b(\"\\n\" + i);if(!t.s(t.f(\"loading\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");if(t.s(t.f(\"message-count\",c,p,1),c,p,0,182,202,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" (\");t.b(t.v(t.f(\"message-count\",c,p,0)));t.b(\")\");});c.pop();}t.b(\"\\n\" + i);};t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(!t.s(t.f(\"loading\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"message-count\",c,p,1),c,p,0,309,390,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tShowing \");t.b(t.v(t.f(\"first-on-page\",c,p,0)));t.b(\"-\");t.b(t.v(t.f(\"last-on-page\",c,p,0)));t.b(\" of \");t.b(t.v(t.f(\"message-count\",c,p,0)));t.b(\" messages\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"message-count\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t0 messages\");t.b(\"\\n\" + i);};};t.b(\"\t\");t.b(\"\\n\" + i);t.b(\" \");if(!t.s(t.f(\"sentMessages\",c,p,1),c,p,1,0,0,\"\")){t.b(\"

    Lender messages should always abide by Kiva's community guidelines.

    \");};t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner0\",c,p,\"\t\t\t\"));t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
      \");t.b(\"\\n\" + i);if(t.s(t.f(\"messages\",c,p,1),c,p,0,920,998,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t
    • \");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/21-messages/01-lender-message1\",c,p,\"\t\t\t\t\t\"));t.b(\"\t\t\t\t
    • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(!t.s(t.f(\"loading\",c,p,1),c,p,1,0,0,\"\")){if(!t.s(t.f(\"message-count\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"sentMessages\",c,p,1),c,p,0,1083,1324,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t

    You haven't sent any lender messages.

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

    You can send a message directly from another lender's public profile, or by replying to a message you've received. You must have a public lender profile to use lender messages.

    \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"sentMessages\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t

    Lender messages allow you to communicate directly with other lenders through the Kiva website, building stronger community with one another. You can send a message directly from another lender's public profile, or by replying to a message you've received.

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

    You must have a public lender profile to use lender messages.

    \");t.b(\"\\n\" + i);};};};t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/05-navigation/07-pagination2\",c,p,\"\t\t\"));t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");return t.fl(); },partials: {\"<01-molecules/03-media/01-loading-spinner0\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }},\"<02-organisms/21-messages/01-lender-message1\":{name:\"02-organisms/21-messages/01-lender-message\", partials: {}, subs: { }},\"<01-molecules/05-navigation/07-pagination2\":{name:\"01-molecules/05-navigation/07-pagination\", partials: {}, subs: { }}}, subs: { }}, \"
    \\n\\t

    \\n\\t\\t{{#sentMessages}}Sent messages{{/sentMessages}}\\n\\t\\t{{^sentMessages}}Inbox{{/sentMessages}}\\n\\t\\t{{^loading}}\\n\\t\\t\\t{{#message-count}} ({{message-count}}){{/message-count}}\\n\\t\\t{{/loading}}\\n\\t

    \\n\\t\\n\\t\\t{{^loading}}\\n\\t\\t\\t{{#message-count}}\\n\\t\\t\\t\\tShowing {{first-on-page}}-{{last-on-page}} of {{message-count}} messages\\n\\t\\t\\t{{/message-count}}\\n\\t\\t\\t{{^message-count}}\\n\\t\\t\\t\\t0 messages\\n\\t\\t\\t{{/message-count}}\\n\\t\\t{{/loading}}\\n\\t\\n {{^sentMessages}}

    Lender messages should always abide by Kiva's community guidelines.

    {{/sentMessages}}\\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t\\t
    \\n\\t\\t
      \\n\\t\\t\\t{{#messages}}\\n\\t\\t\\t\\t
    • \\n\\t\\t\\t\\t\\t{{> 02-organisms/21-messages/01-lender-message }}\\n\\t\\t\\t\\t
    • \\n\\t\\t\\t{{/messages}}\\n\\t\\t
    \\n\\t
    \\n\\t{{^loading}}\\n\\t\\t{{^message-count}}\\n\\t\\t\\t{{#sentMessages}}\\n\\t\\t\\t\\t

    You haven't sent any lender messages.

    \\n\\t\\t\\t\\t

    You can send a message directly from another lender's public profile, or by replying to a message you've received. You must have a public lender profile to use lender messages.

    \\n\\t\\t\\t{{/sentMessages}}\\n\\t\\t\\t{{^sentMessages}}\\n\\t\\t\\t\\t

    Lender messages allow you to communicate directly with other lenders through the Kiva website, building stronger community with one another. You can send a message directly from another lender's public profile, or by replying to a message you've received.

    \\n\\t\\t\\t\\t

    You must have a public lender profile to use lender messages.

    \\n\\t\\t\\t{{/sentMessages}}\\n\\t\\t{{/message-count}}\\n\\t{{/loading}}\\n\\t
    \\n\\t\\t{{> 01-molecules/05-navigation/07-pagination }}\\n\\t
    \\n
    \\n
    \", H);return T; }();\n\n/***/ }),\n/* 709 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'account/messages': 'showInboxView',\n\t\t\t'account/messages/sent': 'showSentMessagesView'\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 710 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t $ = __webpack_require__(0),\n\t coercions = __webpack_require__(549),\n\t Backbone = __webpack_require__(20),\n\t Marionette = __webpack_require__(209),\n\t PortfolioView = __webpack_require__(506);\n\n\t// constant for number of loans to show on each page\n\tvar LIMIT = 20;\n\n\treturn Marionette.Controller.extend({\n\n\t\tdefaultLoanFilters: {\n\t\t\tiDisplayStart: 0,\n\t\t\tiDisplayLength: LIMIT\n\t\t},\n\n\t\tshowLoansView: function showLoansView(params) {\n\t\t\tthis._getCountries();\n\t\t\tthis._getPartners();\n\t\t\tthis._executeLoanSearch();\n\t\t},\n\n\t\t_executeLoanSearch: function _executeLoanSearch() {\n\t\t\tthis._startLoading();\n\t\t\tif (this.lastLoanSearchRequest) {\n\t\t\t\tthis.lastLoanSearchRequest.abort();\n\t\t\t}\n\t\t\tthis.lastLoanSearchRequest = $.getJSON('/portfolio/loans/data', this.loanFilters.toJSON()).done(this._handleLoanSearchDone).always(this._stopLoading);\n\t\t},\n\n\t\t_getCountries: function _getCountries() {\n\t\t\tthis._startLoading();\n\t\t\t$.getJSON('/ajax/' + this.options.moduleData.public_id + '/v6/mycountries.js').done(this._handleGetCountriesDone).always(this._stopLoading);\n\t\t},\n\n\t\t_getPartners: function _getPartners() {\n\t\t\tthis._startLoading();\n\t\t\t$.getJSON('/ajax/' + this.options.moduleData.public_id + '/v6/mypartners.js').done(this._handleGetPartnersDone).always(this._stopLoading);\n\t\t},\n\n\t\t_handleFilterChange: function _handleFilterChange(name, value) {\n\t\t\tif (name !== 'queryString' && value === 'all' || value === '') {\n\t\t\t\tthis.loanFilters.unset(name);\n\t\t\t} else {\n\t\t\t\tthis.loanFilters.set(name, value);\n\t\t\t}\n\t\t\tthis.loanFilters.set('iDisplayStart', 0);\n\t\t\tthis._executeLoanSearch();\n\t\t},\n\n\t\t_handleFilterClear: function _handleFilterClear() {\n\t\t\tthis.loanFilters.clear();\n\t\t\tthis.loanFilters.set(this.defaultLoanFilters);\n\t\t\tthis._executeLoanSearch();\n\t\t},\n\n\t\t_handleGetCountriesDone: function _handleGetCountriesDone(result) {\n\t\t\tif (result) {\n\t\t\t\tthis.view.setCountries(result);\n\t\t\t}\n\t\t},\n\n\t\t_handleGetPartnersDone: function _handleGetPartnersDone(result) {\n\t\t\tif (result) {\n\t\t\t\tthis.view.setPartners(result);\n\t\t\t}\n\t\t},\n\n\t\t_handleLoanSearchDone: function _handleLoanSearchDone(result) {\n\t\t\tthis.view.setLoans(result.aaData, result.iTotalRecords, this.loanFilters.get('iDisplayStart') / LIMIT + 1, Math.ceil(result.iTotalRecords / LIMIT));\n\t\t\tthis.lastLoanCount = result.iTotalRecords;\n\t\t},\n\n\t\t_handlePageChange: function _handlePageChange(page) {\n\t\t\tthis.loanFilters.set('iDisplayStart', (page - 1) * LIMIT);\n\t\t\tthis._executeLoanSearch();\n\t\t},\n\n\t\t_handleTeamAssign: function _handleTeamAssign(loan_id, team_id) {\n\t\t\tvar deferred = new $.Deferred();\n\n\t\t\t$.getJSON('/ajax/reassignTeamPurchases', {\n\t\t\t\tuser_id: this.options.moduleData.user_id,\n\t\t\t\tbusiness_id: loan_id,\n\t\t\t\tnew_team_id: team_id === 0 ? undefined : team_id\n\t\t\t}).done(function (result) {\n\t\t\t\tif (!result || result === '') {\n\t\t\t\t\tdeferred.reject(loan_id);\n\t\t\t\t} else if (result === -100) {\n\t\t\t\t\tdeferred.reject(loan_id, 'Please log in and try again.');\n\t\t\t\t} else if (result.num_purchases_changed > 0) {\n\t\t\t\t\tdeferred.resolve(result);\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.reject(loan_id);\n\t\t\t\t}\n\t\t\t}).fail(function () {\n\t\t\t\tdeferred.reject(loan_id);\n\t\t\t});\n\n\t\t\tdeferred.done(this._handleTeamAssignDone).fail(this._handleTeamAssignFailure);\n\t\t},\n\n\t\t_handleTeamAssignDone: function _handleTeamAssignDone(result) {\n\t\t\tif (result.new_team_id) {\n\t\t\t\tvar team = _.findWhere(this.options.moduleData.teams, { id: parseInt(result.new_team_id) });\n\t\t\t\t// TODO: Remove lending team name from tip message\n\t\t\t\t// TODO: set in context and add an class on the element surrounding the team name\n\t\t\t\twwwApp.tipMsg('Loan purchase reassigned to team ' + team.name + '.', 'confirmation');\n\t\t\t}\n\t\t},\n\n\t\t_handleTeamAssignFailure: function _handleTeamAssignFailure(loan_id, error) {\n\t\t\terror = typeof error === 'string' && error.length ? ' ' + error : '';\n\t\t\twwwApp.tipMsg('There was an error. The loan has not been assigned.' + error, 'warning');\n\t\t\tthis.view.resetTeam(loan_id);\n\t\t},\n\n\t\t_exportLoanData: function _exportLoanData() {\n\t\t\twindow.location.assign('/portfolio/loans/export?' + $.param(this.loanFilters.toJSON()));\n\t\t},\n\n\t\t_startLoading: function _startLoading() {\n\t\t\tthis.loadingCounter++;\n\t\t\tthis.view.setLoading(!!this.loadingCounter);\n\t\t},\n\n\t\t_stopLoading: function _stopLoading() {\n\t\t\tthis.loadingCounter = this.loadingCounter > 0 ? this.loadingCounter - 1 : 0;\n\t\t\tthis.view.setLoading(!!this.loadingCounter);\n\t\t\tvar noLoans = $('.no-loans');\n\n\t\t\tif (this.lastLoanCount === 0) {\n\t\t\t\tnoLoans.show();\n\t\t\t} else {\n\t\t\t\tnoLoans.hide();\n\t\t\t}\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.loadingCounter = 0;\n\t\t\tthis.defaultLoanFilters.user_id = options.moduleData.user_id;\n\t\t\tthis.loanFilters = new Backbone.Model(this.defaultLoanFilters);\n\n\t\t\tthis.view = new PortfolioView(_.extend({}, options.moduleData));\n\n\t\t\tthis.listenTo(this.view, 'team-assign', this._handleTeamAssign);\n\t\t\tthis.listenTo(this.view, 'filter-change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.view, 'filter-clear', this._handleFilterClear);\n\t\t\tthis.listenTo(this.view, 'export-loan-data', this._exportLoanData);\n\t\t\tthis.listenTo(this.view, 'page-change', this._handlePageChange);\n\n\t\t\t_.bindAll(this, '_handleGetCountriesDone', '_handleGetPartnersDone', '_handleLoanSearchDone', '_handleTeamAssignDone', '_handleTeamAssignFailure', '_stopLoading');\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 711 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t _ = __webpack_require__(11),\n\t LoanRowView = __webpack_require__(712),\n\t FiltersView = __webpack_require__(715),\n\t PaginationView = __webpack_require__(574);\n\n\treturn Marionette.CompositeView.extend({\n\n\t\ttemplate: __webpack_require__(717),\n\n\t\tpartials: {\n\t\t\t'01-molecules/03-media/01-loading-spinner': __webpack_require__(548)\n\t\t},\n\n\t\tchildView: LoanRowView,\n\n\t\tchildViewOptions: function childViewOptions() {\n\t\t\treturn _.pick(this.options, ['teams']);\n\t\t},\n\n\t\tchildViewContainer: 'tbody',\n\n\t\tchildEvents: {\n\t\t\t'team-assign': '_handleTeamAssign'\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [aria-controls=\"loan-filters\"]': '_handleFilterToggle',\n\t\t\t'click .filter-clear': '_handleFilterClear',\n\t\t\t'click .export-button': '_handleExportLoanData'\n\t\t},\n\n\t\tcollection: new Backbone.Collection(),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tresetTeam: function resetTeam(loan_id) {\n\t\t\tvar loan_row = this.children.find(function (view) {\n\t\t\t\treturn view.model.get('loan.id') === loan_id;\n\t\t\t});\n\t\t\tif (loan_row) {\n\t\t\t\tloan_row.resetTeam();\n\t\t\t}\n\t\t},\n\n\t\tsetCountries: function setCountries(countries) {\n\t\t\tthis.filtersView.setCountries(countries);\n\t\t},\n\n\t\tsetLoans: function setLoans(loans, loan_count, current_page, num_pages) {\n\t\t\tthis.model.set('single_loan', loan_count === 1);\n\t\t\tthis.model.set('loan_count', loan_count);\n\t\t\tthis.model.set('current_page', current_page);\n\t\t\tthis.model.set('num_pages', num_pages);\n\t\t\tthis.render();\n\t\t\tthis.collection.reset(loans);\n\t\t},\n\n\t\tsetLoading: function setLoading(loading) {\n\t\t\tif (loading !== this.model.get('loading')) {\n\t\t\t\tthis.model.set('loading', loading);\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t},\n\n\t\tsetPartners: function setPartners(partners) {\n\t\t\tthis.filtersView.setPartners(partners);\n\t\t},\n\n\t\t_bubbleFilterChange: function _bubbleFilterChange(name, value) {\n\t\t\tthis.trigger('filter-change', name, value);\n\t\t\tthis.model.set('filters_set', true);\n\t\t},\n\n\t\t_bubblePageChange: function _bubblePageChange(page) {\n\t\t\tthis.trigger('page-change', page);\n\t\t},\n\n\t\t_handleFilterClear: function _handleFilterClear(e) {\n\t\t\te.preventDefault();\n\t\t\tthis.trigger('filter-clear');\n\t\t\tthis.model.set('filters_set', false);\n\t\t\tthis.filtersView.clearFilters();\n\t\t},\n\n\t\t_handleFilterToggle: function _handleFilterToggle(e) {\n\t\t\te.preventDefault();\n\t\t\tvar $toggle = this.$('[aria-controls=\"loan-filters\"]');\n\t\t\tif ($toggle.attr('aria-expanded') === 'true') {\n\t\t\t\t$toggle.text('Hide filters');\n\t\t\t\tthis.model.set('filters_expanded', true);\n\t\t\t} else {\n\t\t\t\t$toggle.text('Filters');\n\t\t\t\tthis.model.set('filters_expanded', false);\n\t\t\t}\n\t\t},\n\n\t\t_handleTeamAssign: function _handleTeamAssign(child, loan_id, team_id) {\n\t\t\tthis.trigger('team-assign', loan_id, team_id);\n\t\t},\n\n\t\t_handleExportLoanData: function _handleExportLoanData() {\n\t\t\tthis.trigger('export-loan-data');\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.filtersView = new FiltersView(_.extend(this.options, { el: '.loans-filters-region' }, { filters_expanded: this.model.get('filters_expanded') }));\n\t\t\tthis.filtersView.render();\n\n\t\t\tthis.listenTo(this.filtersView, 'filter-change', this._bubbleFilterChange);\n\n\t\t\tthis.paginationView = new PaginationView({\n\t\t\t\tel: '.pagination-region',\n\t\t\t\tcurrent_page: this.model.get('current_page') || 0,\n\t\t\t\tnum_pages: this.model.get('num_pages') || 0\n\t\t\t});\n\t\t\tthis.paginationView.render();\n\n\t\t\tthis.listenTo(this.paginationView, 'page-change', this._bubblePageChange);\n\t\t},\n\n\t\tinitialize: function initialize(options) {}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 712 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t _ = __webpack_require__(11),\n\t $ = __webpack_require__(0),\n\t numeral = __webpack_require__(73),\n\t moment = __webpack_require__(546),\n\t repaymentsLightbox = __webpack_require__(713);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(714),\n\n\t\ttagName: 'tr',\n\n\t\tevents: {\n\t\t\t'change select[name=\"team-assignment\"]': '_handleTeamChange',\n\t\t\t'click .progress-amount a': '_handleRepaymentsLightbox'\n\t\t},\n\n\t\tresetTeam: function resetTeam() {\n\t\t\tif (this.previousTeams) {\n\t\t\t\tthis.model.set('teams', this.previousTeams);\n\t\t\t}\n\t\t\tthis.render();\n\t\t},\n\n\t\t_getImageContext: function _getImageContext(hash, size) {\n\t\t\treturn {\n\t\t\t\tsizes: [{ size: 'default', url: wwwApp.imageUrl(hash, 's' + size) }, { size: 'retina', url: wwwApp.imageUrl(hash, 's' + size * 2) }],\n\t\t\t\turl: wwwApp.imageUrl(hash, 's' + size)\n\t\t\t};\n\t\t},\n\n\t\t_handleTeamChange: function _handleTeamChange(event) {\n\t\t\tthis.previousTeams = this.model.get('teams') || [];\n\t\t\tvar team_id = numeral(event.target.value).value();\n\t\t\tvar new_team = _.findWhere(this.options.teams, { id: team_id });\n\t\t\tthis.model.set('teams', [new_team]);\n\t\t\tthis.trigger('team-assign', this.model.get('loan.id'), team_id);\n\t\t},\n\n\t\t_handleRepaymentsLightbox: function _handleRepaymentsLightbox(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar context = {\n\t\t\t\tcreditChanges: _.chain(this.model.get('creditChanges')).filter(function (cc) {\n\t\t\t\t\treturn _.contains(['loan_repayment', 'direct_loan_repayment', 'loan_repayment_currency_loss', 'direct_loan_repayment_currency_loss', 'promo_loan_currency_loss'], cc.type);\n\t\t\t\t}).sortBy(function (cc) {\n\t\t\t\t\treturn cc.createTime + (cc.type.indexOf('loss') !== -1 ? 0.5 : 0);\n\t\t\t\t}).map(function (cc) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdate: moment.unix(cc.createTime).format('MMM D, YYYY'),\n\t\t\t\t\t\tamount: numeral(cc.amount.amount).format('$0,0.00'),\n\t\t\t\t\t\tloss: cc.type.indexOf('loss') !== -1\n\t\t\t\t\t};\n\t\t\t\t}).value()\n\t\t\t};\n\n\t\t\t$(repaymentsLightbox.render(context)).foundation('reveal', 'open');\n\t\t},\n\n\t\t_serializeBasicProperties: function _serializeBasicProperties(loan) {\n\t\t\treturn _.pick(loan, ['activity', 'canChangeTeamAssignment', 'dedication', 'id', 'lenderRepaymentTerm', 'geocode', 'matchedLoan', 'name', 'partnerName', 'promoTypeType', 'statusHuman', 'trusteeName']);\n\t\t},\n\n\t\t_serializeLoanAmount: function _serializeLoanAmount(loan) {\n\t\t\treturn {\n\t\t\t\tloanAmount: numeral(loan.loanAmount.amount).format()\n\t\t\t};\n\t\t},\n\n\t\t_serializeLoanDetails: function _serializeLoanDetails(loan) {\n\t\t\tvar partner_url, dedication;\n\n\t\t\tif (_.isNumber(loan.partnerId)) {\n\t\t\t\tpartner_url = wwwApp.url('partner', 'partner', { id: loan.partnerId });\n\t\t\t} else {\n\t\t\t\tpartner_url = wwwApp.url('trustee', 'profile', { trusteeId: loan.trusteeId });\n\t\t\t}\n\n\t\t\tif (loan.dedication) {\n\t\t\t\tif (loan.dedication === 'kiva') {\n\t\t\t\t\tdedication = {\n\t\t\t\t\t\ttoKiva: true\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tdedication = {\n\t\t\t\t\t\trecipient: loan.dedication,\n\t\t\t\t\t\turl: wwwApp.url('dedication', 'dedication', { b_id: loan.id })\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar hasCountry = loan && loan.geocode && loan.geocode.country || null;\n\t\t\tvar isoCode = hasCountry !== null && hasCountry.isoCode ? hasCountry.isoCode.toLowerCase() : null;\n\t\t\tvar countryName = hasCountry !== null && hasCountry.name ? hasCountry.name : null;\n\n\t\t\treturn {\n\t\t\t\tdedication: dedication,\n\t\t\t\tgeocode: {\n\t\t\t\t\tcountry: {\n\t\t\t\t\t\tisoCode: isoCode,\n\t\t\t\t\t\tname: countryName\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\thasCountry: !!hasCountry,\n\t\t\t\turl: wwwApp.url('businesses', 'loanView', { loanId: loan.id }),\n\t\t\t\tpartnerTrusteeUrl: partner_url\n\t\t\t};\n\t\t},\n\n\t\t_serializeLoanImage: function _serializeLoanImage(image) {\n\t\t\treturn {\n\t\t\t\timage: this._getImageContext(image.hash, 50)\n\t\t\t};\n\t\t},\n\n\t\t_serializeProgress: function _serializeProgress(loan) {\n\t\t\treturn {\n\t\t\t\tfundedAmount: numeral(loan.loanFundraisingInfo.fundedAmount.amount).format(),\n\t\t\t\tarrearsAmount: loan.arrearsAmount ? numeral(loan.arrearsAmount).multiply(-1).format() : undefined,\n\t\t\t\tsharedArrearsAmount: loan.sharedArrearsAmount ? numeral(loan.sharedArrearsAmount).multiply(-1).format() : undefined,\n\t\t\t\trepaidAmountTotal: numeral(loan.repaidAmountTotal).format(),\n\t\t\t\trepaidAmountToYou: loan.repaidAmountToYou > 0 ? numeral(loan.repaidAmountToYou).format() : undefined\n\t\t\t};\n\t\t},\n\n\t\t_serializeShare: function _serializeShare(data) {\n\t\t\treturn {\n\t\t\t\tshareAmount: numeral(data.shareAmount.amount).format(),\n\t\t\t\tdateLent: moment.unix(data.latestSharePurchaseDate).format('MMM D, YYYY'),\n\t\t\t\tpromoCreditUsedAmount: data.loan.promoCreditUsedAmount > 0 ? numeral(data.loan.promoCreditUsedAmount).format('$0,0[.]00') : undefined\n\t\t\t};\n\t\t},\n\n\t\t_serializeStatus: function _serializeStatus(loan) {\n\t\t\tvar context = {};\n\n\t\t\tif (loan.repaidAmountTotal > 0) {\n\t\t\t\tcontext.hasPaidSomething = true;\n\t\t\t}\n\t\t\tif (loan.status === 'fundRaising' || loan.status === 'raised') {\n\t\t\t\tcontext.isFundraising = true;\n\t\t\t}\n\t\t\tif (loan.status === 'refunded' || loan.status === 'expired') {\n\t\t\t\tcontext.isRefunded = true;\n\t\t\t}\n\n\t\t\treturn context;\n\t\t},\n\n\t\t_serializeTeams: function _serializeTeams(data) {\n\t\t\tvar can_change = data.loan.canChangeTeamAssignment && this.options.teams && this.options.teams.length;\n\n\t\t\tif (can_change) {\n\t\t\t\tvar current_team = data.teams && data.teams.length ? data.teams[0].teamPublicId : '';\n\t\t\t\tvar teams = [];\n\n\t\t\t\tif (!data.teams || !data.teams.length) {\n\t\t\t\t\tteams.push({\n\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t\tlabel: 'None',\n\t\t\t\t\t\tselected: true\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tteams = teams.concat(_.map(this.options.teams, function (team) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: team.id,\n\t\t\t\t\t\tlabel: team.name,\n\t\t\t\t\t\tselected: team.teamPublicId === current_team\n\t\t\t\t\t};\n\t\t\t\t}));\n\n\t\t\t\treturn {\n\t\t\t\t\tteams: teams,\n\t\t\t\t\tcanChangeTeamAssignment: true\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar self = this;\n\t\t\t\treturn {\n\t\t\t\t\tteams: _.map(data.teams, function (team) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tteamName: team.name.length > 20 ? team.name.slice(0, 20) + '...' : team.name,\n\t\t\t\t\t\t\tteamUrl: wwwApp.url('community', 'viewTeamSummary', { teamPublicId: team.teamPublicId }),\n\t\t\t\t\t\t\tteamImage: team.image ? self._getImageContext(team.image.hash !== '' ? team.image.hash : team.image.id, 35) : null\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t\tcanChangeTeamAssignment: false\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tnumeral.defaultFormat('$0,0.00');\n\n\t\t\treturn _.extend(this._serializeBasicProperties(data.loan), this._serializeStatus(data.loan), this._serializeLoanImage(data.loan.image), this._serializeLoanDetails(data.loan), this._serializeShare(data), this._serializeProgress(data.loan), this._serializeLoanAmount(data.loan), this._serializeTeams(data));\n\t\t},\n\n\t\tinitialize: function initialize(options) {}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 713 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

    Payment history

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);if(!t.s(t.f(\"creditChanges\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);};if(t.s(t.f(\"creditChanges\",c,p,1),c,p,0,834,1009,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
    This loan has no repayments
    \");t.b(t.v(t.f(\"date\",c,p,0)));t.b(\":\");t.b(t.v(t.f(\"amount\",c,p,0)));t.b(\"\");if(t.s(t.f(\"loss\",c,p,1),c,p,0,938,951,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"currency loss\");});c.pop();}if(!t.s(t.f(\"loss\",c,p,1),c,p,1,0,0,\"\")){t.b(\"repaid\");};t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
    \\n\\t\\t\\t\\t{{!The content within this div is the only change from the copy and pasted lightbox atom. If you need to\\n\\t\\t\\t\\t make changes to this lightbox outside of this div, those changes need to be made to every lightbox file within the\\n\\t\\t\\t\\t Molecules/10-lightbox folder. }}\\n\\t\\t\\t\\t

    Payment history

    \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{^creditChanges}}\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{/creditChanges}}\\n\\t\\t\\t\\t\\t\\t{{#creditChanges}}\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{/creditChanges}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
    This loan has no repayments
    {{date}}:{{amount}}{{#loss}}currency loss{{/loss}}{{^loss}}repaid{{/loss}}
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t
    \\n
    \", H);return T; }();\n\n/***/ }),\n/* 714 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"matchedLoan\",c,p,1),c,p,0,175,361,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"matchRatio\",c,p,1),c,p,0,193,260,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"matchRatio\",c,p,0)));t.b(\"x matched\");t.b(\"\\n\" + i);t.b(\"\t\t\t

    \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"matchRatio\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\tMatched\");t.b(\"\\n\" + i);t.b(\"\t\t\t

    \");t.b(\"\\n\" + i);};});c.pop();}if(t.s(t.f(\"dedication\",c,p,1),c,p,0,394,521,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(!t.s(t.f(\"toKiva\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);};});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\" (#\");t.b(t.v(t.f(\"id\",c,p,0)));t.b(\")\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.d(\"activity.name\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"hasCountry\",c,p,1),c,p,0,683,799,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.d(\"geocode.country.name\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.f(\"partnerName\",c,p,0)));t.b(t.v(t.f(\"trusteeName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"dedication\",c,p,1),c,p,0,956,1277,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"toKiva\",c,p,1),c,p,0,998,1083,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tYou opted to donate repayments from this loan to Kiva (Thanks!)\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"toKiva\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\tDedicated to \");t.b(t.v(t.f(\"recipient\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\tRepayments for dedications are donated to Kiva\");t.b(\"\\n\" + i);};t.b(\"\t\t
    \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"statusHuman\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.f(\"shareAmount\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.f(\"dateLent\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"promoCreditUsedAmount\",c,p,1),c,p,0,1476,1617,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"promoCreditUsedAmount\",c,p,0)));t.b(\" \");if(!t.s(t.f(\"promoTypeType\",c,p,1),c,p,1,0,0,\"\")){t.b(\"promotional credit\");};t.b(t.v(t.f(\"promoTypeType\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"isFundraising\",c,p,1),c,p,0,1721,1744,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");t.b(t.v(t.f(\"fundedAmount\",c,p,0)));t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"isFundraising\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,0,1826,1858,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\");t.b(t.v(t.f(\"repaidAmountToYou\",c,p,0)));t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t\t\");t.b(t.v(t.f(\"repaidAmountTotal\",c,p,0)));t.b(\"\\n\" + i);};t.b(\"\t\t\t\");t.b(\"\\n\" + i);};t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"isFundraising\",c,p,1),c,p,0,2048,2061,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\traised\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"hasPaidSomething\",c,p,1),c,p,0,2103,2254,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\trepaid\");if(t.s(t.f(\"isRefunded\",c,p,1),c,p,0,2128,2137,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"/refunded\");});c.pop();}t.b(\" to \");if(t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,0,2178,2181,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"you\");});c.pop();}if(!t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Kiva\");};t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"sharedArrearsAmount\",c,p,1),c,p,0,2309,2391,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t(\");t.b(t.v(t.f(\"sharedArrearsAmount\",c,p,0)));t.b(\" in arrears)\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"lenderRepaymentTerm\",c,p,0)));t.b(\" mos\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"loanAmount\",c,p,0)));t.b(\"\\n\" + i);if(t.s(t.f(\"arrearsAmount\",c,p,1),c,p,0,2517,2593,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t(\");t.b(t.v(t.f(\"arrearsAmount\",c,p,0)));t.b(\" in arrears)\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);if(t.s(t.f(\"canChangeTeamAssignment\",c,p,1),c,p,0,2652,2848,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"canChangeTeamAssignment\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"teams\",c,p,1),c,p,0,2919,3171,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"teamImage\",c,p,1),c,p,0,2994,3116,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\\n\\t\\n\\t\\t\\n\\t\\n\\t{{#matchedLoan}}\\n\\t\\t{{#matchRatio}}\\n\\t\\t\\t

    \\n\\t\\t\\t\\t{{matchRatio}}x matched\\n\\t\\t\\t

    \\n\\t\\t{{/matchRatio}}\\n\\t\\t{{^matchRatio}}\\n\\t\\t\\t

    \\n\\t\\t\\t\\tMatched\\n\\t\\t\\t

    \\n\\t\\t{{/matchRatio}}\\n\\t{{/matchedLoan}}\\n\\t{{#dedication}}\\n\\t\\t{{^toKiva}}\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t{{/toKiva}}\\n\\t{{/dedication}}\\n\\n\\n\\t{{name}} (#{{id}})\\n\\t
    \\n\\t\\t{{activity.name}}\\n\\t
    \\n\\t{{#hasCountry}}\\n\\t\\t
    \\n\\t\\t\\t{{geocode.country.name}}\\n\\t\\t
    \\n\\t{{/hasCountry}}\\n\\t\\n\\t{{#dedication}}\\n\\t\\t
    \\n\\t\\t\\t{{#toKiva}}\\n\\t\\t\\t\\tYou opted to donate repayments from this loan to Kiva (Thanks!)\\n\\t\\t\\t{{/toKiva}}\\n\\t\\t\\t{{^toKiva}}\\n\\t\\t\\t\\tDedicated to {{recipient}}\\n\\t\\t\\t\\tRepayments for dedications are donated to Kiva\\n\\t\\t\\t{{/toKiva}}\\n\\t\\t
    \\n\\t{{/dedication}}\\n\\n\\n\\t{{statusHuman}}\\n\\n\\n\\t
    \\n\\t\\t{{shareAmount}}\\n\\t
    \\n\\t
    \\n\\t\\t{{dateLent}}\\n\\t
    \\n\\t{{#promoCreditUsedAmount}}\\n\\t\\t
    \\n\\t\\t\\t{{promoCreditUsedAmount}} {{^promoTypeType}}promotional credit{{/promoTypeType}}{{promoTypeType}}\\n\\t\\t
    \\n\\t{{/promoCreditUsedAmount}}\\n\\n\\n\\t\\n\\t
    \\n\\t\\t{{#isFundraising}}\\n\\t\\t\\traised\\n\\t\\t{{/isFundraising}}\\n\\t\\t{{#hasPaidSomething}}\\n\\t\\t\\trepaid{{#isRefunded}}/refunded{{/isRefunded}} to {{#repaidAmountToYou}}you{{/repaidAmountToYou}}{{^repaidAmountToYou}}Kiva{{/repaidAmountToYou}}\\n\\t\\t{{/hasPaidSomething}}\\n\\t
    \\n\\t{{#sharedArrearsAmount}}\\n\\t\\t
    \\n\\t\\t\\t({{sharedArrearsAmount}} in arrears)\\n\\t\\t
    \\n\\t{{/sharedArrearsAmount}}\\n\\n\\n\\t{{lenderRepaymentTerm}} mos\\n\\n\\n\\t{{loanAmount}}\\n\\t{{#arrearsAmount}}\\n\\t\\t
    \\n\\t\\t\\t({{arrearsAmount}} in arrears)\\n\\t\\t
    \\n\\t{{/arrearsAmount}}\\n\\n\\n\\t{{#canChangeTeamAssignment}}\\n\\t\\t\\n\\t{{/canChangeTeamAssignment}}\\n\\t{{^canChangeTeamAssignment}}\\n\\t\\t{{#teams}}\\n\\t\\t\\t\\n\\t\\t\\t\\t{{#teamImage}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t{{/teamImage}}\\n\\t\\t\\t\\t{{teamName}}\\n\\t\\t\\t\\n\\t\\t{{/teams}}\\n\\t{{/canChangeTeamAssignment}}\\n\\n\", H);return T; }();\n\n/***/ }),\n/* 715 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t _ = __webpack_require__(11),\n\t $ = __webpack_require__(0),\n\t kv = __webpack_require__(28);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(716),\n\n\t\tevents: {\n\t\t\t'change': '_handleChange',\n\t\t\t'submit': '_handleSubmit'\n\t\t},\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tclearFilters: function clearFilters() {\n\t\t\tthis.model.unset('sSearch');\n\t\t\tthis.model.unset('sStatus');\n\t\t\tthis.model.unset('sCountries');\n\t\t\tthis.model.unset('sPartners');\n\t\t},\n\n\t\tsetCountries: function setCountries(countries) {\n\t\t\tthis.model.set('countries', countries);\n\t\t\tthis.render();\n\t\t},\n\n\t\tsetPartners: function setPartners(partners) {\n\t\t\tthis.model.set('partners', partners);\n\t\t\tthis.render();\n\t\t},\n\n\t\t_handleChange: function _handleChange(evt) {\n\t\t\tvar $input = this.$(evt.target);\n\t\t\tthis.model.set($input.attr('name'), $input.val());\n\t\t\tthis.trigger('filter-change', $input.attr('name'), $input.val());\n\t\t},\n\n\t\t_handleSubmit: function _handleSubmit(evt) {\n\t\t\tevt.preventDefault();\n\t\t},\n\n\t\t_optionsWithSelectedValue: function _optionsWithSelectedValue(options, value) {\n\t\t\treturn _.map(options, function (option) {\n\t\t\t\tif (option.value === value) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else {\n\t\t\t\t\tdelete option.selected;\n\t\t\t\t}\n\t\t\t\treturn option;\n\t\t\t});\n\t\t},\n\n\t\t_serializeCountries: function _serializeCountries(countries, current) {\n\t\t\tvar options = [{ label: 'Location', value: 'all' }];\n\n\t\t\tcountries = _.chain(countries).pairs().map(function (pair) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: pair[1], // country name\n\t\t\t\t\tvalue: pair[0] // country iso code\n\t\t\t\t};\n\t\t\t}).sortBy('label').value();\n\n\t\t\toptions = options.concat(countries);\n\n\t\t\treturn this._optionsWithSelectedValue(options, current);\n\t\t},\n\n\t\t_serializePartners: function _serializePartners(partners, current) {\n\t\t\tvar options = [{ label: 'Partner', value: 'all' }];\n\n\t\t\tpartners = _.chain(partners).pairs().map(function (pair) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: pair[1], // partner name\n\t\t\t\t\tvalue: pair[0] // partner id\n\t\t\t\t};\n\t\t\t}).sortBy(function (partner) {\n\t\t\t\treturn partner.label.toLowerCase();\n\t\t\t}).value();\n\n\t\t\toptions = options.concat(partners);\n\n\t\t\treturn this._optionsWithSelectedValue(options, current);\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\twindow.kvAccordion.reflow();\n\n\t\t\tvar $toggle = $('[aria-controls=\"loan-filters\"]');\n\t\t\tvar $filters = $('#loan-filters');\n\t\t\tvar is_large = false;\n\n\t\t\tif (window.Foundation.utils.is_large_up()) {\n\t\t\t\t$toggle.attr('aria-expanded', 'true');\n\t\t\t\t$filters.attr('aria-hidden', 'false');\n\t\t\t\t$filters.css('height', '');\n\t\t\t\tis_large = true;\n\t\t\t}\n\n\t\t\t$(window).off('resize.loan-filters').on('resize.loan-filters', window.Foundation.utils.throttle(function () {\n\t\t\t\tif (window.Foundation.utils.is_large_up()) {\n\t\t\t\t\tif ($toggle.attr('aria-expanded') === 'false') {\n\t\t\t\t\t\t$toggle.attr('aria-expanded', 'true');\n\t\t\t\t\t\t$filters.attr('aria-hidden', 'false');\n\t\t\t\t\t\t$filters.css('height', '');\n\t\t\t\t\t\tis_large = true;\n\t\t\t\t\t}\n\t\t\t\t} else if (is_large) {\n\t\t\t\t\tis_large = false;\n\t\t\t\t\tif ($toggle.attr('aria-expanded') === 'true') {\n\t\t\t\t\t\t$toggle.attr('aria-expanded', 'false');\n\t\t\t\t\t\t$filters.attr('aria-hidden', 'true');\n\t\t\t\t\t\t$filters.css('height', '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 200));\n\t\t}\n\n\t\t/**\n * prepare the data context for template rendering\n */\n\t\t, serializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tdata.loanStatusOptions = this._optionsWithSelectedValue(data.loanStatusOptions, data.sStatus);\n\t\t\tdata.loanCountryOptions = this._serializeCountries(data.countries, data.sCountries);\n\t\t\tdata.partnerOptions = this._serializePartners(data.partners, data.sPartners);\n\n\t\t\treturn data;\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.model.set('loanStatusOptions', options.loan_statuses);\n\t\t\tthis.model.set('filters_expanded', options.filters_expanded);\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 716 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t
    \\n\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t\\t
    \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
    \\n\\t
    \\n
    \\n\\n\", H);return T; }();\n\n/***/ }),\n/* 717 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\tSorted by date posted on Kiva\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(!t.s(t.f(\"loan_count\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t0 loans\");t.b(\"\\n\" + i);};if(t.s(t.f(\"loan_count\",c,p,1),c,p,0,216,335,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"single_loan\",c,p,1),c,p,0,236,251,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t1 loan\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"single_loan\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"loan_count\",c,p,0)));t.b(\" loans\");t.b(\"\\n\" + i);};});c.pop();}t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"Filter loans\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);if(t.s(t.f(\"loan_count\",c,p,1),c,p,0,797,850,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Export\");});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"filters_set\",c,p,1),c,p,0,882,943,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Clear filters\");});c.pop();}t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner0\",c,p,\"\t\t\"));t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"loans\",c,p,1),c,p,0,1575,1687,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/40-portfolio/07-my-loans-table-row1\",c,p,\"\t\t\t\t\t\t\"));t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
    Loan detailsStatusYou loanedPaid back or raisedLengthAmountTeam
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" You haven't made any loans that match this search.
    \");t.b(\"\\n\" + i);t.b(\" Clear filters\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {\"<01-molecules/03-media/01-loading-spinner0\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }},\"<01-molecules/40-portfolio/07-my-loans-table-row1\":{name:\"01-molecules/40-portfolio/07-my-loans-table-row\", partials: {}, subs: { }}}, subs: { }}, \"
    \\n\\t\\n\\t\\tSorted by date posted on Kiva\\n\\t\\n\\t\\n\\t\\t{{^loan_count}}\\n\\t\\t\\t0 loans\\n\\t\\t{{/loan_count}}\\n\\t\\t{{#loan_count}}\\n\\t\\t\\t{{#single_loan}}\\n\\t\\t\\t\\t1 loan\\n\\t\\t\\t{{/single_loan}}\\n\\t\\t\\t{{^single_loan}}\\n\\t\\t\\t\\t{{loan_count}} loans\\n\\t\\t\\t{{/single_loan}}\\n\\t\\t{{/loan_count}}\\n\\t\\n
    \\nFilter loans\\n\\n{{#loan_count}}Export{{/loan_count}}\\n{{#filters_set}}Clear filters{{/filters_set}}\\n
    \\n
    \\n
    \\n\\t
    \\n\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t
    \\n\\t
    \\n\\t
    \\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t{{#loans}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{> 01-molecules/40-portfolio/07-my-loans-table-row }}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t{{/loans}}\\n\\t\\t\\t\\n\\t\\t
    Loan detailsStatusYou loanedPaid back or raisedLengthAmountTeam
    \\n
    \\n You haven't made any loans that match this search.
    \\n Clear filters\\n
    \\n\\t
    \\n
    \\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 718 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'portfolio/loans': 'showLoansView'\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 719 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t $ = __webpack_require__(210),\n\t SettingsHeaderView = __webpack_require__(720),\n\t SettingsView = __webpack_require__(508),\n\t SettingsAccountView = __webpack_require__(723),\n\t SettingsDataView = __webpack_require__(733),\n\t SettingsCreditView = __webpack_require__(736),\n\t SettingsCreditSidebarView = __webpack_require__(743);\n\n\treturn Marionette.Controller.extend({\n\n\t\tscrollToTop: function scrollToTop() {\n\t\t\t$('html, body').animate({ scrollTop: 0 });\n\t\t},\n\n\t\tshowSettingsAccountView: function showSettingsAccountView() {\n\t\t\tvar settingsAccountView = new SettingsAccountView();\n\n\t\t\tthis.scrollToTop();\n\t\t\twwwApp.conf.set({\n\t\t\t\tdocTitle: 'Account Settings',\n\t\t\t\tpageTitle: 'Account Settings',\n\t\t\t\tbreadcrumb: ['settings', 'account']\n\t\t\t});\n\n\t\t\tthis.view.mainContentRegion.show(settingsAccountView);\n\t\t\tthis.view.sidebarRegion.empty();\n\t\t},\n\n\t\tshowSettingsCreditView: function showSettingsCreditView() {\n\t\t\tvar settingsCreditView = new SettingsCreditView(this.options.moduleData || {}),\n\t\t\t settingsCreditSidebarView = new SettingsCreditSidebarView(this.options.moduleData || {});\n\n\t\t\tthis.scrollToTop();\n\t\t\twwwApp.conf.set({\n\t\t\t\tdocTitle: 'Credit Settings',\n\t\t\t\tpageTitle: 'Credit Settings',\n\t\t\t\tbreadcrumb: ['settings', 'credit']\n\t\t\t});\n\n\t\t\tthis.view.mainContentRegion.show(settingsCreditView);\n\t\t\tthis.view.sidebarRegion.show(settingsCreditSidebarView);\n\t\t},\n\n\t\tshowSettingsDataView: function showSettingsDataView() {\n\t\t\tvar settingsDataView = new SettingsDataView();\n\n\t\t\tthis.scrollToTop();\n\t\t\twwwApp.conf.set({\n\t\t\t\tdocTitle: 'Data settings',\n\t\t\t\tpageTitle: 'Data settings',\n\t\t\t\tbreadcrumb: ['settings', 'data']\n\t\t\t});\n\n\t\t\tthis.view.mainContentRegion.show(settingsDataView);\n\t\t\tthis.view.sidebarRegion.empty();\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tthis.headerView = new SettingsHeaderView();\n\t\t\tthis.view = new SettingsView();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 720 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t AccountNavSubView = __webpack_require__(507),\n\t SettingsTitleView = __webpack_require__(721);\n\n\treturn Marionette.LayoutView.extend({\n\n\t\tel: '.settingsHeader',\n\n\t\tregions: {\n\t\t\t'settingsTitleRegion': '.settingsTitleRegion',\n\t\t\t'accountNavRegion': 'Account_AccountNavSubView'\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar accountNavSubView = new AccountNavSubView({}),\n\t\t\t settingsTitleView = new SettingsTitleView({});\n\n\t\t\tthis.settingsTitleRegion.show(settingsTitleView);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 721 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t PageTitleViewHgn = __webpack_require__(722);\n\n\treturn Marionette.View.extend({\n\n\t\ttemplate: PageTitleViewHgn,\n\n\t\trender: function render(model, pageTitle) {\n\t\t\tvar html = this.template.render({ pageTitle: pageTitle });\n\t\t\tthis.$el.html(html);\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tthis.listenTo(wwwApp.conf, 'change:pageTitle', this.render);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 722 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"pageTitle\",c,p,1),c,p,0,14,56,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"

    \");t.b(t.v(t.f(\"pageTitle\",c,p,0)));t.b(\"

    \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#pageTitle}}\\n

    {{pageTitle}}

    \\n{{/pageTitle}}\", H);return T; }();\n\n/***/ }),\n/* 723 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t Marionette = __webpack_require__(209),\n\t AccountEmailView = __webpack_require__(724),\n\t UpdateAccountFormView = __webpack_require__(726),\n\t UpdateAccountPasswordFormView = __webpack_require__(728),\n\t UpdateProfileFormView = __webpack_require__(731);\n\n\treturn Marionette.View.extend({\n\n\t\t'className': 'accountSettingsView'\n\n\t\t/**\n * Make sure to close all nested views as well\n */\n\t\t, onClose: function onClose() {\n\t\t\t_.each(this.views, function (view) {\n\t\t\t\tview.close();\n\t\t\t});\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this;\n\n\t\t\tthis.views = [];\n\t\t\tthis.views.push(new UpdateAccountFormView());\n\t\t\tthis.views.push(new AccountEmailView());\n\t\t\t// If MFA is on, we allow change of password through MFA settings\n\t\t\tif (wwwApp.conf.get('view_data.is_mfa_active') === false) {\n\t\t\t\tthis.views.push(new UpdateAccountPasswordFormView());\n\t\t\t}\n\t\t\tthis.views.push(new UpdateProfileFormView());\n\n\t\t\t_.each(this.views, function (view) {\n\t\t\t\tself.$el.append(view.$el);\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 724 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t gql = __webpack_require__(124),\n\t Backbone = __webpack_require__(20),\n\t Marionette = __webpack_require__(209),\n\t Raven = __webpack_require__(123);\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: __webpack_require__(725),\n\n\t\ttagName: 'form',\n\t\tclassName: 'settingsForm xbLegacyNav account-email-form',\n\n\t\tui: {\n\t\t\tsubmit: '.submit-email-form'\n\t\t},\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tevents: {\n\t\t\t'click @ui.submit': '_submitForm'\n\t\t},\n\n\t\tmodelEvents: {\n\t\t\t'change': 'render'\n\t\t},\n\n\t\tgqlStateQuery: gql('\\n\\t\\t\\t{\\n\\t\\t\\t\\tmy {\\n\\t\\t\\t\\t\\tuserAccount {\\n\\t\\t\\t\\t\\t\\temail\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t'),\n\n\t\t_handleApolloError: function _handleApolloError(response) {\n\t\t\tif (response && (response.errors || response.graphQLErrors)) {\n\t\t\t\tvar errors = response.errors || response.graphQLErrors;\n\t\t\t\tfor (var i = 0; i < errors.length; i++) {\n\t\t\t\t\tswitch (errors[i].code) {\n\t\t\t\t\t\tcase 'api.authenticationRequired':\n\t\t\t\t\t\tcase 'api.notPrivileged':\n\t\t\t\t\t\t\treturn wwwApp.showLogin(null, 'recent');\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tRaven.captureException(new Error(errors[i].code + ': ' + errors[i].message));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (response instanceof Error) {\n\t\t\t\tRaven.captureException(response);\n\t\t\t} else {\n\t\t\t\tconsole.log(arguments);\n\t\t\t}\n\t\t},\n\t\t_submitForm: function _submitForm(event) {\n\t\t\tvar _this = this;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif (this.model.get('submittable')) {\n\t\t\t\tthis.model.set({\n\t\t\t\t\terror: false,\n\t\t\t\t\tsubmittable: false,\n\t\t\t\t\tsuccess: false\n\t\t\t\t});\n\n\t\t\t\treturn wwwApp.graphql.mutate({\n\t\t\t\t\tmutation: gql('\\n\\t\\t\\t\\t\\t\\tmutation {\\n\\t\\t\\t\\t\\t\\t\\tmy {\\n\\t\\t\\t\\t\\t\\t\\t\\trequestEmailChange\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t')\n\t\t\t\t}).then(function () {\n\t\t\t\t\t_this.model.set({\n\t\t\t\t\t\tsubmittable: true,\n\t\t\t\t\t\tsuccess: true\n\t\t\t\t\t});\n\t\t\t\t}).catch(function (response) {\n\t\t\t\t\t_this.model.set({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tsubmittable: true\n\t\t\t\t\t});\n\t\t\t\t\t_this._handleApolloError(response);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\n\t\t\twwwApp.graphql.query({ query: this.gqlStateQuery }).then(function (result) {\n\t\t\t\t_this2.model.set({\n\t\t\t\t\temail_address: result.data.my.userAccount.email,\n\t\t\t\t\thas_mfa: wwwApp.conf.get('has_mfa'),\n\t\t\t\t\tchange_email_url: wwwApp.url('email', 'changeEmail'),\n\t\t\t\t\terror: false,\n\t\t\t\t\tsubmittable: true,\n\t\t\t\t\tsuccess: false\n\t\t\t\t});\n\t\t\t\t_this2.render();\n\t\t\t}).catch(this._handleApolloError);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 725 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

    Email

    \");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"\tCurrent email address: \");t.b(t.v(t.f(\"email_address\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
    Use this address to login and to receive messages from Kiva.\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);if(t.s(t.f(\"has_mfa\",c,p,1),c,p,0,204,405,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\tIf you would like to change the email address on your Kiva account, click the button below.\");t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\tChange email address\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"has_mfa\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\tIf you would like to change the email address on your Kiva account, click the button below. Clicking this\");t.b(\"\\n\" + i);t.b(\"\t\tbutton will send a verification email to your current email address. You will need to click the link in\");t.b(\"\\n\" + i);t.b(\"\t\tthat email to confirm that you want to change your email address. If you cannot access your old email\");t.b(\"\\n\" + i);t.b(\"\t\taddress, please get in touch at contactus@kiva.org.\");t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);};if(t.s(t.f(\"success\",c,p,1),c,p,0,1034,1217,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\tEmail address change successfully requested. To get started, please click the link in the email we just sent to \");t.b(t.v(t.f(\"email_address\",c,p,0)));t.b(\".\");t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"error\",c,p,1),c,p,0,1240,1334,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t

    \");t.b(\"\\n\" + i);t.b(\"\t\tThere was a problem with handling your request, please try again.\");t.b(\"\\n\" + i);t.b(\"\t

    \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"

    Email

    \\n

    \\n\\tCurrent email address: {{email_address}}\\n\\t
    Use this address to login and to receive messages from Kiva.\\n

    \\n{{#has_mfa}}\\n\\t

    \\n\\t\\tIf you would like to change the email address on your Kiva account, click the button below.\\n\\t

    \\n\\t\\n\\t\\tChange email address\\n\\t\\n{{/has_mfa}}\\n{{^has_mfa}}\\n\\t

    \\n\\t\\tIf you would like to change the email address on your Kiva account, click the button below. Clicking this\\n\\t\\tbutton will send a verification email to your current email address. You will need to click the link in\\n\\t\\tthat email to confirm that you want to change your email address. If you cannot access your old email\\n\\t\\taddress, please get in touch at contactus@kiva.org.\\n\\t

    \\n\\t\\n{{/has_mfa}}\\n{{#success}}\\n\\t

    \\n\\t\\tEmail address change successfully requested. To get started, please click the link in the email we just sent to {{email_address}}.\\n\\t

    \\n{{/success}}\\n{{#error}}\\n\\t

    \\n\\t\\tThere was a problem with handling your request, please try again.\\n\\t

    \\n{{/error}}\\n\", H);return T; }();\n\n/***/ }),\n/* 726 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(210),\n\t _ = __webpack_require__(11),\n\t FormView = __webpack_require__(553),\n\t UpdateAccountFormView = __webpack_require__(727);\n\n\tfunction handleActionSync() {\n\t\twwwApp.tipMsg('Successfully updated your personal info.');\n\t}\n\n\tfunction handleActionError(model, jqXhr) {\n\t\twwwApp.showApiError(jqXhr);\n\t}\n\n\treturn FormView.extend({\n\t\ttemplate: UpdateAccountFormView,\n\t\tclassName: 'settingsForm',\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this;\n\n\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\n\t\t\twwwApp.siren.resolve('my/account').done(function (accountModel) {\n\t\t\t\tvar updateAccountAction = accountModel.getActionByName('updateAccount');\n\n\t\t\t\t// Get data for the country drop-down then display all our data in the form\n\t\t\t\t$.getJSON(accountModel.links()[0].href).done(function (countries) {\n\n\t\t\t\t\tself.addStickit(accountModel, {\n\t\t\t\t\t\t'[name=\"contactRecord.country.isoCode\"]': {\n\t\t\t\t\t\t\tobserve: 'contactRecord.country.isoCode',\n\t\t\t\t\t\t\tselectOptions: {\n\t\t\t\t\t\t\t\tcollection: function collection() {\n\t\t\t\t\t\t\t\t\treturn _.map(countries, function (country) {\n\t\t\t\t\t\t\t\t\t\treturn { value: country.iso_code, label: country.name };\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdefaultOption: {\n\t\t\t\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t\t\t\t\tlabel: '-- --'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tself.stickAll();\n\t\t\t\t}).fail(function () {\n\t\t\t\t\twwwApp.tipMsg('Failed loading countries', 'warning');\n\t\t\t\t});\n\n\t\t\t\tself.initializeForm({ action: updateAccountAction });\n\n\t\t\t\tself.listenTo(accountModel, 'sync:updateAccount', handleActionSync);\n\t\t\t\tself.listenTo(accountModel, 'error:updateAccount', handleActionError);\n\n\t\t\t\t// We could only bind to stickit once.\n\t\t\t\t// Therefore, we need to wait for the country data to be retrieved and manually call stickit. (.stickAll())\n\t\t\t\tself.render({ stickit: false });\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('An error occurred. Please refresh the page and try again.', 'warning');\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 727 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    Personal Info

    \");t.b(\"\\n\" + i);t.b(\" * denotes a required field\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n

    Personal Info

    \\n * denotes a required field\\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n\\n\\n\\n\", H);return T; }();\n\n/***/ }),\n/* 728 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar viewHelpers = __webpack_require__(576),\n\t UpdateAccountPasswordFormView = __webpack_require__(729),\n\t FormView = __webpack_require__(553),\n\t Auth0 = __webpack_require__(730);\n\n\treturn FormView.extend({\n\n\t\ttemplate: UpdateAccountPasswordFormView,\n\t\tclassName: 'settingsForm',\n\n\t\tevents: {\n\t\t\t'click [type=\"submit\"]': 'handleSubmitButtonClick'\n\t\t},\n\n\t\thandleSubmitButtonClick: function handleSubmitButtonClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar username = this.model.get('username');\n\n\t\t\tvar webAuth = new Auth0.WebAuth({\n\t\t\t\tdomain: wwwApp.conf.get('auth0_domain'),\n\t\t\t\tclientID: wwwApp.conf.get('auth0_www_client_id')\n\t\t\t});\n\n\t\t\twebAuth.changePassword({\n\t\t\t\tconnection: 'Username-Password-Authentication',\n\t\t\t\temail: username\n\t\t\t}, function (err, resp) {\n\t\t\t\tif (err) {\n\t\t\t\t\tconsole.log(err.message);\n\t\t\t\t} else {\n\t\t\t\t\t// TODO: remove email from this tip message and set in-context\n\t\t\t\t\t// TODO: cont... an class should be included on the element surrounding the email\n\t\t\t\t\twwwApp.tipMsg('In order to change your password, please click the link in the email we sent to ' + username);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this;\n\n\t\t\twwwApp.siren.resolve('my/account').done(function (accountModel) {\n\t\t\t\tself.initializeForm({ action: accountModel.getActionByName('updateAccountPassword'), fields: {}, validate: true });\n\t\t\t\tself.render();\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('An error occurred. Please refresh the page and try again.', 'warning');\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 729 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

    Password

    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"Clicking this button will send you a verification email. As a final step in this process, you'll need to click the link in that email to successfully update your account password.\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"

    Password

    \\n\\n
    \\n\\n
    \\n\\n
    \\n\\n
    \\nClicking this button will send you a verification email. As a final step in this process, you'll need to click the link in that email to successfully update your account password.\\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 730 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global, process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Authentication\", function() { return Authentication; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Management\", function() { return Management; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WebAuth\", function() { return WebAuth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/**\n * auth0-js v9.12.1\n * Author: Auth0\n * Date: 2019-12-17\n * License: MIT\n */\n\nvar commonjsGlobal=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function createCommonjsModule(fn,module){return fn(module={exports:{}},module.exports),module.exports}var urlJoin=createCommonjsModule(function(module){var context,definition;context=commonjsGlobal,definition=function(){function normalize(strArray){var resultArray=[];if(0===strArray.length)return\"\";if(\"string\"!=typeof strArray[0])throw new TypeError(\"Url must be a string. Received \"+strArray[0]);if(strArray[0].match(/^[^\\/:]+:\\/*$/)&&strArray.length>1){var first=strArray.shift();strArray[0]=first+strArray[0]}strArray[0].match(/^file:\\/\\/\\//)?strArray[0]=strArray[0].replace(/^([^\\/:]+):\\/*/,\"$1:///\"):strArray[0]=strArray[0].replace(/^([^\\/:]+):\\/*/,\"$1://\");for(var i=0;i0&&(component=component.replace(/^[\\/]+/,\"\")),component=i0?\"?\":\"\")+parts.join(\"&\")}return function(){return normalize(\"object\"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},module.exports?module.exports=definition():context.urljoin=definition()}),has=Object.prototype.hasOwnProperty,isArray=Array.isArray,hexTable=function(){for(var array=[],i=0;i<256;++i)array.push(\"%\"+((i<16?\"0\":\"\")+i.toString(16)).toUpperCase());return array}(),arrayToObject=function(source,options){for(var obj=options&&options.plainObjects?Object.create(null):{},i=0;i1;){var item=queue.pop(),obj=item.obj[item.prop];if(isArray(obj)){for(var compacted=[],j=0;j=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122?out+=string.charAt(i):c<128?out+=hexTable[c]:c<2048?out+=hexTable[192|c>>6]+hexTable[128|63&c]:c<55296||c>=57344?out+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(i+=1,c=65536+((1023&c)<<10|1023&string.charCodeAt(i)),out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return out},isBuffer:function(obj){return!(!obj||\"object\"!=typeof obj||!(obj.constructor&&obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)))},isRegExp:function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},merge:function merge(target,source,options){if(!source)return target;if(\"object\"!=typeof source){if(isArray(target))target.push(source);else{if(!target||\"object\"!=typeof target)return[target,source];(options&&(options.plainObjects||options.allowPrototypes)||!has.call(Object.prototype,source))&&(target[source]=!0)}return target}if(!target||\"object\"!=typeof target)return[target].concat(source);var mergeTarget=target;return isArray(target)&&!isArray(source)&&(mergeTarget=arrayToObject(target,options)),isArray(target)&&isArray(source)?(source.forEach(function(item,i){if(has.call(target,i)){var targetItem=target[i];targetItem&&\"object\"==typeof targetItem&&item&&\"object\"==typeof item?target[i]=merge(targetItem,item,options):target.push(item)}else target[i]=item}),target):Object.keys(source).reduce(function(acc,key){var value=source[key];return has.call(acc,key)?acc[key]=merge(acc[key],value,options):acc[key]=value,acc},mergeTarget)}},replace=String.prototype.replace,percentTwenties=/%20/g,Format={RFC1738:\"RFC1738\",RFC3986:\"RFC3986\"},formats=utils.assign({default:Format.RFC3986,formatters:{RFC1738:function(value){return replace.call(value,percentTwenties,\"+\")},RFC3986:function(value){return String(value)}}},Format),has$1=Object.prototype.hasOwnProperty,arrayPrefixGenerators={brackets:function(prefix){return prefix+\"[]\"},comma:\"comma\",indices:function(prefix,key){return prefix+\"[\"+key+\"]\"},repeat:function(prefix){return prefix}},isArray$1=Array.isArray,push=Array.prototype.push,pushToArray=function(arr,valueOrArray){push.apply(arr,isArray$1(valueOrArray)?valueOrArray:[valueOrArray])},toISO=Date.prototype.toISOString,defaultFormat=formats.default,defaults={addQueryPrefix:!1,allowDots:!1,charset:\"utf-8\",charsetSentinel:!1,delimiter:\"&\",encode:!0,encoder:utils.encode,encodeValuesOnly:!1,format:defaultFormat,formatter:formats.formatters[defaultFormat],indices:!1,serializeDate:function(date){return toISO.call(date)},skipNulls:!1,strictNullHandling:!1},stringify=function stringify(object,prefix,generateArrayPrefix,strictNullHandling,skipNulls,encoder,filter,sort,allowDots,serializeDate,formatter,encodeValuesOnly,charset){var obj=object;if(\"function\"==typeof filter?obj=filter(prefix,obj):obj instanceof Date?obj=serializeDate(obj):\"comma\"===generateArrayPrefix&&isArray$1(obj)&&(obj=obj.join(\",\")),null===obj){if(strictNullHandling)return encoder&&!encodeValuesOnly?encoder(prefix,defaults.encoder,charset):prefix;obj=\"\"}if(function(v){return\"string\"==typeof v||\"number\"==typeof v||\"boolean\"==typeof v||\"symbol\"==typeof v||\"bigint\"==typeof v}(obj)||utils.isBuffer(obj))return encoder?[formatter(encodeValuesOnly?prefix:encoder(prefix,defaults.encoder,charset))+\"=\"+formatter(encoder(obj,defaults.encoder,charset))]:[formatter(prefix)+\"=\"+formatter(String(obj))];var objKeys,values=[];if(void 0===obj)return values;if(isArray$1(filter))objKeys=filter;else{var keys=Object.keys(obj);objKeys=sort?keys.sort(sort):keys}for(var i=0;i0&&/(\\[[^[\\]]*])/.exec(key),parent=segment?key.slice(0,segment.index):key,keys=[];if(parent){if(!options.plainObjects&&has$2.call(Object.prototype,parent)&&!options.allowPrototypes)return;keys.push(parent)}for(var i=0;options.depth>0&&null!==(segment=child.exec(key))&&i=0;--i){var obj,root=chain[i];if(\"[]\"===root&&options.parseArrays)obj=[].concat(leaf);else{obj=options.plainObjects?Object.create(null):{};var cleanRoot=\"[\"===root.charAt(0)&&\"]\"===root.charAt(root.length-1)?root.slice(1,-1):root,index=parseInt(cleanRoot,10);options.parseArrays||\"\"!==cleanRoot?!isNaN(index)&&root!==cleanRoot&&String(index)===cleanRoot&&index>=0&&options.parseArrays&&index<=options.arrayLimit?(obj=[])[index]=leaf:obj[cleanRoot]=leaf:obj={0:leaf}}leaf=obj}return leaf}(keys,val,options)}},lib_parse=function(str,opts){var options=function(opts){if(!opts)return defaults$1;if(null!==opts.decoder&&void 0!==opts.decoder&&\"function\"!=typeof opts.decoder)throw new TypeError(\"Decoder has to be a function.\");if(void 0!==opts.charset&&\"utf-8\"!==opts.charset&&\"iso-8859-1\"!==opts.charset)throw new Error(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var charset=void 0===opts.charset?defaults$1.charset:opts.charset;return{allowDots:void 0===opts.allowDots?defaults$1.allowDots:!!opts.allowDots,allowPrototypes:\"boolean\"==typeof opts.allowPrototypes?opts.allowPrototypes:defaults$1.allowPrototypes,arrayLimit:\"number\"==typeof opts.arrayLimit?opts.arrayLimit:defaults$1.arrayLimit,charset:charset,charsetSentinel:\"boolean\"==typeof opts.charsetSentinel?opts.charsetSentinel:defaults$1.charsetSentinel,comma:\"boolean\"==typeof opts.comma?opts.comma:defaults$1.comma,decoder:\"function\"==typeof opts.decoder?opts.decoder:defaults$1.decoder,delimiter:\"string\"==typeof opts.delimiter||utils.isRegExp(opts.delimiter)?opts.delimiter:defaults$1.delimiter,depth:\"number\"==typeof opts.depth||!1===opts.depth?+opts.depth:defaults$1.depth,ignoreQueryPrefix:!0===opts.ignoreQueryPrefix,interpretNumericEntities:\"boolean\"==typeof opts.interpretNumericEntities?opts.interpretNumericEntities:defaults$1.interpretNumericEntities,parameterLimit:\"number\"==typeof opts.parameterLimit?opts.parameterLimit:defaults$1.parameterLimit,parseArrays:!1!==opts.parseArrays,plainObjects:\"boolean\"==typeof opts.plainObjects?opts.plainObjects:defaults$1.plainObjects,strictNullHandling:\"boolean\"==typeof opts.strictNullHandling?opts.strictNullHandling:defaults$1.strictNullHandling}}(opts);if(\"\"===str||null==str)return options.plainObjects?Object.create(null):{};for(var tempObj=\"string\"==typeof str?function(str,options){var i,obj={},cleanStr=options.ignoreQueryPrefix?str.replace(/^\\?/,\"\"):str,limit=options.parameterLimit===1/0?void 0:options.parameterLimit,parts=cleanStr.split(options.delimiter,limit),skipIndex=-1,charset=options.charset;if(options.charsetSentinel)for(i=0;i-1&&(val=val.split(\",\")),has$2.call(obj,key)?obj[key]=utils.combine(obj[key],val):obj[key]=val}return obj}(str,options):str,obj=options.plainObjects?Object.create(null):{},keys=Object.keys(tempObj),i=0;i0?prefix+joined:\"\"},componentEmitter=createCommonjsModule(function(module){function Emitter(obj){if(obj)return function(obj){for(var key in Emitter.prototype)obj[key]=Emitter.prototype[key];return obj}(obj)}module.exports=Emitter,Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+event]=this._callbacks[\"$\"+event]||[]).push(fn),this},Emitter.prototype.once=function(event,fn){function on(){this.off(event,on),fn.apply(this,arguments)}return on.fn=fn,this.on(event,on),this},Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var cb,callbacks=this._callbacks[\"$\"+event];if(!callbacks)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+event],this;for(var i=0;i=this._maxRetries)return!1;if(this._retryCallback)try{var override=this._retryCallback(err,res);if(!0===override)return!0;if(!1===override)return!1}catch(e){console.error(e)}if(res&&res.status&&res.status>=500&&501!=res.status)return!0;if(err){if(err.code&&~ERROR_CODES.indexOf(err.code))return!0;if(err.timeout&&\"ECONNABORTED\"==err.code)return!0;if(err.crossDomain)return!0}return!1},RequestBase.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},RequestBase.prototype.then=function(resolve,reject){if(!this._fullfilledPromise){var self=this;this._endCalled&&console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\"),this._fullfilledPromise=new Promise(function(innerResolve,innerReject){self.end(function(err,res){err?innerReject(err):innerResolve(res)})})}return this._fullfilledPromise.then(resolve,reject)},RequestBase.prototype.catch=function(cb){return this.then(void 0,cb)},RequestBase.prototype.use=function(fn){return fn(this),this},RequestBase.prototype.ok=function(cb){if(\"function\"!=typeof cb)throw Error(\"Callback required\");return this._okCallback=cb,this},RequestBase.prototype._isResponseOK=function(res){return!!res&&(this._okCallback?this._okCallback(res):res.status>=200&&res.status<300)},RequestBase.prototype.get=function(field){return this._header[field.toLowerCase()]},RequestBase.prototype.getHeader=RequestBase.prototype.get,RequestBase.prototype.set=function(field,val){if(isObject_1(field)){for(var key in field)this.set(key,field[key]);return this}return this._header[field.toLowerCase()]=val,this.header[field]=val,this},RequestBase.prototype.unset=function(field){return delete this._header[field.toLowerCase()],delete this.header[field],this},RequestBase.prototype.field=function(name,val){if(null==name)throw new Error(\".field(name, val) name can not be empty\");if(this._data&&console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\"),isObject_1(name)){for(var key in name)this.field(key,name[key]);return this}if(Array.isArray(val)){for(var i in val)this.field(name,val[i]);return this}if(null==val)throw new Error(\".field(name, val) val can not be empty\");return\"boolean\"==typeof val&&(val=\"\"+val),this._getFormData().append(name,val),this},RequestBase.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit(\"abort\"),this)},RequestBase.prototype._auth=function(user,pass,options,base64Encoder){switch(options.type){case\"basic\":this.set(\"Authorization\",\"Basic \"+base64Encoder(user+\":\"+pass));break;case\"auto\":this.username=user,this.password=pass;break;case\"bearer\":this.set(\"Authorization\",\"Bearer \"+user)}return this},RequestBase.prototype.withCredentials=function(on){return null==on&&(on=!0),this._withCredentials=on,this},RequestBase.prototype.redirects=function(n){return this._maxRedirects=n,this},RequestBase.prototype.maxResponseSize=function(n){if(\"number\"!=typeof n)throw TypeError(\"Invalid argument\");return this._maxResponseSize=n,this},RequestBase.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},RequestBase.prototype.send=function(data){var isObj=isObject_1(data),type=this._header[\"content-type\"];if(this._formData&&console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\"),isObj&&!this._data)Array.isArray(data)?this._data=[]:this._isHost(data)||(this._data={});else if(data&&this._data&&this._isHost(this._data))throw Error(\"Can't merge these send calls\");if(isObj&&isObject_1(this._data))for(var key in data)this._data[key]=data[key];else\"string\"==typeof data?(type||this.type(\"form\"),type=this._header[\"content-type\"],this._data=\"application/x-www-form-urlencoded\"==type?this._data?this._data+\"&\"+data:data:(this._data||\"\")+data):this._data=data;return!isObj||this._isHost(data)?this:(type||this.type(\"json\"),this)},RequestBase.prototype.sortQuery=function(sort){return this._sort=void 0===sort||sort,this},RequestBase.prototype._finalizeQueryString=function(){var query=this._query.join(\"&\");if(query&&(this.url+=(this.url.indexOf(\"?\")>=0?\"&\":\"?\")+query),this._query.length=0,this._sort){var index=this.url.indexOf(\"?\");if(index>=0){var queryArr=this.url.substring(index+1).split(\"&\");\"function\"==typeof this._sort?queryArr.sort(this._sort):queryArr.sort(),this.url=this.url.substring(0,index)+\"?\"+queryArr.join(\"&\")}}},RequestBase.prototype._appendQueryString=function(){console.trace(\"Unsupported\")},RequestBase.prototype._timeoutError=function(reason,timeout,errno){if(!this._aborted){var err=new Error(reason+timeout+\"ms exceeded\");err.timeout=timeout,err.code=\"ECONNABORTED\",err.errno=errno,this.timedout=!0,this.abort(),this.callback(err)}},RequestBase.prototype._setTimeouts=function(){var self=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){self._timeoutError(\"Timeout of \",self._timeout,\"ETIME\")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){self._timeoutError(\"Response timeout of \",self._responseTimeout,\"ETIMEDOUT\")},this._responseTimeout))};var utils$1_type=function(str){return str.split(/ *; */).shift()},utils$1_params=function(str){return str.split(/ *; */).reduce(function(obj,str){var parts=str.split(/ *= */),key=parts.shift(),val=parts.shift();return key&&val&&(obj[key]=val),obj},{})},utils$1_parseLinks=function(str){return str.split(/ *, */).reduce(function(obj,str){var parts=str.split(/ *; */),url=parts[0].slice(1,-1);return obj[parts[1].split(/ *= */)[1].slice(1,-1)]=url,obj},{})},responseBase=ResponseBase;function ResponseBase(obj){if(obj)return function(obj){for(var key in ResponseBase.prototype)obj[key]=ResponseBase.prototype[key];return obj}(obj)}function Agent(){this._defaults=[]}ResponseBase.prototype.get=function(field){return this.header[field.toLowerCase()]},ResponseBase.prototype._setHeaderProperties=function(header){var ct=header[\"content-type\"]||\"\";this.type=utils$1_type(ct);var params=utils$1_params(ct);for(var key in params)this[key]=params[key];this.links={};try{header.link&&(this.links=utils$1_parseLinks(header.link))}catch(err){}},ResponseBase.prototype._setStatusProperties=function(status){var type=status/100|0;this.status=this.statusCode=status,this.statusType=type,this.info=1==type,this.ok=2==type,this.redirect=3==type,this.clientError=4==type,this.serverError=5==type,this.error=(4==type||5==type)&&this.toError(),this.created=201==status,this.accepted=202==status,this.noContent=204==status,this.badRequest=400==status,this.unauthorized=401==status,this.notAcceptable=406==status,this.forbidden=403==status,this.notFound=404==status,this.unprocessableEntity=422==status},[\"use\",\"on\",\"once\",\"set\",\"query\",\"type\",\"accept\",\"auth\",\"withCredentials\",\"sortQuery\",\"retry\",\"ok\",\"redirects\",\"timeout\",\"buffer\",\"serialize\",\"parse\",\"ca\",\"key\",\"pfx\",\"cert\"].forEach(function(fn){Agent.prototype[fn]=function(){return this._defaults.push({fn:fn,arguments:arguments}),this}}),Agent.prototype._setDefaults=function(req){this._defaults.forEach(function(def){req[def.fn].apply(req,def.arguments)})};for(var agentBase=Agent,client=createCommonjsModule(function(module,exports){var root;function noop(){}\"undefined\"!=typeof window?root=window:\"undefined\"!=typeof self?root=self:(console.warn(\"Using browser-only version of superagent in non-browser environment\"),root=commonjsGlobal);var request=exports=module.exports=function(method,url){return\"function\"==typeof url?new exports.Request(\"GET\",method).end(url):1==arguments.length?new exports.Request(\"GET\",method):new exports.Request(method,url)};exports.Request=Request,request.getXHR=function(){if(!(!root.XMLHttpRequest||root.location&&\"file:\"==root.location.protocol&&root.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject(\"Microsoft.XMLHTTP\")}catch(e){}try{return new ActiveXObject(\"Msxml2.XMLHTTP.6.0\")}catch(e){}try{return new ActiveXObject(\"Msxml2.XMLHTTP.3.0\")}catch(e){}try{return new ActiveXObject(\"Msxml2.XMLHTTP\")}catch(e){}throw Error(\"Browser-only version of superagent could not find XHR\")};var trim=\"\".trim?function(s){return s.trim()}:function(s){return s.replace(/(^\\s*|\\s*$)/g,\"\")};function serialize(obj){if(!isObject_1(obj))return obj;var pairs=[];for(var key in obj)pushEncodedKeyValuePair(pairs,key,obj[key]);return pairs.join(\"&\")}function pushEncodedKeyValuePair(pairs,key,val){if(null!=val)if(Array.isArray(val))val.forEach(function(v){pushEncodedKeyValuePair(pairs,key,v)});else if(isObject_1(val))for(var subkey in val)pushEncodedKeyValuePair(pairs,key+\"[\"+subkey+\"]\",val[subkey]);else pairs.push(encodeURIComponent(key)+\"=\"+encodeURIComponent(val));else null===val&&pairs.push(encodeURIComponent(key))}function parseString(str){for(var pair,pos,obj={},pairs=str.split(\"&\"),i=0,len=pairs.length;i=2&&self._responseTimeoutTimer&&clearTimeout(self._responseTimeoutTimer),4==readyState){var status;try{status=xhr.status}catch(e){status=0}if(!status){if(self.timedout||self._aborted)return;return self.crossDomainError()}self.emit(\"end\")}};var handleProgress=function(direction,e){e.total>0&&(e.percent=e.loaded/e.total*100),e.direction=direction,self.emit(\"progress\",e)};if(this.hasListeners(\"progress\"))try{xhr.onprogress=handleProgress.bind(null,\"download\"),xhr.upload&&(xhr.upload.onprogress=handleProgress.bind(null,\"upload\"))}catch(e){}try{this.username&&this.password?xhr.open(this.method,this.url,!0,this.username,this.password):xhr.open(this.method,this.url,!0)}catch(err){return this.callback(err)}if(this._withCredentials&&(xhr.withCredentials=!0),!this._formData&&\"GET\"!=this.method&&\"HEAD\"!=this.method&&\"string\"!=typeof data&&!this._isHost(data)){var contentType=this._header[\"content-type\"],serialize=this._serializer||request.serialize[contentType?contentType.split(\";\")[0]:\"\"];!serialize&&isJSON(contentType)&&(serialize=request.serialize[\"application/json\"]),serialize&&(data=serialize(data))}for(var field in this.header)null!=this.header[field]&&this.header.hasOwnProperty(field)&&xhr.setRequestHeader(field,this.header[field]);return this._responseType&&(xhr.responseType=this._responseType),this.emit(\"request\",this),xhr.send(void 0!==data?data:null),this},request.agent=function(){return new agentBase},[\"GET\",\"POST\",\"OPTIONS\",\"PATCH\",\"PUT\",\"DELETE\"].forEach(function(method){agentBase.prototype[method.toLowerCase()]=function(url,fn){var req=new request.Request(method,url);return this._setDefaults(req),fn&&req.end(fn),req}}),agentBase.prototype.del=agentBase.prototype.delete,request.get=function(url,data,fn){var req=request(\"GET\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.query(data),fn&&req.end(fn),req},request.head=function(url,data,fn){var req=request(\"HEAD\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.query(data),fn&&req.end(fn),req},request.options=function(url,data,fn){var req=request(\"OPTIONS\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.del=del,request.delete=del,request.patch=function(url,data,fn){var req=request(\"PATCH\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.post=function(url,data,fn){var req=request(\"POST\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.put=function(url,data,fn){var req=request(\"PUT\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req}}),byteLength_1=(client.Request,function(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}),toByteArray_1=function(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(function(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}(0,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;i>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp);1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp);return arr},fromByteArray_1=function(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],i=0,len2=len-extraBytes;ilen2?len2:i+16383));1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+\"==\")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+\"=\"));return parts.join(\"\")},lookup=[],revLookup=[],Arr=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,code=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",i=0,len=code.length;i0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var validLen=b64.indexOf(\"=\");return-1===validLen&&(validLen=len),[validLen,validLen===len?0:4-validLen%4]}function encodeChunk(uint8,start,end){for(var tmp,num,output=[],i=start;i>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]);return output.join(\"\")}revLookup[\"-\".charCodeAt(0)]=62,revLookup[\"_\".charCodeAt(0)]=63;var base64Js={byteLength:byteLength_1,toByteArray:toByteArray_1,fromByteArray:fromByteArray_1};var base64Url={encode:function(str){return base64Js.fromByteArray(function(str){for(var arr=new Array(str.length),a=0;a=65&&code<=90||!wasPrevNumber&&code>=48&&code<=57?(newKey+=\"_\",newKey+=str[index].toLowerCase()):newKey+=str[index].toLowerCase(),wasPrevNumber=code>=48&&code<=57,wasPrevUppercase=code>=65&&code<=90,index++;return newKey}(key):key]=toSnakeCase(object[key]),p},{}))},toCamelCase:function toCamelCase(object,exceptions,options){return\"object\"!=typeof object||assert.isArray(object)||null===object?object:(exceptions=exceptions||[],options=options||{},Object.keys(object).reduce(function(p,key){var parts,newKey=-1===exceptions.indexOf(key)?(parts=key.split(\"_\")).reduce(function(p,c){return p+c.charAt(0).toUpperCase()+c.slice(1)},parts.shift()):key;return p[newKey]=toCamelCase(object[newKey]||object[key],[],options),options.keepOriginal&&(p[key]=toCamelCase(object[key],[],options)),p},{}))},blacklist:function(object,blacklistedKeys){return Object.keys(object).reduce(function(p,key){return-1===blacklistedKeys.indexOf(key)&&(p[key]=object[key]),p},{})},merge:function(object,keys){return{base:keys?pick(object,keys):object,with:function(object2,keys2){return object2=keys2?pick(object2,keys2):object2,extend(this.base,object2)}}},pick:pick,getKeysNotIn:function(obj,allowedKeys){var notAllowed=[];for(var key in obj)-1===allowedKeys.indexOf(key)&¬Allowed.push(key);return notAllowed},extend:extend,getOriginFromUrl:function(url){if(url){var parsed=getLocationFromUrl(url),origin=parsed.protocol+\"//\"+parsed.hostname;return parsed.port&&(origin+=\":\"+parsed.port),origin}},getLocationFromUrl:getLocationFromUrl,trimUserDetails:function(options){return function(options,keys){return keys.reduce(trim,options)}(options,[\"username\",\"email\",\"phoneNumber\"])}};function RequestWrapper(req){this.request=req,this.method=req.method,this.url=req.url,this.body=req._data,this.headers=req._header}function RequestObj(req){this.request=req}function RequestBuilder(options){this._sendTelemetry=!1!==options._sendTelemetry||options._sendTelemetry,this._telemetryInfo=options._telemetryInfo||null,this._timesToRetryFailedRequests=options._timesToRetryFailedRequests,this.headers=options.headers||{},this._universalLoginPage=options.universalLoginPage}function getWindow(){return window}RequestWrapper.prototype.abort=function(){this.request.abort()},RequestWrapper.prototype.getMethod=function(){return this.method},RequestWrapper.prototype.getBody=function(){return this.body},RequestWrapper.prototype.getUrl=function(){return this.url},RequestWrapper.prototype.getHeaders=function(){return this.headers},RequestObj.prototype.set=function(key,value){return this.request=this.request.set(key,value),this},RequestObj.prototype.send=function(body){return this.request=this.request.send(objectHelper.trimUserDetails(body)),this},RequestObj.prototype.withCredentials=function(){return this.request=this.request.withCredentials(),this},RequestObj.prototype.end=function(cb){return this.request=this.request.end(cb),new RequestWrapper(this.request)},RequestBuilder.prototype.setCommonConfiguration=function(ongoingRequest,options){if(options=options||{},this._timesToRetryFailedRequests>0&&(ongoingRequest=ongoingRequest.retry(this._timesToRetryFailedRequests)),options.noHeaders)return ongoingRequest;var headers=this.headers;ongoingRequest=ongoingRequest.set(\"Content-Type\",\"application/json\");for(var keys=Object.keys(this.headers),a=0;a0&&warn.warning(\"Following parameters are not allowed on the `/authorize` endpoint: [\"+notAllowed.join(\",\")+\"]\"),params}},t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=e(function(t,e){var r;t.exports=r=r||function(t,e){var r=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),i={},n=i.lib={},o=n.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty(\"init\")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]|=(r[o>>>2]>>>24-o%4*8&255)<<24-(i+o)%4*8;else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r,i=[],n=function(e){e=e;var r=987654321,i=4294967295;return function(){var n=((r=36969*(65535&r)+(r>>16)&i)<<16)+(e=18e3*(65535&e)+(e>>16)&i)&i;return n/=4294967296,(n+=.5)*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(r,e/2)}},u=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255));return i.join(\"\")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(r,e)}},f=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},c=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,h=n/(4*o),a=(h=e?t.ceil(h):t.max((0|h)-this._minBufferSize,0))*o,u=t.min(4*a,n);if(a){for(var f=0;f>>7)^(d<<14|d>>>18)^d>>>3)+u[l-7]+((m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10)+u[l-16]}var v=i&n^i&o^n&o,y=p+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&f^~h&c)+a[l]+u[l];p=c,c=f,f=h,h=s+y|0,s=o,o=n,n=i,i=y+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+v)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+p|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=t.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(f),e.HmacSHA256=o._createHmacHelper(f)}(Math),i.SHA256)}),n=e(function(t,e){var i,n;t.exports=(n=(i=r).lib.WordArray,i.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,h=0;h<4&&o+.75*h>>6*(3-h)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join(\"\")},parse:function(t){var e=t.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o>>6-s%4*2;i[o>>>2]|=(h|a)<<24-o%4*8,o++}return n.create(i,o)}(t,e,i)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"},i.enc.Base64)}),o=e(function(t,e){t.exports=r.enc.Hex}),s=e(function(e,r){(function(){var t;function r(t,e,r){null!=t&&(\"number\"==typeof t?this.fromNumber(t,e,r):this.fromString(t,null==e&&\"string\"!=typeof t?256:e))}function i(){return new r(null)}var n=\"undefined\"!=typeof navigator;n&&\"Microsoft Internet Explorer\"==navigator.appName?(r.prototype.am=function(t,e,r,i,n,o){for(var s=32767&e,h=e>>15;--o>=0;){var a=32767&this[t],u=this[t++]>>15,f=h*a+u*s;n=((a=s*a+((32767&f)<<15)+r[i]+(1073741823&n))>>>30)+(f>>>15)+h*u+(n>>>30),r[i++]=1073741823&a}return n},t=30):n&&\"Netscape\"!=navigator.appName?(r.prototype.am=function(t,e,r,i,n,o){for(;--o>=0;){var s=e*this[t++]+r[i]+n;n=Math.floor(s/67108864),r[i++]=67108863&s}return n},t=26):(r.prototype.am=function(t,e,r,i,n,o){for(var s=16383&e,h=e>>14;--o>=0;){var a=16383&this[t],u=this[t++]>>14,f=h*a+u*s;n=((a=s*a+((16383&f)<<14)+r[i]+n)>>28)+(f>>14)+h*u,r[i++]=268435455&a}return n},t=28),r.prototype.DB=t,r.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function l(t){this.m=t}function d(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function T(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function b(){}function _(t){return t}function A(t){this.r2=i(),this.q3=i(),r.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}l.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},l.prototype.revert=function(t){return t},l.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},l.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},l.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},d.prototype.convert=function(t){var e=i();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(r.ZERO)>0&&this.m.subTo(e,e),e},d.prototype.revert=function(t){var e=i();return t.copyTo(e),this.reduce(e),e},d.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,i,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},d.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},d.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},r.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},r.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},r.prototype.fromString=function(t,e){var i;if(16==e)i=4;else if(8==e)i=3;else if(256==e)i=8;else if(2==e)i=1;else if(32==e)i=5;else{if(4!=e)return void this.fromRadix(t,e);i=2}this.t=0,this.s=0;for(var n=t.length,o=!1,s=0;--n>=0;){var h=8==i?255&t[n]:f(t,n);h<0?\"-\"==t.charAt(n)&&(o=!0):(o=!1,0==s?this[this.t++]=h:s+i>this.DB?(this[this.t-1]|=(h&(1<>this.DB-s):this[this.t-1]|=h<=this.DB&&(s-=this.DB))}8==i&&0!=(128&t[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},r.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},r.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>n|h,h=(this[r]&o)<=0;--r)e[r]=0;e[s]=h,e.t=this.t+s+1,e.s=this.s,e.clamp()},r.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var i=t%this.DB,n=this.DB-i,o=(1<>i;for(var s=r+1;s>i;i>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;i+=this.s}else{for(i+=this.s;r>=this.DB;i-=t.s}e.s=i<0?-1:0,i<-1?e[r++]=this.DV+i:i>0&&(e[r++]=i),e.t=r,e.clamp()},r.prototype.multiplyTo=function(t,e){var i=this.abs(),n=t.abs(),o=i.t;for(e.t=o+n.t;--o>=0;)e[o]=0;for(o=0;o=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},r.prototype.divRemTo=function(t,e,n){var o=t.abs();if(!(o.t<=0)){var s=this.abs();if(s.t0?(o.lShiftTo(f,h),s.lShiftTo(f,n)):(o.copyTo(h),s.copyTo(n));var c=h.t,l=h[c-1];if(0!=l){var d=l*(1<1?h[c-2]>>this.F2:0),m=this.FV/d,v=(1<=0&&(n[n.t++]=1,n.subTo(T,n)),r.ONE.dlShiftTo(c,T),T.subTo(h,h);h.t=0;){var b=n[--g]==l?this.DM:Math.floor(n[g]*m+(n[g-1]+y)*v);if((n[g]+=h.am(0,b,n,w,0,c))0&&n.rShiftTo(f,n),a<0&&r.ZERO.subTo(n,n)}}},r.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},r.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},r.prototype.exp=function(t,e){if(t>4294967295||t<1)return r.ONE;var n=i(),o=i(),s=e.convert(this),h=p(t)-1;for(s.copyTo(n);--h>=0;)if(e.sqrTo(n,o),(t&1<0)e.mulTo(o,s,n);else{var a=n;n=o,o=a}return e.revert(n)},r.prototype.toString=function(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,i=(1<0)for(h>h)>0&&(n=!0,o=u(r));s>=0;)h>(h+=this.DB-e)):(r=this[s]>>(h-=e)&i,h<=0&&(h+=this.DB,--s)),r>0&&(n=!0),n&&(o+=u(r));return n?o:\"0\"},r.prototype.negate=function(){var t=i();return r.ZERO.subTo(this,t),t},r.prototype.abs=function(){return this.s<0?this.negate():this},r.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},r.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+p(this[this.t-1]^this.s&this.DM)},r.prototype.mod=function(t){var e=i();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(r.ZERO)>0&&t.subTo(e,e),e},r.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new l(e):new d(e),this.exp(t,r)},r.ZERO=c(0),r.ONE=c(1),b.prototype.convert=_,b.prototype.revert=_,b.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},b.prototype.sqrTo=function(t,e){t.squareTo(e)},A.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=i();return t.copyTo(e),this.reduce(e),e},A.prototype.revert=function(t){return t},A.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},A.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},A.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var S,D,B,x=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],k=(1<<26)/x[x.length-1];function E(){var t;t=(new Date).getTime(),D[B++]^=255&t,D[B++]^=t>>8&255,D[B++]^=t>>16&255,D[B++]^=t>>24&255,B>=N&&(B-=N)}if(r.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},r.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=c(r),o=i(),s=i(),h=\"\";for(this.divRemTo(n,o,s);o.signum()>0;)h=(r+s.intValue()).toString(t).substr(1)+h,o.divRemTo(n,o,s);return s.intValue().toString(t)+h},r.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var i=this.chunkSize(e),n=Math.pow(e,i),o=!1,s=0,h=0,a=0;a=i&&(this.dMultiply(n),this.dAddOffset(h,0),s=0,h=0))}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(h,0)),o&&r.ZERO.subTo(this,this)},r.prototype.fromNumber=function(t,e,i){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(r.ONE.shiftLeft(t-1),v,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(r.ONE.shiftLeft(t-1),this);else{var n=new Array,o=7&t;n.length=1+(t>>3),e.nextBytes(n),o>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;i+=this.s}else{for(i+=this.s;r>=this.DB;i+=t.s}e.s=i<0?-1:0,i>0?e[r++]=i:i<-1&&(e[r++]=this.DV+i),e.t=r,e.clamp()},r.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},r.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},r.prototype.multiplyLowerTo=function(t,e,r){var i,n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r[--n]=0;for(i=r.t-this.t;n=0;)r[i]=0;for(i=Math.max(e-this.t,0);i0)if(0==e)r=this[0]%t;else for(var i=this.t-1;i>=0;--i)r=(e*r+this[i])%t;return r},r.prototype.millerRabin=function(t){var e=this.subtract(r.ONE),n=e.getLowestSetBit();if(n<=0)return!1;var o=e.shiftRight(n);(t=t+1>>1)>x.length&&(t=x.length);for(var s=i(),h=0;h>24},r.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},r.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},r.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,i=this.DB-t*this.DB%8,n=0;if(t-- >0)for(i>i)!=(this.s&this.DM)>>i&&(e[n++]=r|this.s<=0;)i<8?(r=(this[t]&(1<>(i+=this.DB-8)):(r=this[t]>>(i-=8)&255,i<=0&&(i+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==n&&(128&this.s)!=(128&r)&&++n,(n>0||r!=this.s)&&(e[n++]=r);return e},r.prototype.equals=function(t){return 0==this.compareTo(t)},r.prototype.min=function(t){return this.compareTo(t)<0?this:t},r.prototype.max=function(t){return this.compareTo(t)>0?this:t},r.prototype.and=function(t){var e=i();return this.bitwiseTo(t,m,e),e},r.prototype.or=function(t){var e=i();return this.bitwiseTo(t,v,e),e},r.prototype.xor=function(t){var e=i();return this.bitwiseTo(t,y,e),e},r.prototype.andNot=function(t){var e=i();return this.bitwiseTo(t,g,e),e},r.prototype.not=function(){for(var t=i(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var m=i();for(n.sqrTo(h[1],m);a<=f;)h[a]=i(),n.mulTo(m,h[a-2],h[a]),a+=2}var v,y,g=t.t-1,w=!0,T=i();for(o=p(t[g])-1;g>=0;){for(o>=u?v=t[g]>>o-u&f:(v=(t[g]&(1<0&&(v|=t[g-1]>>this.DB+o-u)),a=r;0==(1&v);)v>>=1,--a;if((o-=a)<0&&(o+=this.DB,--g),w)h[v].copyTo(s),w=!1;else{for(;a>1;)n.sqrTo(s,T),n.sqrTo(T,s),a-=2;a>0?n.sqrTo(s,T):(y=s,s=T,T=y),n.mulTo(T,h[v],s)}for(;g>=0&&0==(t[g]&1<=0?(i.subTo(n,i),e&&o.subTo(h,o),s.subTo(a,s)):(n.subTo(i,n),e&&h.subTo(o,h),a.subTo(s,a))}return 0!=n.compareTo(r.ONE)?r.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},r.prototype.pow=function(t){return this.exp(t,new b)},r.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var i=e;e=r,r=i}var n=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(n0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(n=e.getLowestSetBit())>0&&e.rShiftTo(n,e),(n=r.getLowestSetBit())>0&&r.rShiftTo(n,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},r.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=x[x.length-1]){for(e=0;e>>8,D[B++]=255&M;B=0,E()}function R(){if(null==S){for(E(),(S=new O).init(D),B=0;B0&&e.length>0))throw new Error(\"Invalid key data\");this.n=new s(t,16),this.e=parseInt(e,16)}u.prototype.verify=function(t,e){e=e.replace(/[^0-9a-f]|[\\s\\n]]/gi,\"\");var r=new s(e,16);if(r.bitLength()>this.n.bitLength())throw new Error(\"Signature does not match with the key modulus.\");var i=function(t){for(var e in h){var r=h[e],i=r.length;if(t.substring(0,i)===r)return{alg:e,hash:t.substring(i)}}return[]}(r.modPowInt(this.e,this.n).toString(16).replace(/^1f+00/,\"\"));if(0===i.length)return!1;if(!a.hasOwnProperty(i.alg))throw new Error(\"Hashing algorithm is not supported.\");var n=a[i.alg](t).toString();return i.hash===n};for(var f=[],c=[],p=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,l=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",d=0,m=l.length;d0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function y(t,e,r){for(var i,n=[],o=e;o>18&63]+f[i>>12&63]+f[i>>6&63]+f[63&i]);return n.join(\"\")}c[\"-\".charCodeAt(0)]=62,c[\"_\".charCodeAt(0)]=63;var g={byteLength:function(t){var e=v(t),r=e[1];return 3*(e[0]+r)/4-r},toByteArray:function(t){var e,r,i=v(t),n=i[0],o=i[1],s=new p(3*(n+o)/4-o),h=0,a=o>0?n-4:n;for(r=0;r>16&255,s[h++]=e>>8&255,s[h++]=255&e;return 2===o&&(e=c[t.charCodeAt(r)]<<2|c[t.charCodeAt(r+1)]>>4,s[h++]=255&e),1===o&&(e=c[t.charCodeAt(r)]<<10|c[t.charCodeAt(r+1)]<<4|c[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e),s},fromByteArray:function(t){for(var e,r=t.length,i=r%3,n=[],o=0,s=r-i;os?s:o+16383));return 1===i?n.push(f[(e=t[r-1])>>2]+f[e<<4&63]+\"==\"):2===i&&n.push(f[(e=(t[r-2]<<8)+t[r-1])>>10]+f[e>>4&63]+f[e<<2&63]+\"=\"),n.join(\"\")}};function w(t){var e=t.length%4;return 0===e?t:t+new Array(4-e+1).join(\"=\")}function T(t){return t=w(t).replace(/\\-/g,\"+\").replace(/_/g,\"/\"),decodeURIComponent(function(t){for(var e=\"\",r=0;r1){var r=t.shift();t[0]=r+t[0]}t[0]=t[0].match(/^file:\\/\\/\\//)?t[0].replace(/^([^\\/:]+):\\/*/,\"$1:///\"):t[0].replace(/^([^\\/:]+):\\/*/,\"$1://\");for(var i=0;i0&&(n=n.replace(/^[\\/]+/,\"\")),n=n.replace(/[\\/]+$/,i0?\"?\":\"\")+s.join(\"&\")}(\"object\"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},e.exports?e.exports=i():r.urljoin=i()});function S(t){if(t.ok)return t.json();var e=new Error(t.statusText);return e.response=t,Promise.reject(e)}function D(t){this.name=\"ConfigurationError\",this.message=t||\"\"}function B(t){this.name=\"TokenValidationError\",this.message=t||\"\"}_.polyfill(),D.prototype=Error.prototype,B.prototype=Error.prototype;var x=function(){};x.prototype.get=function(){return null},x.prototype.has=function(){return null},x.prototype.set=function(){return null};var k=\"RS256\",E=function(t){return\"number\"==typeof t},M=function(){return new Date},I=60;function C(t){var e=t||{};if(this.jwksCache=e.jwksCache||new x,this.expectedAlg=e.expectedAlg||\"RS256\",this.issuer=e.issuer,this.audience=e.audience,this.leeway=0===e.leeway?0:e.leeway||I,this.jwksURI=e.jwksURI,this.maxAge=e.maxAge,this.__clock=\"function\"==typeof e.__clock?e.__clock:M,this.leeway<0||this.leeway>300)throw new D(\"The leeway should be positive and lower than five minutes.\");if(k!==this.expectedAlg)throw new D('Signature algorithm of \"'+this.expectedAlg+'\" is not supported. Expected the ID token to be signed with \"'+k+'\".')}function PluginHandler(webAuth,plugins){this.plugins=plugins;for(var a=0;a1){if(!d||\"string\"!=typeof d)return r(new B(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\",!1));if(d!==g.audience)return r(new B('Authorized Party (azp) claim mismatch in the ID token; expected \"'+g.audience+'\", found \"'+d+'\"',!1))}if(!c||!E(c))return r(new B(\"Expiration Time (exp) claim must be a number present in the ID token\",!1));if(!l||!E(l))return r(new B(\"Issued At (iat) claim must be a number present in the ID token\"));var h=c+g.leeway,w=new Date(0);if(w.setUTCSeconds(h),y>w)return r(new B('Expiration Time (exp) claim error in the ID token; current time \"'+y+'\" is after expiration time \"'+w+'\"',!1));var T=l-g.leeway,b=new Date(0);if(b.setUTCSeconds(T),yD)return r(new B('Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time \"'+y+'\" is after last auth time at \"'+D+'\"'))}return r(null,i.payload)})},C.prototype.getRsaVerifier=function(t,e,r){var i=this,n=t+e;if(this.jwksCache.has(n)){var o=this.jwksCache.get(n);r(null,new u(o.modulus,o.exp))}else!function(t,e){(\"undefined\"==typeof fetch?function(t,e){return e=e||{},new Promise(function(r,i){var n=new XMLHttpRequest,o=[],s=[],h={},a=function(){return{ok:2==(n.status/100|0),statusText:n.statusText,status:n.status,url:n.responseURL,text:function(){return Promise.resolve(n.responseText)},json:function(){return Promise.resolve(JSON.parse(n.responseText))},blob:function(){return Promise.resolve(new Blob([n.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return s},get:function(t){return h[t.toLowerCase()]},has:function(t){return t.toLowerCase()in h}}}};for(var u in n.open(e.method||\"get\",t,!0),n.onload=function(){n.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(t,e,r){o.push(e=e.toLowerCase()),s.push([e,r]),h[e]=h[e]?h[e]+\",\"+r:r}),r(a())},n.onerror=i,n.withCredentials=\"include\"==e.credentials,e.headers)n.setRequestHeader(u,e.headers[u]);n.send(e.body||null)})}:fetch)(t.jwksURI||A(t.iss,\".well-known\",\"jwks.json\")).then(S).then(function(r){var i,n,o,s=null;for(i=0;i-1&&null!==new RegExp(\"rv:([0-9]{2,2}[.0-9]{0,})\").exec(ua)&&(rv=parseFloat(RegExp.$1));return rv>=8}();return\"undefined\"!=typeof window&&window.JSON&&window.JSON.stringify&&window.JSON.parse&&window.postMessage?{open:function(opts,cb){if(!cb)throw\"missing required callback argument\";var err,iframe;opts.url||(err=\"missing required 'url' parameter\"),opts.relay_url||(err=\"missing required 'relay_url' parameter\"),err&&setTimeout(function(){cb(err)},0),opts.window_name||(opts.window_name=null),opts.window_features&&!function(){try{var userAgent=navigator.userAgent;return-1!=userAgent.indexOf(\"Fennec/\")||-1!=userAgent.indexOf(\"Firefox/\")&&-1!=userAgent.indexOf(\"Android\")}catch(e){}return!1}()||(opts.window_features=void 0);var messageTarget,origin=opts.origin||extractOrigin(opts.url);if(origin!==extractOrigin(opts.relay_url))return setTimeout(function(){cb(\"invalid arguments: origin of url and relay_url must match\")},0);isIE&&((iframe=document.createElement(\"iframe\")).setAttribute(\"src\",opts.relay_url),iframe.style.display=\"none\",iframe.setAttribute(\"name\",RELAY_FRAME_NAME),document.body.appendChild(iframe),messageTarget=iframe.contentWindow);var w=opts.popup||window.open(opts.url,opts.window_name,opts.window_features);opts.popup&&(w.location.href=opts.url),messageTarget||(messageTarget=w);var closeInterval=setInterval(function(){w&&w.closed&&(cleanup(),cb&&(cb(\"User closed the popup window\"),cb=null))},500),req=JSON.stringify({a:\"request\",d:opts.params});function cleanup(){if(iframe&&document.body.removeChild(iframe),iframe=void 0,closeInterval&&(closeInterval=clearInterval(closeInterval)),removeListener(window,\"message\",onMessage),removeListener(window,\"unload\",cleanup),w)try{w.close()}catch(securityViolation){messageTarget.postMessage(CLOSE_CMD,origin)}w=messageTarget=void 0}function onMessage(e){if(e.origin===origin){try{var d=JSON.parse(e.data)}catch(err){if(cb)return cb(err);throw err}\"ready\"===d.a?messageTarget.postMessage(req,origin):\"error\"===d.a?(cleanup(),cb&&(cb(d.d),cb=null)):\"response\"===d.a&&(cleanup(),cb&&(cb(null,d.d),cb=null))}}return addListener(window,\"unload\",cleanup),addListener(window,\"message\",onMessage),{originalPopup:w,close:cleanup,focus:function(){if(w)try{w.focus()}catch(e){}}}},onOpen:function(cb){var o=\"*\",msgTarget=isIE?function(){window.location;for(var frames=window.opener.frames,i=frames.length-1;i>=0;i--)try{if(frames[i].location.protocol===window.location.protocol&&frames[i].location.host===window.location.host&&frames[i].name===RELAY_FRAME_NAME)return frames[i]}catch(e){}}():window.opener;if(!msgTarget)throw\"can't find relay frame\";function doPost(msg){msg=JSON.stringify(msg),isIE?msgTarget.doPost(msg,o):msgTarget.postMessage(msg,o)}function onDie(e){if(e.data===CLOSE_CMD)try{window.close()}catch(o_O){}}addListener(isIE?msgTarget:window,\"message\",function onMessage(e){var d;try{d=JSON.parse(e.data)}catch(err){}d&&\"request\"===d.a&&(removeListener(window,\"message\",onMessage),o=e.origin,cb&&setTimeout(function(){cb(o,d.d,function(r){cb=void 0,doPost({a:\"response\",d:r})})},0))}),addListener(isIE?msgTarget:window,\"message\",onDie);try{doPost({a:\"ready\"})}catch(e){addListener(msgTarget,\"load\",function(e){doPost({a:\"ready\"})})}var onUnload=function(){try{removeListener(isIE?msgTarget:window,\"message\",onDie)}catch(ohWell){}cb&&doPost({a:\"error\",d:\"client closed window\"}),cb=void 0;try{window.close()}catch(e){}};return addListener(window,\"unload\",onUnload),{detach:function(){removeListener(window,\"unload\",onUnload)}}}}:{open:function(url,winopts,arg,cb){setTimeout(function(){cb(\"unsupported browser\")},0)},onOpen:function(cb){setTimeout(function(){cb(\"unsupported browser\")},0)}}}();module.exports&&(module.exports=WinChan)});var urlHelper={extractOrigin:function(url){/^https?:\\/\\//.test(url)||(url=window.location.href);var m=/^(https?:\\/\\/[-_a-zA-Z.0-9:]+)/.exec(url);return m?m[1]:url}};function PopupHandler(){this._current_popup=null}function Popup(webAuth,options){this.baseOptions=options,this.baseOptions.popupOrigin=options.popupOrigin,this.client=webAuth.client,this.webAuth=webAuth,this.transactionManager=new TransactionManager(this.baseOptions),this.crossOriginAuthentication=new CrossOriginAuthentication(webAuth,this.baseOptions),this.warn=new Warn({disableWarnings:!!options._disableDeprecationWarnings})}function SilentAuthenticationHandler(options){this.authenticationUrl=options.authenticationUrl,this.timeout=options.timeout||6e4,this.handler=null,this.postMessageDataType=options.postMessageDataType||!1,this.postMessageOrigin=options.postMessageOrigin||windowHelper.getWindow().location.origin||windowHelper.getWindow().location.protocol+\"//\"+windowHelper.getWindow().location.hostname+(windowHelper.getWindow().location.port?\":\"+windowHelper.getWindow().location.port:\"\")}function UsernamePassword(options){this.baseOptions=options,this.request=new RequestBuilder(options),this.transactionManager=new TransactionManager(this.baseOptions)}function HostedPages(client,options){this.baseOptions=options,this.client=client,this.baseOptions.universalLoginPage=!0,this.request=new RequestBuilder(this.baseOptions),this.warn=new Warn({disableWarnings:!!options._disableDeprecationWarnings})}function defaultClock(){return new Date}function WebAuth(options){assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{domain:{type:\"string\",message:\"domain option is required\"},clientID:{type:\"string\",message:\"clientID option is required\"},responseType:{optional:!0,type:\"string\",message:\"responseType is not valid\"},responseMode:{optional:!0,type:\"string\",message:\"responseMode is not valid\"},redirectUri:{optional:!0,type:\"string\",message:\"redirectUri is not valid\"},scope:{optional:!0,type:\"string\",message:\"scope is not valid\"},audience:{optional:!0,type:\"string\",message:\"audience is not valid\"},popupOrigin:{optional:!0,type:\"string\",message:\"popupOrigin is not valid\"},leeway:{optional:!0,type:\"number\",message:\"leeway is not valid\"},plugins:{optional:!0,type:\"array\",message:\"plugins is not valid\"},maxAge:{optional:!0,type:\"number\",message:\"maxAge is not valid\"},_disableDeprecationWarnings:{optional:!0,type:\"boolean\",message:\"_disableDeprecationWarnings option is not valid\"},_sendTelemetry:{optional:!0,type:\"boolean\",message:\"_sendTelemetry option is not valid\"},_telemetryInfo:{optional:!0,type:\"object\",message:\"_telemetryInfo option is not valid\"},_timesToRetryFailedRequests:{optional:!0,type:\"number\",message:\"_timesToRetryFailedRequests option is not valid\"}}),options.overrides&&assert.check(options.overrides,{type:\"object\",message:\"overrides option is not valid\"},{__tenant:{optional:!0,type:\"string\",message:\"__tenant option is required\"},__token_issuer:{optional:!0,type:\"string\",message:\"__token_issuer option is required\"},__jwks_uri:{optional:!0,type:\"string\",message:\"__jwks_uri is required\"}}),this.baseOptions=options,this.baseOptions.plugins=new PluginHandler(this,this.baseOptions.plugins||[]),this.baseOptions._sendTelemetry=!1!==this.baseOptions._sendTelemetry||this.baseOptions._sendTelemetry,this.baseOptions._timesToRetryFailedRequests=options._timesToRetryFailedRequests?parseInt(options._timesToRetryFailedRequests,0):0,this.baseOptions.tenant=this.baseOptions.overrides&&this.baseOptions.overrides.__tenant||this.baseOptions.domain.split(\".\")[0],this.baseOptions.token_issuer=this.baseOptions.overrides&&this.baseOptions.overrides.__token_issuer||\"https://\"+this.baseOptions.domain+\"/\",this.baseOptions.jwksURI=this.baseOptions.overrides&&this.baseOptions.overrides.__jwks_uri,this.transactionManager=new TransactionManager(this.baseOptions),this.client=new Authentication(this.baseOptions),this.redirect=new Redirect(this,this.baseOptions),this.popup=new Popup(this,this.baseOptions),this.crossOriginAuthentication=new CrossOriginAuthentication(this,this.baseOptions),this.webMessageHandler=new WebMessageHandler(this),this._universalLogin=new HostedPages(this,this.baseOptions),this.ssodataStorage=new SSODataStorage(this.baseOptions)}function PasswordlessAuthentication(request,options){this.baseOptions=options,this.request=request}function DBConnection(request,options){this.baseOptions=options,this.request=request}function Authentication(auth0,options){2===arguments.length?this.auth0=auth0:options=auth0,assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{domain:{type:\"string\",message:\"domain option is required\"},clientID:{type:\"string\",message:\"clientID option is required\"},responseType:{optional:!0,type:\"string\",message:\"responseType is not valid\"},responseMode:{optional:!0,type:\"string\",message:\"responseMode is not valid\"},redirectUri:{optional:!0,type:\"string\",message:\"redirectUri is not valid\"},scope:{optional:!0,type:\"string\",message:\"scope is not valid\"},audience:{optional:!0,type:\"string\",message:\"audience is not valid\"},_disableDeprecationWarnings:{optional:!0,type:\"boolean\",message:\"_disableDeprecationWarnings option is not valid\"},_sendTelemetry:{optional:!0,type:\"boolean\",message:\"_sendTelemetry option is not valid\"},_telemetryInfo:{optional:!0,type:\"object\",message:\"_telemetryInfo option is not valid\"}}),this.baseOptions=options,this.baseOptions._sendTelemetry=!1!==this.baseOptions._sendTelemetry||this.baseOptions._sendTelemetry,this.baseOptions.rootUrl=\"https://\"+this.baseOptions.domain,this.request=new RequestBuilder(this.baseOptions),this.passwordless=new PasswordlessAuthentication(this.request,this.baseOptions),this.dbConnection=new DBConnection(this.request,this.baseOptions),this.warn=new Warn({disableWarnings:!!options._disableDeprecationWarnings}),this.ssodataStorage=new SSODataStorage(this.baseOptions)}function Management(options){assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{domain:{type:\"string\",message:\"domain option is required\"},token:{type:\"string\",message:\"token option is required\"},_sendTelemetry:{optional:!0,type:\"boolean\",message:\"_sendTelemetry option is not valid\"},_telemetryInfo:{optional:!0,type:\"object\",message:\"_telemetryInfo option is not valid\"}}),this.baseOptions=options,this.baseOptions.headers={Authorization:\"Bearer \"+this.baseOptions.token},this.request=new RequestBuilder(this.baseOptions),this.baseOptions.rootUrl=urlJoin(\"https://\"+this.baseOptions.domain,\"api\",\"v2\")}PopupHandler.prototype.calculatePosition=function(options){var width=options.width||500,height=options.height||600,_window=windowHelper.getWindow(),screenX=void 0!==_window.screenX?_window.screenX:_window.screenLeft,screenY=void 0!==_window.screenY?_window.screenY:_window.screenTop,outerWidth=void 0!==_window.outerWidth?_window.outerWidth:_window.document.body.clientWidth,outerHeight=void 0!==_window.outerHeight?_window.outerHeight:_window.document.body.clientHeight;return{width:width,height:height,left:options.left||screenX+(outerWidth-width)/2,top:options.top||screenY+(outerHeight-height)/2}},PopupHandler.prototype.preload=function(options){var _this=this,_window=windowHelper.getWindow(),popupPosition=this.calculatePosition(options.popupOptions||{}),popupOptions=objectHelper.merge(popupPosition).with(options.popupOptions),url=options.url||\"about:blank\",windowFeatures=lib_stringify(popupOptions,{encode:!1,delimiter:\",\"});return this._current_popup&&!this._current_popup.closed?this._current_popup:(this._current_popup=_window.open(url,\"auth0_signup_popup\",windowFeatures),this._current_popup.kill=function(){this.close(),_this._current_popup=null},this._current_popup)},PopupHandler.prototype.load=function(url,relayUrl,options,cb){var _this=this,popupPosition=this.calculatePosition(options.popupOptions||{}),popupOptions=objectHelper.merge(popupPosition).with(options.popupOptions),winchanOptions=objectHelper.merge({url:url,relay_url:relayUrl,window_features:lib_stringify(popupOptions,{delimiter:\",\",encode:!1}),popup:this._current_popup}).with(options),popup=winchan.open(winchanOptions,function(err,data){if(!err||\"SyntaxError\"!==err.name)return _this._current_popup=null,cb(err,data)});return popup.focus(),popup},Popup.prototype.buildPopupHandler=function(){var pluginHandler=this.baseOptions.plugins.get(\"popup.getPopupHandler\");return pluginHandler?pluginHandler.getPopupHandler():new PopupHandler},Popup.prototype.preload=function(options){options=options||{};var popup=this.buildPopupHandler();return popup.preload(options),popup},Popup.prototype.getPopupHandler=function(options,preload){return options.popupHandler?options.popupHandler:preload?this.preload(options):this.buildPopupHandler()},Popup.prototype.callback=function(options){var _this=this,theWindow=windowHelper.getWindow(),originUrl=(options=options||{}).popupOrigin||this.baseOptions.popupOrigin||windowHelper.getOrigin();theWindow.opener?winchan.onOpen(function(popupOrigin,r,cb){if(popupOrigin!==originUrl)return cb({error:\"origin_mismatch\",error_description:\"The popup's origin (\"+popupOrigin+\") should match the `popupOrigin` parameter (\"+originUrl+\").\"});_this.webAuth.parseHash(options||{},function(err,data){return cb(err||data)})}):theWindow.doPost=function(msg){theWindow.parent&&theWindow.parent.postMessage(msg,originUrl)}},Popup.prototype.authorize=function(options,cb){var url,relayUrl,popOpts={},pluginHandler=this.baseOptions.plugins.get(\"popup.authorize\"),params=objectHelper.merge(this.baseOptions,[\"clientID\",\"scope\",\"domain\",\"audience\",\"tenant\",\"responseType\",\"redirectUri\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(objectHelper.blacklist(options,[\"popupHandler\"]));return assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),relayUrl=urlJoin(this.baseOptions.rootUrl,\"relay.html\"),options.owp?params.owp=!0:(popOpts.origin=urlHelper.extractOrigin(params.redirectUri),relayUrl=params.redirectUri),options.popupOptions&&(popOpts.popupOptions=objectHelper.pick(options.popupOptions,[\"width\",\"height\",\"top\",\"left\"])),pluginHandler&&(params=pluginHandler.processParams(params)),(params=this.transactionManager.process(params)).scope=params.scope||\"openid profile email\",delete params.domain,url=this.client.buildAuthorizeUrl(params),this.getPopupHandler(options).load(url,relayUrl,popOpts,wrapCallback(cb,{keepOriginalCasing:!0}))},Popup.prototype.loginWithCredentials=function(options,cb){options.realm=options.realm||options.connection,options.popup=!0,options=objectHelper.merge(this.baseOptions,[\"redirectUri\",\"responseType\",\"state\",\"nonce\"]).with(objectHelper.blacklist(options,[\"popupHandler\",\"connection\"])),options=this.transactionManager.process(options),this.crossOriginAuthentication.login(options,cb)},Popup.prototype.passwordlessVerify=function(options,cb){var _this=this;return this.client.passwordless.verify(objectHelper.blacklist(options,[\"popupHandler\"]),function(err){if(err)return cb(err);options.username=options.phoneNumber||options.email,options.password=options.verificationCode,delete options.email,delete options.phoneNumber,delete options.verificationCode,delete options.type,_this.client.loginWithResourceOwner(options,cb)})},Popup.prototype.signupAndLogin=function(options,cb){var _this=this;return this.client.dbConnection.signup(options,function(err){if(err)return cb(err);_this.loginWithCredentials(options,cb)})},SilentAuthenticationHandler.create=function(options){return new SilentAuthenticationHandler(options)},SilentAuthenticationHandler.prototype.login=function(usePostMessage,callback){this.handler=new IframeHandler({auth0:this.auth0,url:this.authenticationUrl,eventListenerType:usePostMessage?\"message\":\"load\",callback:this.getCallbackHandler(callback,usePostMessage),timeout:this.timeout,eventValidator:this.getEventValidator(),timeoutCallback:function(){callback(null,\"#error=timeout&error_description=Timeout+during+authentication+renew.\")},usePostMessage:usePostMessage||!1}),this.handler.init()},SilentAuthenticationHandler.prototype.getEventValidator=function(){var _this=this;return{isValid:function(eventData){switch(eventData.event.type){case\"message\":return eventData.event.origin===_this.postMessageOrigin&&eventData.event.source===_this.handler.iframe.contentWindow&&(!1===_this.postMessageDataType||eventData.event.data.type&&eventData.event.data.type===_this.postMessageDataType);case\"load\":if(\"about:\"===eventData.sourceObject.contentWindow.location.protocol)return!1;default:return!0}}}},SilentAuthenticationHandler.prototype.getCallbackHandler=function(callback,usePostMessage){return function(eventData){var callbackValue;callbackValue=usePostMessage?\"object\"==typeof eventData.event.data&&eventData.event.data.hash?eventData.event.data.hash:eventData.event.data:eventData.sourceObject.contentWindow.location.hash,callback(null,callbackValue)}},UsernamePassword.prototype.login=function(options,cb){var url,body;return url=urlJoin(this.baseOptions.rootUrl,\"usernamepassword\",\"login\"),options.username=options.username||options.email,options=objectHelper.blacklist(options,[\"email\"]),body=objectHelper.merge(this.baseOptions,[\"clientID\",\"redirectUri\",\"tenant\",\"responseType\",\"responseMode\",\"scope\",\"audience\"]).with(options),body=this.transactionManager.process(body),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),this.request.post(url).send(body).end(wrapCallback(cb))},UsernamePassword.prototype.callback=function(formHtml){var div,_document=windowHelper.getDocument();(div=_document.createElement(\"div\")).innerHTML=formHtml,_document.body.appendChild(div).children[0].submit()},HostedPages.prototype.login=function(options,cb){if(windowHelper.getWindow().location.host!==this.baseOptions.domain)throw new Error(\"This method is meant to be used only inside the Universal Login Page.\");var usernamePassword,params=objectHelper.merge(this.baseOptions,[\"clientID\",\"redirectUri\",\"tenant\",\"responseType\",\"responseMode\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);return assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),(usernamePassword=new UsernamePassword(this.baseOptions)).login(params,function(err,data){return err?cb(err):usernamePassword.callback(data)})},HostedPages.prototype.signupAndLogin=function(options,cb){var _this=this;return _this.client.client.dbConnection.signup(options,function(err){return err?cb(err):_this.login(options,cb)})},HostedPages.prototype.getSSOData=function(withActiveDirectories,cb){var url,params=\"\";return\"function\"==typeof withActiveDirectories&&(cb=withActiveDirectories,withActiveDirectories=!1),assert.check(withActiveDirectories,{type:\"boolean\",message:\"withActiveDirectories parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),withActiveDirectories&&(params=\"?\"+lib_stringify({ldaps:1,client_id:this.baseOptions.clientID})),url=urlJoin(this.baseOptions.rootUrl,\"user\",\"ssodata\",params),this.request.get(url,{noHeaders:!0}).withCredentials().end(wrapCallback(cb))},WebAuth.prototype.parseHash=function(options,cb){var parsedQs,err;cb||\"function\"!=typeof options?options=options||{}:(cb=options,options={});var _window=windowHelper.getWindow(),hashStr=void 0===options.hash?_window.location.hash:options.hash;if(hashStr=hashStr.replace(/^#?\\/?/,\"\"),(parsedQs=lib_parse(hashStr)).hasOwnProperty(\"error\"))return err=error.buildResponse(parsedQs.error,parsedQs.error_description),parsedQs.state&&(err.state=parsedQs.state),cb(err);if(!parsedQs.hasOwnProperty(\"access_token\")&&!parsedQs.hasOwnProperty(\"id_token\")&&!parsedQs.hasOwnProperty(\"refresh_token\"))return cb(null,null);var responseTypes=(this.baseOptions.responseType||options.responseType||\"\").split(\" \");return responseTypes.length>0&&-1!==responseTypes.indexOf(\"token\")&&!parsedQs.hasOwnProperty(\"access_token\")?cb(error.buildResponse(\"invalid_hash\",\"response_type contains `token`, but the parsed hash does not contain an `access_token` property\")):responseTypes.length>0&&-1!==responseTypes.indexOf(\"id_token\")&&!parsedQs.hasOwnProperty(\"id_token\")?cb(error.buildResponse(\"invalid_hash\",\"response_type contains `id_token`, but the parsed hash does not contain an `id_token` property\")):this.validateAuthenticationResponse(options,parsedQs,cb)},WebAuth.prototype.validateAuthenticationResponse=function(options,parsedHash,cb){var _this=this;options.__enableIdPInitiatedLogin=options.__enableIdPInitiatedLogin||options.__enableImpersonation;var state=parsedHash.state,transaction=this.transactionManager.getStoredTransaction(state),transactionState=options.state||transaction&&transaction.state||null,transactionStateMatchesState=transactionState===state;if(!(!state&&!transactionState&&options.__enableIdPInitiatedLogin)&&!transactionStateMatchesState)return cb({error:\"invalid_token\",errorDescription:\"`state` does not match.\"});var transactionNonce=options.nonce||transaction&&transaction.nonce||null,appState=options.state||transaction&&transaction.appState||null,callback=function(err,payload){if(err)return cb(err);var sub;transaction&&transaction.lastUsedConnection&&(payload&&(sub=payload.sub),_this.ssodataStorage.set(transaction.lastUsedConnection,sub));return cb(null,function(qsParams,appState,token){return{accessToken:qsParams.access_token||null,idToken:qsParams.id_token||null,idTokenPayload:token||null,appState:appState||null,refreshToken:qsParams.refresh_token||null,state:qsParams.state||null,expiresIn:qsParams.expires_in?parseInt(qsParams.expires_in,10):null,tokenType:qsParams.token_type||null,scope:qsParams.scope||null}}(parsedHash,appState,payload))};return parsedHash.id_token?this.validateToken(parsedHash.id_token,transactionNonce,function(validationError,payload){if(!validationError)return parsedHash.access_token&&payload.at_hash?(new C).validateAccessToken(parsedHash.access_token,\"RS256\",payload.at_hash,function(err){return err?callback(error.invalidToken(err.message)):callback(null,payload)}):callback(null,payload);if(\"invalid_token\"!==validationError.error||validationError.errorDescription&&validationError.errorDescription.indexOf(\"Nonce (nonce) claim value mismatch in the ID token\")>-1)return callback(validationError);var decodedToken=(new C).decode(parsedHash.id_token);if(\"HS256\"!==decodedToken.header.alg)return callback(validationError);if((decodedToken.payload.nonce||null)!==transactionNonce)return callback({error:\"invalid_token\",errorDescription:'Nonce (nonce) claim value mismatch in the ID token; expected \"'+transactionNonce+'\", found \"'+decodedToken.payload.nonce+'\"'});if(!parsedHash.access_token){return callback({error:\"invalid_token\",description:\"The id_token cannot be validated because it was signed with the HS256 algorithm and public clients (like a browser) can’t store secrets. Please read the associated doc for possible ways to fix this. Read more: https://auth0.com/docs/errors/libraries/auth0-js/invalid-token#parsing-an-hs256-signed-id-token-without-an-access-token\"})}return _this.client.userInfo(parsedHash.access_token,function(errUserInfo,profile){return errUserInfo?callback(errUserInfo):callback(null,profile)})}):callback(null,null)},WebAuth.prototype.validateToken=function(token,nonce,cb){new C({issuer:this.baseOptions.token_issuer,jwksURI:this.baseOptions.jwksURI,audience:this.baseOptions.clientID,leeway:this.baseOptions.leeway||60,maxAge:this.baseOptions.maxAge,__clock:this.baseOptions.__clock||defaultClock}).verify(token,nonce,function(err,payload){if(err)return cb(error.invalidToken(err.message));cb(null,payload)})},WebAuth.prototype.renewAuth=function(options,cb){var usePostMessage=!!options.usePostMessage,postMessageDataType=options.postMessageDataType||!1,postMessageOrigin=options.postMessageOrigin||windowHelper.getWindow().origin,timeout=options.timeout,_this=this,params=objectHelper.merge(this.baseOptions,[\"clientID\",\"redirectUri\",\"responseType\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);params.responseType=params.responseType||\"token\",params.responseMode=params.responseMode||\"fragment\",params=this.transactionManager.process(params),assert.check(params,{type:\"object\",message:\"options parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),params.prompt=\"none\",params=objectHelper.blacklist(params,[\"usePostMessage\",\"tenant\",\"postMessageDataType\",\"postMessageOrigin\"]),SilentAuthenticationHandler.create({authenticationUrl:this.client.buildAuthorizeUrl(params),postMessageDataType:postMessageDataType,postMessageOrigin:postMessageOrigin,timeout:timeout}).login(usePostMessage,function(err,hash){if(\"object\"==typeof hash)return cb(err,hash);_this.parseHash({hash:hash},cb)})},WebAuth.prototype.checkSession=function(options,cb){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);return\"code\"===params.responseType?cb({error:\"error\",error_description:\"responseType can't be `code`\"}):(options.nonce||(params=this.transactionManager.process(params)),params.redirectUri?(assert.check(params,{type:\"object\",message:\"options parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),params=objectHelper.blacklist(params,[\"usePostMessage\",\"tenant\",\"postMessageDataType\"]),void this.webMessageHandler.run(params,wrapCallback(cb,{forceLegacyError:!0,ignoreCasing:!0}))):cb({error:\"error\",error_description:\"redirectUri can't be empty\"}))},WebAuth.prototype.changePassword=function(options,cb){return this.client.dbConnection.changePassword(options,cb)},WebAuth.prototype.passwordlessStart=function(options,cb){var authParams=objectHelper.merge(this.baseOptions,[\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options.authParams);return options.authParams=this.transactionManager.process(authParams),this.client.passwordless.start(options,cb)},WebAuth.prototype.signup=function(options,cb){return this.client.dbConnection.signup(options,cb)},WebAuth.prototype.authorize=function(options){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),(params=this.transactionManager.process(params)).scope=params.scope||\"openid profile email\",windowHelper.redirect(this.client.buildAuthorizeUrl(params))},WebAuth.prototype.signupAndAuthorize=function(options,cb){var _this=this;return this.client.dbConnection.signup(objectHelper.blacklist(options,[\"popupHandler\"]),function(err){if(err)return cb(err);options.realm=options.connection,options.username||(options.username=options.email),_this.client.login(options,cb)})},WebAuth.prototype.login=function(options,cb){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);params=this.transactionManager.process(params),windowHelper.getWindow().location.host===this.baseOptions.domain?(params.connection=params.realm,delete params.realm,this._universalLogin.login(params,cb)):this.crossOriginAuthentication.login(params,cb)},WebAuth.prototype.passwordlessLogin=function(options,cb){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);if(params=this.transactionManager.process(params),windowHelper.getWindow().location.host===this.baseOptions.domain)this.passwordlessVerify(params,cb);else{var crossOriginOptions=objectHelper.extend({credentialType:\"http://auth0.com/oauth/grant-type/passwordless/otp\",realm:params.connection,username:params.email||params.phoneNumber,otp:params.verificationCode},objectHelper.blacklist(params,[\"connection\",\"email\",\"phoneNumber\",\"verificationCode\"]));this.crossOriginAuthentication.login(crossOriginOptions,cb)}},WebAuth.prototype.crossOriginAuthenticationCallback=function(){this.crossOriginVerification()},WebAuth.prototype.crossOriginVerification=function(){this.crossOriginAuthentication.callback()},WebAuth.prototype.logout=function(options){windowHelper.redirect(this.client.buildLogoutUrl(options))},WebAuth.prototype.passwordlessVerify=function(options,cb){var _this=this,params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);return assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),params=this.transactionManager.process(params),this.client.passwordless.verify(params,function(err){return err?cb(err):windowHelper.redirect(_this.client.passwordless.buildVerifyUrl(params))})},PasswordlessAuthentication.prototype.buildVerifyUrl=function(options){var params,qString;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},verificationCode:{type:\"string\",message:\"verificationCode option is required\"},phoneNumber:{optional:!1,type:\"string\",message:\"phoneNumber option is required\",condition:function(o){return!o.email}},email:{optional:!1,type:\"string\",message:\"email option is required\",condition:function(o){return!o.phoneNumber}}}),params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"protocol\",\"nonce\"]).with(options),this.baseOptions._sendTelemetry&&(params.auth0Client=this.request.getTelemetryData()),params=objectHelper.toSnakeCase(params,[\"auth0Client\"]),qString=lib_stringify(params),urlJoin(this.baseOptions.rootUrl,\"passwordless\",\"verify_redirect\",\"?\"+qString)},PasswordlessAuthentication.prototype.start=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},send:{type:\"string\",message:\"send option is required\",values:[\"link\",\"code\"],value_message:\"send is not valid ([link, code])\"},phoneNumber:{optional:!0,type:\"string\",message:\"phoneNumber option is required\",condition:function(o){return\"code\"===o.send||!o.email}},email:{optional:!0,type:\"string\",message:\"email option is required\",condition:function(o){return\"link\"===o.send||!o.phoneNumber}},authParams:{optional:!0,type:\"object\",message:\"authParams option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"passwordless\",\"start\"),(body=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\"]).with(options)).scope&&(body.authParams=body.authParams||{},body.authParams.scope=body.authParams.scope||body.scope),body.redirectUri&&(body.authParams=body.authParams||{},body.authParams.redirect_uri=body.authParams.redirectUri||body.redirectUri),body.responseType&&(body.authParams=body.authParams||{},body.authParams.response_type=body.authParams.responseType||body.responseType),delete body.redirectUri,delete body.responseType,delete body.scope,body=objectHelper.toSnakeCase(body,[\"auth0Client\",\"authParams\"]),this.request.post(url).send(body).end(wrapCallback(cb))},PasswordlessAuthentication.prototype.verify=function(options,cb){var url,cleanOption;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},verificationCode:{type:\"string\",message:\"verificationCode option is required\"},phoneNumber:{optional:!1,type:\"string\",message:\"phoneNumber option is required\",condition:function(o){return!o.email}},email:{optional:!1,type:\"string\",message:\"email option is required\",condition:function(o){return!o.phoneNumber}}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),cleanOption=objectHelper.pick(options,[\"connection\",\"verificationCode\",\"phoneNumber\",\"email\",\"auth0Client\"]),cleanOption=objectHelper.toSnakeCase(cleanOption,[\"auth0Client\"]),url=urlJoin(this.baseOptions.rootUrl,\"passwordless\",\"verify\"),this.request.post(url).send(cleanOption).end(wrapCallback(cb))},DBConnection.prototype.signup=function(options,cb){var url,body,metadata;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},email:{type:\"string\",message:\"email option is required\"},password:{type:\"string\",message:\"password option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"dbconnections\",\"signup\"),metadata=(body=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options)).user_metadata||body.userMetadata,body=objectHelper.blacklist(body,[\"scope\",\"userMetadata\",\"user_metadata\"]),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),metadata&&(body.user_metadata=metadata),this.request.post(url).send(body).end(wrapCallback(cb))},DBConnection.prototype.changePassword=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},email:{type:\"string\",message:\"email option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"dbconnections\",\"change_password\"),body=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options,[\"email\",\"connection\"]),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.buildAuthorizeUrl=function(options){var params,qString;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"}),params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\"]).with(options),assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{clientID:{type:\"string\",message:\"clientID option is required\"},redirectUri:{optional:!0,type:\"string\",message:\"redirectUri option is required\"},responseType:{type:\"string\",message:\"responseType option is required\"},nonce:{type:\"string\",message:\"nonce option is required\",condition:function(o){return-1===o.responseType.indexOf(\"code\")&&-1!==o.responseType.indexOf(\"id_token\")}},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),this.baseOptions._sendTelemetry&&(params.auth0Client=this.request.getTelemetryData()),params.connection_scope&&assert.isArray(params.connection_scope)&&(params.connection_scope=params.connection_scope.join(\",\")),params=objectHelper.blacklist(params,[\"username\",\"popupOptions\",\"domain\",\"tenant\",\"timeout\",\"appState\"]),params=objectHelper.toSnakeCase(params,[\"auth0Client\"]),params=parametersWhitelist.oauthAuthorizeParams(this.warn,params),qString=lib_stringify(params),urlJoin(this.baseOptions.rootUrl,\"authorize\",\"?\"+qString)},Authentication.prototype.buildLogoutUrl=function(options){var params,qString;return assert.check(options,{optional:!0,type:\"object\",message:\"options parameter is not valid\"}),params=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options||{}),this.baseOptions._sendTelemetry&&(params.auth0Client=this.request.getTelemetryData()),params=objectHelper.toSnakeCase(params,[\"auth0Client\",\"returnTo\"]),qString=lib_stringify(objectHelper.blacklist(params,[\"federated\"])),options&&void 0!==options.federated&&!1!==options.federated&&\"false\"!==options.federated&&(qString+=\"&federated\"),urlJoin(this.baseOptions.rootUrl,\"v2\",\"logout\",\"?\"+qString)},Authentication.prototype.loginWithDefaultDirectory=function(options,cb){return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{username:{type:\"string\",message:\"username option is required\"},password:{type:\"string\",message:\"password option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),options.grantType=\"password\",this.oauthToken(options,cb)},Authentication.prototype.login=function(options,cb){return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{username:{type:\"string\",message:\"username option is required\"},password:{type:\"string\",message:\"password option is required\"},realm:{type:\"string\",message:\"realm option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),options.grantType=\"http://auth0.com/oauth/grant-type/password-realm\",this.oauthToken(options,cb)},Authentication.prototype.oauthToken=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"oauth\",\"token\"),body=objectHelper.merge(this.baseOptions,[\"clientID\",\"scope\",\"audience\"]).with(options),assert.check(body,{type:\"object\",message:\"options parameter is not valid\"},{clientID:{type:\"string\",message:\"clientID option is required\"},grantType:{type:\"string\",message:\"grantType option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),body=parametersWhitelist.oauthTokenParams(this.warn,body),this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.loginWithResourceOwner=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{username:{type:\"string\",message:\"username option is required\"},password:{type:\"string\",message:\"password option is required\"},connection:{type:\"string\",message:\"connection option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"oauth\",\"ro\"),body=objectHelper.merge(this.baseOptions,[\"clientID\",\"scope\"]).with(options,[\"username\",\"password\",\"scope\",\"connection\",\"device\"]),(body=objectHelper.toSnakeCase(body,[\"auth0Client\"])).grant_type=body.grant_type||\"password\",this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.getSSOData=function(withActiveDirectories,cb){if(this.auth0||(this.auth0=new WebAuth(this.baseOptions)),windowHelper.getWindow().location.host===this.baseOptions.domain)return this.auth0._universalLogin.getSSOData(withActiveDirectories,cb);\"function\"==typeof withActiveDirectories&&(cb=withActiveDirectories),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"});var clientId=this.baseOptions.clientID,ssodataInformation=this.ssodataStorage.get()||{};this.auth0.checkSession({responseType:\"token id_token\",scope:\"openid profile email\",connection:ssodataInformation.lastUsedConnection,timeout:5e3},function(err,result){return err?\"login_required\"===err.error?cb(null,{sso:!1}):(\"consent_required\"===err.error&&(err.error_description=\"Consent required. When using `getSSOData`, the user has to be authenticated with the following scope: `openid profile email`.\"),cb(err,{sso:!1})):ssodataInformation.lastUsedSub&&ssodataInformation.lastUsedSub!==result.idTokenPayload.sub?cb(err,{sso:!1}):cb(null,{lastUsedConnection:{name:ssodataInformation.lastUsedConnection},lastUsedUserID:result.idTokenPayload.sub,lastUsedUsername:result.idTokenPayload.email||result.idTokenPayload.name,lastUsedClientID:clientId,sessionClients:[clientId],sso:!0})})},Authentication.prototype.userInfo=function(accessToken,cb){var url;return assert.check(accessToken,{type:\"string\",message:\"accessToken parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"userinfo\"),this.request.get(url).set(\"Authorization\",\"Bearer \"+accessToken).end(wrapCallback(cb,{ignoreCasing:!0}))},Authentication.prototype.getChallenge=function(cb){if(assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),!this.baseOptions.state)return cb();var url=urlJoin(this.baseOptions.rootUrl,\"usernamepassword\",\"challenge\");return this.request.post(url).send({state:this.baseOptions.state}).end(wrapCallback(cb,{ignoreCasing:!0}))},Authentication.prototype.delegation=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{grant_type:{type:\"string\",message:\"grant_type option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"delegation\"),body=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.getUserCountry=function(cb){var url;return assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"user\",\"geoloc\",\"country\"),this.request.get(url).end(wrapCallback(cb))},Management.prototype.getUser=function(userId,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId),this.request.get(url).end(wrapCallback(cb,{ignoreCasing:!0}))},Management.prototype.patchUserMetadata=function(userId,userMetadata,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(userMetadata,{type:\"object\",message:\"userMetadata parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId),this.request.patch(url).send({user_metadata:userMetadata}).end(wrapCallback(cb,{ignoreCasing:!0}))},Management.prototype.patchUserAttributes=function(userId,user,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(user,{type:\"object\",message:\"user parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId),this.request.patch(url).send(user).end(wrapCallback(cb,{ignoreCasing:!0}))},Management.prototype.linkUser=function(userId,secondaryUserToken,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(secondaryUserToken,{type:\"string\",message:\"secondaryUserToken parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId,\"identities\"),this.request.post(url).send({link_with:secondaryUserToken}).end(wrapCallback(cb,{ignoreCasing:!0}))};var index={Authentication:Authentication,Management:Management,WebAuth:WebAuth,version:version};/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n//# sourceMappingURL=auth0.min.esm.js.map\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(12), __webpack_require__(53)))\n\n/***/ }),\n/* 731 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\t// @todo %hack% the implementation of /image needs work.\n\t// There is currently no way to store an updated model, representing the current user image\n\t// and taking into account that the user may update the his/her image multiple times on one page load.\n\n\tvar Backbone = __webpack_require__(122),\n\t viewHelpers = __webpack_require__(576),\n\t $ = __webpack_require__(210),\n\t UpdateProfileFormView = __webpack_require__(732),\n\t FormView = __webpack_require__(553);\n\n\treturn FormView.extend({\n\n\t\ttemplate: UpdateProfileFormView,\n\n\t\tclassName: 'settingsForm',\n\n\t\tevents: {\n\t\t\t'change .chooseFileInput': 'handleInputFileChange',\n\t\t\t'click .chooseImageButton': 'handleChooseImageButtonClick',\n\t\t\t'click .deleteImageButton': 'handleDeleteImageButtonClick',\n\t\t\t'click .resetImageButton': 'handleResetImageButtonClick'\n\t\t},\n\n\t\tui: {\n\t\t\t$resetImageButton: '.resetImageButton',\n\t\t\t$deleteImageButton: '.deleteImageButton',\n\t\t\t$chooseFileInput: '.chooseFileInput'\n\t\t},\n\n\t\thandleDeleteImageButtonClick: function handleDeleteImageButtonClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\t// @todo replace confirm with a custom ui control\n\t\t\tif (window.confirm('This will permanently delete your picture. Are you sure you want to do this?')) {\n\t\t\t\tthis.model.getActionByName('deleteProfileImage').execute();\n\t\t\t}\n\t\t},\n\n\t\thandleResetImageButtonClick: function handleResetImageButtonClick() {\n\t\t\tthis.updateProfileImage();\n\t\t\tthis.clientImageModel.unset('fileData');\n\t\t},\n\n\t\thandleInputFileChange: function handleInputFileChange(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\n\t\t\tviewHelpers.readInputFile(event.target).done(function (data) {\n\t\t\t\tself.clientImageModel.set('fileData', data);\n\t\t\t});\n\t\t},\n\n\t\thandleUpdateProfileError: function handleUpdateProfileError(model, jqXhr) {\n\t\t\twwwApp.showApiError(jqXhr);\n\t\t},\n\n\t\thandleUpdateProfileSync: function handleUpdateProfileSync() {\n\t\t\tthis.clientImageModel.updatePersistedImage();\n\t\t\tthis.clientImageModel.unset('fileData');\n\n\t\t\twwwApp.tipMsg('Your profile information has been updated');\n\t\t},\n\n\t\thandleDeleteProfileImageError: function handleDeleteProfileImageError(model, jqXhr) {\n\t\t\twwwApp.showApiError(jqXhr);\n\t\t},\n\n\t\thandleDeleteProfileImageSync: function handleDeleteProfileImageSync() {\n\t\t\tthis.clientImageModel.setDefaultImage();\n\t\t\tthis.clientImageModel.unset('fileData');\n\n\t\t\twwwApp.tipMsg('Your profile image has been deleted');\n\t\t},\n\n\t\thandlePersistedImageChange: function handlePersistedImageChange(model, val) {\n\t\t\tif (!val) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.updateLoggedInImage(val);\n\t\t\tthis.updateProfileImage(val);\n\t\t\tif (model.isDefault()) {\n\t\t\t\tthis.ui.$deleteImageButton.hide();\n\t\t\t} else {\n\t\t\t\tthis.ui.$deleteImageButton.show();\n\t\t\t}\n\t\t},\n\n\t\thandleFileDataChange: function handleFileDataChange(model, val) {\n\t\t\tthis.updateProfileImage(val);\n\n\t\t\tif (val) {\n\t\t\t\tthis.ui.$resetImageButton.show();\n\t\t\t} else {\n\t\t\t\tthis.resetImageInput();\n\t\t\t\tthis.ui.$resetImageButton.hide();\n\t\t\t}\n\t\t},\n\n\t\tresetImageInput: function resetImageInput() {\n\t\t\tthis.ui.$chooseFileInput.wrap('
    ').closest('form')[0].reset();\n\t\t\tthis.ui.$chooseFileInput.unwrap();\n\t\t}\n\n\t\t/**\n * Update the user's logged in image in the UI.\n * @todo This logic should live a \"utilLinksView\"\n *\n * @param {String} src\n */\n\t\t, updateLoggedInImage: function updateLoggedInImage(src) {\n\t\t\treturn $('.logged-in-user-image').attr('src', src);\n\t\t}\n\n\t\t/**\n * Updates the user image in the UI\n *\n * @param {String} url\n */\n\t\t, updateProfileImage: function updateProfileImage(src) {\n\t\t\tif (src) {\n\t\t\t\treturn this.$('.profileImageWrapper img').attr('src', src);\n\t\t\t} else {\n\t\t\t\treturn this.$('.profileImageWrapper img').attr('src', this.clientImageModel.get('persistedImage'));\n\t\t\t}\n\t\t},\n\n\t\tgetFileData: function getFileData() {\n\t\t\treturn this.clientImageModel.get('fileData');\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data;\n\n\t\t\tif (this.model) {\n\t\t\t\tdata = {\n\t\t\t\t\tbaseUrl: 'http://' + window.location.host + '/lender/',\n\t\t\t\t\tshowUpdateImageButton: Modernizr.filereader\n\t\t\t\t};\n\n\t\t\t\treturn $.extend(this.model.toJSON(), data);\n\t\t\t}\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.updateProfileImage();\n\n\t\t\tthis.clientImageModel.on('change:fileData', $.proxy(this.handleFileDataChange, this));\n\t\t\tthis.clientImageModel.on('change:persistedImage', $.proxy(this.handlePersistedImageChange, this));\n\n\t\t\tthis.ui.$resetImageButton.hide();\n\t\t\tthis.clientImageModel.updatePersistedImage(this.imageModel.get('id'));\n\t\t},\n\n\t\tstickThatShit: function stickThatShit() {\n\t\t\tvar self = this;\n\n\t\t\tthis.addStickit(this.accountModel, {\n\t\t\t\t'.linkToLenderProfile': {\n\t\t\t\t\tobserve: 'publicId',\n\t\t\t\t\tupdateView: false,\n\t\t\t\t\tupdateModel: false,\n\t\t\t\t\tattributes: [{\n\t\t\t\t\t\tname: 'href',\n\t\t\t\t\t\tobserve: 'publicId',\n\t\t\t\t\t\tonGet: function onGet(value) {\n\t\t\t\t\t\t\treturn '/lender/' + value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}]\n\n\t\t\t\t\t// Slightly different selector\n\t\t\t\t}, 'a.linkToLenderProfile': {\n\t\t\t\t\tobserve: 'public',\n\t\t\t\t\tupdateModel: false,\n\t\t\t\t\tupdateView: false,\n\t\t\t\t\tvisible: true\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Get data for the country drop-down then display all our data in the form\n\t\t\treturn $.getJSON(this.accountModel.links()[0].href).done(function (countries) {\n\t\t\t\tself.addStickit(self.model, {\n\t\t\t\t\t'[name=\"country.isoCode\"]': {\n\t\t\t\t\t\tobserve: 'country.isoCode',\n\t\t\t\t\t\tselectOptions: {\n\t\t\t\t\t\t\tcollection: function collection() {\n\t\t\t\t\t\t\t\treturn $.map(countries, function (country) {\n\t\t\t\t\t\t\t\t\treturn { value: country.iso_code, label: country.name };\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdefaultOption: {\n\t\t\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t\t\t\tlabel: '-- --'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this,\n\t\t\t myAccountRequest = wwwApp.siren.resolve('my/account'),\n\t\t\t profileRequest = wwwApp.siren.resolve('my/account#profile'),\n\t\t\t imageRequest = wwwApp.siren.resolve('my/account#image');\n\n\t\t\t$.when(myAccountRequest, profileRequest, imageRequest).done(function (accountModel, profileModel, imageModel) {\n\t\t\t\tvar updateProfileAction = profileModel.getActionByName('updateProfile')\n\n\t\t\t\t// Let bbSiren know which model the following fields exist on.\n\t\t\t\t,\n\t\t\t\t fields = {\n\t\t\t\t\t'name': {\n\t\t\t\t\t\tmodel: accountModel\n\t\t\t\t\t},\n\t\t\t\t\t'public': {\n\t\t\t\t\t\tmodel: accountModel\n\t\t\t\t\t},\n\t\t\t\t\t'image': {\n\t\t\t\t\t\tmodel: self.getFileData\n\t\t\t\t\t},\n\t\t\t\t\t'publicId': {\n\t\t\t\t\t\tmodel: accountModel\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tself.imageModel = imageModel;\n\t\t\t\tself.accountModel = accountModel;\n\n\t\t\t\t// %HACK% to get around the fact that there is no server side `/image` endpoint that we can persist with/to\n\t\t\t\tvar ClientImageModel = Backbone.Model.extend({\n\t\t\t\t\tdefaultImageId: 726677,\n\t\t\t\t\tupdatePersistedImage: function updatePersistedImage(image) {\n\t\t\t\t\t\tvar url;\n\n\t\t\t\t\t\tif ($.isNumeric(image)) {\n\t\t\t\t\t\t\turl = wwwApp.imageUrl(image, 's100');\n\t\t\t\t\t\t} else if (image) {\n\t\t\t\t\t\t\turl = image;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\turl = this.get('fileData');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.set('persistedImage', url);\n\t\t\t\t\t},\n\t\t\t\t\tsetDefaultImage: function setDefaultImage() {\n\t\t\t\t\t\tthis.updatePersistedImage(this.defaultImageId);\n\t\t\t\t\t},\n\t\t\t\t\tisDefault: function isDefault() {\n\t\t\t\t\t\tvar persistedImage = this.attributes.persistedImage;\n\n\t\t\t\t\t\tif (persistedImage) {\n\t\t\t\t\t\t\treturn persistedImage.indexOf('/' + this.defaultImageId + '.') > -1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.clientImageModel = new ClientImageModel();\n\t\t\t\tself.stickThatShit().done(function () {\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\n\t\t\t\tself.initializeForm({ action: updateProfileAction, fields: fields });\n\n\t\t\t\tself.listenTo(profileModel, 'sync:updateProfile', self.handleUpdateProfileSync);\n\t\t\t\tself.listenTo(profileModel, 'error:updateProfile', self.handleUpdateProfileError);\n\n\t\t\t\tself.listenTo(profileModel, 'sync:deleteProfileImage', self.handleDeleteProfileImageSync);\n\t\t\t\tself.listenTo(profileModel, 'error:deleteProfileImage', self.handleDeleteProfileImageError);\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('An error occurred. Please refresh the page and try again.', 'warning');\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 732 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    My Lender Profile

    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\" \t\");t.b(\"\\n\" + i);t.b(\" \t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
    (Must be a .gif, .jpg or .png)
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\tView your lender page »\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"baseUrl\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\t \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    Your lender page will also include information about your loans, teams and accepted invitations. All posted information on Kiva falls under our Terms of Use.
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n

    My Lender Profile

    \\n
    \\n\\n
    \\n\\t\\n\\t
    \\n \\t\\n \\t\\n\\t\\t\\n\\t\\t\\n\\t\\t
    (Must be a .gif, .jpg or .png)
    \\n\\t
    \\n
    \\n\\n
    \\n\\t
    \\n\\t\\t\\n\\t\\tView your lender page »\\n\\t
    \\n\\t{{baseUrl}}\\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n\\n
    \\n \\n\\t \\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\\t\\n\\t\\n
    \\n\\n
    \\n\\t\\n
    \\n\\n
    Your lender page will also include information about your loans, teams and accepted invitations. All posted information on Kiva falls under our Terms of Use.
    \\n\", H);return T; }();\n\n/***/ }),\n/* 733 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t Marionette = __webpack_require__(209),\n\t UpdateDataSettingsFormView = __webpack_require__(734);\n\n\treturn Marionette.View.extend({\n\n\t\t'className': 'xbLegacyNav'\n\n\t\t/**\n * Make sure to close all nested views as well\n */\n\t\t, onClose: function onClose() {\n\t\t\t_.each(this.views, function (view) {\n\t\t\t\tview.close();\n\t\t\t});\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this;\n\n\t\t\tthis.views = [];\n\t\t\tthis.views.push(new UpdateDataSettingsFormView());\n\n\t\t\t_.each(this.views, function (view) {\n\t\t\t\tself.$el.append(view.$el);\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 734 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _templateObject = _taggedTemplateLiteral(['\\n\\t\\t\\t{\\n\\t\\t\\t my {\\n\\t\\t\\t\\tuserAccount {\\n\\t\\t\\t\\t cookieOptOut\\n\\t\\t\\t\\t piiSharingOptOut\\n\\t\\t\\t\\t}\\n\\t\\t\\t }\\n\\t\\t\\t}\\n\\t\\t\\t'], ['\\n\\t\\t\\t{\\n\\t\\t\\t my {\\n\\t\\t\\t\\tuserAccount {\\n\\t\\t\\t\\t cookieOptOut\\n\\t\\t\\t\\t piiSharingOptOut\\n\\t\\t\\t\\t}\\n\\t\\t\\t }\\n\\t\\t\\t}\\n\\t\\t\\t']),\n _templateObject2 = _taggedTemplateLiteral(['\\n\\t\\t\\t\\t\\t\\tmutation ($cookieOptOut: Boolean!, $piiSharingOptOut: Boolean!) {\\n\\t\\t\\t\\t\\t\\t\\tmy {\\n\\t\\t\\t\\t\\t\\t\\t\\tupdateCookieOptOut(cookieOptOut: $cookieOptOut)\\n\\t\\t\\t\\t\\t\\t\\t\\tupdatePiiSharingOptOut(piiSharingOptOut: $piiSharingOptOut)\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}'], ['\\n\\t\\t\\t\\t\\t\\tmutation ($cookieOptOut: Boolean!, $piiSharingOptOut: Boolean!) {\\n\\t\\t\\t\\t\\t\\t\\tmy {\\n\\t\\t\\t\\t\\t\\t\\t\\tupdateCookieOptOut(cookieOptOut: $cookieOptOut)\\n\\t\\t\\t\\t\\t\\t\\t\\tupdatePiiSharingOptOut(piiSharingOptOut: $piiSharingOptOut)\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}']);\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t $ = __webpack_require__(0),\n\t gql = __webpack_require__(124),\n\t uri = __webpack_require__(52),\n\t cookie = __webpack_require__(214),\n\t Backbone = __webpack_require__(20),\n\t DecisionLightbox = __webpack_require__(560),\n\t Marionette = __webpack_require__(209),\n\t Raven = __webpack_require__(123);\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: __webpack_require__(735),\n\t\tpartials: {\n\t\t\t'molecules-loading-spinner': __webpack_require__(548)\n\t\t},\n\n\t\ttagName: 'div',\n\t\tclassName: 'data-settings row collapse',\n\t\tattributes: {\n\t\t\t'data-abide': 'ajax',\n\t\t\t'data-options': 'focus_on_invalid:false'\n\t\t},\n\n\t\tui: {\n\t\t\tcookie_opt_out: '.cookie-opt-out-input',\n\t\t\tpii_sharing_opt_out: '.pii-sharing-opt-out-input',\n\t\t\tsubmit: '.submit-form',\n\t\t\tsubmit_save_data_label: '.submit-form .save-data',\n\t\t\tsubmit_saving_label: '.submit-form .saving'\n\t\t},\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tevents: {\n\t\t\t'click @ui.cookie_opt_out': '_changeCookieOptOut',\n\t\t\t'click @ui.pii_sharing_opt_out': '_changePiiSharingOptOut',\n\t\t\t'click @ui.submit': '_submitForm',\n\t\t\t'click .closeAccount': '_handleCloseAccountClick'\n\t\t},\n\n\t\tmodelEvents: {\n\t\t\t'change:local_cookie_opt_out': '_checkValuesChanged',\n\t\t\t'change:local_pii_sharing_opt_out': '_checkValuesChanged'\n\t\t},\n\n\t\tgqlStateQuery: gql(_templateObject),\n\n\t\t_changeCookieOptOut: function _changeCookieOptOut(event) {\n\t\t\tthis._updateLocalValue(event.target.checked, 'my.userAccount.cookieOptOut', 'local_cookie_opt_out');\n\t\t},\n\n\t\t_changePiiSharingOptOut: function _changePiiSharingOptOut(event) {\n\t\t\tthis._updateLocalValue(event.target.checked, 'my.userAccount.piiSharingOptOut', 'local_pii_sharing_opt_out');\n\t\t}\n\n\t\t/**\n * If value is different than model[remote_key] set model[local_key] = value.\n * If compare_value is not undefined, it is used for comparison instead of value.\n *\n * @param value {*}\n * @param remote_key {string}\n * @param local_key {string}\n * @param compare_value [{*}]\n * @private\n */\n\t\t, _updateLocalValue: function _updateLocalValue(value, remote_key, local_key, compare_value) {\n\t\t\tvar new_value = value;\n\t\t\tvar old_value = this.model.get(remote_key);\n\n\t\t\tcompare_value = typeof compare_value === 'undefined' ? new_value : compare_value;\n\n\t\t\tif (new_value !== null) {\n\t\t\t\tif (compare_value !== old_value) {\n\t\t\t\t\tthis.model.set(local_key, new_value);\n\t\t\t\t} else {\n\t\t\t\t\tthis.model.unset(local_key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// update ui state if any local values are set/unset\n\t\t, _checkValuesChanged: function _checkValuesChanged() {\n\t\t\tthis._checkSubmitButton();\n\t\t}\n\n\t\t// update submit button state\n\t\t, _checkSubmitButton: function _checkSubmitButton() {\n\t\t\tif (this._isSubmittable()) {\n\t\t\t\tthis.ui.submit.removeAttr('disabled');\n\t\t\t} else {\n\t\t\t\tthis.ui.submit.attr('disabled', 'disabled');\n\t\t\t}\n\t\t},\n\n\t\t_submitForm: function _submitForm(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (this._isSubmittable()) {\n\t\t\t\tvar self = this;\n\t\t\t\tthis.ui.submit_save_data_label.hide();\n\t\t\t\tthis.ui.submit_saving_label.show();\n\n\t\t\t\tvar localCookieValue = self.model.get('local_cookie_opt_out'),\n\t\t\t\t remoteCookieValue = _.isNull(self.model.get('my.userAccount.cookieOptOut')) ? false : self.model.get('my.userAccount.cookieOptOut'),\n\t\t\t\t localPiiSharingValue = self.model.get('local_pii_sharing_opt_out'),\n\t\t\t\t remotePiiSharingValue = self.model.get('my.userAccount.piiSharingOptOut');\n\n\t\t\t\tvar newCookieValue = typeof localCookieValue !== 'undefined' ? localCookieValue : remoteCookieValue,\n\t\t\t\t newPiiSharingValue = typeof localPiiSharingValue !== 'undefined' ? localPiiSharingValue : remotePiiSharingValue;\n\n\t\t\t\twwwApp.graphql.mutate({\n\t\t\t\t\tmutation: gql(_templateObject2),\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tcookieOptOut: newCookieValue,\n\t\t\t\t\t\tpiiSharingOptOut: newPiiSharingValue\n\t\t\t\t\t},\n\t\t\t\t\trefetchQueries: [{\n\t\t\t\t\t\tquery: this.gqlStateQuery\n\t\t\t\t\t}]\n\t\t\t\t}).then(function () {\n\t\t\t\t\t// update cookie with opted out value if true, otherwise remove value\n\t\t\t\t\tvar kvgdpr = self._queryStringToJSON(cookie.get('kvgdpr'));\n\n\t\t\t\t\tif (self.model.get('local_cookie_opt_out') === true) {\n\t\t\t\t\t\tkvgdpr.opted_out = 'true';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete kvgdpr.opted_out;\n\t\t\t\t\t}\n\n\t\t\t\t\tcookie.set('kvgdpr', $.param(kvgdpr), 31536000);\n\n\t\t\t\t\twwwApp.tipMsg('Your cookie preferences has been saved', 'confirmation');\n\n\t\t\t\t\t// prefill apollo store with expected results for state query\n\t\t\t\t\twwwApp.graphql.writeQuery({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tmy: {\n\t\t\t\t\t\t\t\tuserAccount: {\n\t\t\t\t\t\t\t\t\tcookieOptOut: newCookieValue,\n\t\t\t\t\t\t\t\t\tpiiSharingOptOut: newPiiSharingValue,\n\t\t\t\t\t\t\t\t\t__typename: 'UserAccount'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t__typename: 'My'\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tquery: self.gqlStateQuery\n\t\t\t\t\t});\n\t\t\t\t}).catch(function (response) {\n\t\t\t\t\tif (response && response.errors) {\n\t\t\t\t\t\tfor (var i = 0; i < response.errors.length; i++) {\n\t\t\t\t\t\t\tswitch (response.errors[i].code) {\n\t\t\t\t\t\t\t\tcase 'api.authenticationRequired':\n\t\t\t\t\t\t\t\t\treturn wwwApp.showLogin();\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\twwwApp.tipMsg('Your changes couldn\\'t be saved because your data settings couldn\\'t be found', 'warning');\n\t\t\t\t\t\t\t\t\tRaven.captureException(new Error(response.errors[i].code + ': ' + response.errors[i].message));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (response instanceof Error) {\n\t\t\t\t\t\tRaven.captureException(response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log(arguments);\n\t\t\t\t\t}\n\t\t\t\t\twwwApp.tipMsg('There was an error trying to save your data settings. Please try again later.', 'error');\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_handleCloseAccountClick: function _handleCloseAccountClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\t\t\tDecisionLightbox.render({\n\t\t\t\tlightboxId: 'close-account-confirmation',\n\n\t\t\t\ttitle: 'Are you sure?',\n\t\t\t\tmessage: 'By clicking \"yes\" to close your account, you agree that your current account balance and future loan repayments (if any) will be automatically donated to Kiva\\'s operating expenses. After your account is closed you\\'ll be unable to access your past lending activity and you\\'ll be removed from Kiva\\'s email lists. This action cannot be undone.',\n\n\t\t\t\tmainOptionButtonText: 'Yes, close my account',\n\t\t\t\tonClickMain: function onClickMain() {\n\t\t\t\t\tself._closeAccount();\n\t\t\t\t},\n\n\t\t\t\talternativeOptionButtonText: 'No, go back'\n\t\t\t});\n\n\t\t\t// add xb styling\n\t\t\t$('.reveal-modal-bg').addClass('xbLegacyNav');\n\t\t},\n\n\t\t_closeAccount: function _closeAccount() {\n\t\t\tvar crumb_string = wwwApp.cookie.get('kvis').replace('crumb=', '');\n\n\t\t\t$.ajax({\n\t\t\t\turl: wwwApp.ajaxUrl('closeUserAccount'),\n\t\t\t\tdata: { crumb: crumb_string },\n\t\t\t\ttype: 'POST' }).done(function (result) {\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.parse(result);\n\t\t\t\t\tif (result.errors) {\n\t\t\t\t\t\tif (result.errors === 'api.authenticationRequired') {\n\t\t\t\t\t\t\treturn wwwApp.showLogin(null, 'recent');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (result.errors === 'org.kiva.EmailVerificationRequired') {\n\t\t\t\t\t\t\treturn wwwApp.redirect('ui', 'start-verification', null, {\n\t\t\t\t\t\t\t\tdoneUrl: uri().href,\n\t\t\t\t\t\t\t\tprocess: 'closing your account'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar msg = result.errors !== 'FAIL' ? result.errors : 'There was an error trying to close your account';\n\t\t\t\t\t\treturn wwwApp.tipMsg(msg, 'error');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t\t// no-op\n\n\t\t\t\t// only redirect on success\n\t\t\t\t// this is going to redirect to cancelled account info page if the ajax call returns before the kiva app forces the redirect\n\t\t\t\twwwApp.redirect('account', 'closeAccountPage');\n\t\t\t})\n\n\t\t\t// on error have a tip message\n\t\t\t.error(function (error) {\n\t\t\t\twwwApp.tipMsg('There was an error trying to close your account', 'error');\n\t\t\t});\n\t\t},\n\n\t\t_isChanged: function _isChanged() {\n\t\t\treturn this.model.has('local_cookie_opt_out') || this.model.has('local_pii_sharing_opt_out');\n\t\t},\n\n\t\t_isSubmittable: function _isSubmittable() {\n\t\t\treturn this._isChanged();\n\t\t},\n\n\t\t_queryStringToJSON: function _queryStringToJSON(qs) {\n\t\t\tqs = qs || location.search.slice(1);\n\n\t\t\tvar pairs = qs.split('&');\n\t\t\tvar result = {};\n\t\t\tpairs.forEach(function (p) {\n\t\t\t\tvar pair = p.split('=');\n\t\t\t\tvar key = pair[0];\n\t\t\t\tvar value = decodeURIComponent(pair[1] || '');\n\n\t\t\t\tif (result[key]) {\n\t\t\t\t\tif (Object.prototype.toString.call(result[key]) === '[object Array]') {\n\t\t\t\t\t\tresult[key].push(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult[key] = [result[key], value];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresult[key] = value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn JSON.parse(JSON.stringify(result));\n\t\t}\n\n\t\t/**\n * @returns {{}}\n */\n\t\t, serializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tif (!data.my) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcookie_opt_out: _.isNull(data.my.userAccount.cookieOptOut) ? false : data.my.userAccount.cookieOptOut,\n\t\t\t\tpii_sharing_opt_out: data.my.userAccount.piiSharingOptOut || false,\n\t\t\t\tlegal_cookie_url: wwwApp.url('about', 'cookiePolicy'),\n\t\t\t\tlegal_pii_data_url: wwwApp.url('about', 'privacyPolicy'),\n\t\t\t\twithdraw_funds_url: wwwApp.url('withdraw', 'withdraw')\n\t\t\t};\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize() {\n\t\t\tvar self = this;\n\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\n\t\t\tthis.stateWatcher = wwwApp.graphql.watchQuery({ query: this.gqlStateQuery });\n\n\t\t\tthis.stateWatcher.subscribe({\n\t\t\t\tnext: function next(response) {\n\t\t\t\t\tself.model.clear({ silent: true });\n\t\t\t\t\tself.model.set(response.data, { silent: true });\n\t\t\t\t\tself.render();\n\t\t\t\t},\n\t\t\t\terror: function error(response) {\n\t\t\t\t\tif (response && response.errors) {\n\t\t\t\t\t\tfor (var i = 0; i < response.errors.length; i++) {\n\t\t\t\t\t\t\tswitch (response.errors[i].code) {\n\t\t\t\t\t\t\t\tcase 'api.authenticationRequired':\n\t\t\t\t\t\t\t\t\treturn wwwApp.showLogin();\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tRaven.captureException(new Error(response.errors[i].code + ': ' + response.errors[i].message));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (response instanceof Error) {\n\t\t\t\t\t\tRaven.captureException(response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log(arguments);\n\t\t\t\t\t}\n\n\t\t\t\t\t// hide the loading spinner if we haven't rendered yet\n\t\t\t\t\tif (!self.$('h3').length) {\n\t\t\t\t\t\tself.$el.html('');\n\t\t\t\t\t}\n\n\t\t\t\t\twwwApp.tipMsg('There was an error loading data settings information. Please reload the page.', 'error');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 735 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Manage your data settings on Kiva or close your account\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Cookie preferences\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" Opt out of non-essential analytics and marketing cookies.
    \");t.b(\"\\n\" + i);t.b(\" This setting will be applied automatically whenever you sign into your account and will override any session-based cookie settings.
    \");t.b(\"\\n\" + i);t.b(\" Learn more about our Cookie Policy and manage session-based cookies here.\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Advertising data sharing preferences\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" Opt out of sharing your data with third parties for advertising purposes.
    \");t.b(\"\\n\" + i);t.b(\" Learn more in the \\\"How Kiva Uses Your Personal Information\\\" section of Kiva's privacy policy.\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Account termination\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" Permanently delete your Kiva account and all personally identifying information associated with your account.\");t.b(\"\\n\" + i);t.b(\" When you delete your account, you'll authorize any current balance and future repayments on your outstanding loans to be donated to Kiva.\");t.b(\"\\n\" + i);t.b(\" If you'd like your current balance returned to you, please withdraw funds prior to deleting your account.\");t.b(\"\\n\" + i);t.b(\" After deleting your account you'll be unable to access your past lending activity.\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {\"\\n Manage your data settings on Kiva or close your account\\n

    \\n
    \\n
    \\n

    \\n Cookie preferences\\n

    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n Opt out of non-essential analytics and marketing cookies.
    \\n This setting will be applied automatically whenever you sign into your account and will override any session-based cookie settings.
    \\n Learn more about our Cookie Policy and manage session-based cookies here.\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n\\n
    \\n

    \\n Advertising data sharing preferences\\n

    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n Opt out of sharing your data with third parties for advertising purposes.
    \\n Learn more in the \\\"How Kiva Uses Your Personal Information\\\" section of Kiva's privacy policy.\\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n \\n
    \\n
    \\n\\n
    \\n\\n
    \\n

    \\n Account termination\\n

    \\n
    \\n
    \\n
    \\n
    \\n Permanently delete your Kiva account and all personally identifying information associated with your account.\\n When you delete your account, you'll authorize any current balance and future repayments on your outstanding loans to be donated to Kiva.\\n If you'd like your current balance returned to you, please withdraw funds prior to deleting your account.\\n After deleting your account you'll be unable to access your past lending activity.\\n

    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n
    \\n
    \\n\\n\", H);return T; }();\n\n/***/ }),\n/* 736 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t\t\t\t'use strict';\n\n\t\t\t\tvar _ = __webpack_require__(11),\n\t\t\t\t Marionette = __webpack_require__(209),\n\t\t\t\t UpdateUserFundAccountFormView = __webpack_require__(737),\n\t\t\t\t AutolendRedirectView = __webpack_require__(739),\n\t\t\t\t SubscriptionsRedirectView = __webpack_require__(741);\n\n\t\t\t\treturn Marionette.View.extend({\n\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t\t\t'class': 'creditSettingsView'\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\trender: function render() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\t\t\t\t\t\t\tthis.views = [];\n\n\t\t\t\t\t\t\t\t\t\t\t\tthis.views.push(new SubscriptionsRedirectView());\n\n\t\t\t\t\t\t\t\t\t\t\t\tthis.views.push(new AutolendRedirectView({ isMonthlyGoodSubscriber: this.options.is_subscriber }));\n\n\t\t\t\t\t\t\t\t\t\t\t\tthis.views.push(new UpdateUserFundAccountFormView());\n\n\t\t\t\t\t\t\t\t\t\t\t\t_.each(this.views, function (view) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tself.$el.append(view.$el);\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 737 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t FormView = __webpack_require__(553),\n\t UpdateUserFundAccountFormView = __webpack_require__(738);\n\n\treturn FormView.extend({\n\n\t\ttemplate: UpdateUserFundAccountFormView,\n\t\tclassName: 'settingsForm',\n\n\t\thandleUpdateUserFundAccountSync: function handleUpdateUserFundAccountSync() {\n\t\t\twwwApp.tipMsg('Your settings have been saved.');\n\t\t},\n\n\t\thandleUpdateUserFundAccountError: function handleUpdateUserFundAccountError(model, jqXhr) {\n\t\t\twwwApp.showApiError(jqXhr, { process: 'updating your repayment and inactivity settings' });\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this;\n\n\t\t\twwwApp.siren.resolve('my/account#defaultFundAccount').done(function (defaultFundAccount) {\n\t\t\t\tvar updateUserFundAccountAction = defaultFundAccount.getActionByName('updateUserFundAccount');\n\n\t\t\t\tself.initializeForm({ action: updateUserFundAccountAction });\n\t\t\t\tself.addStickit(defaultFundAccount, {\n\t\t\t\t\t'.inactiveCreditEmailControlSet': {\n\t\t\t\t\t\tobserve: 'account.inactiveCreditRecipient',\n\t\t\t\t\t\tupdateModel: false,\n\t\t\t\t\t\tupdateView: false,\n\t\t\t\t\t\tvisible: function visible(val) {\n\t\t\t\t\t\t\treturn val == 'email_address';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tself.listenTo(defaultFundAccount, 'sync:updateUserFundAccount', self.handleUpdateUserFundAccountSync);\n\t\t\t\tself.listenTo(defaultFundAccount, 'error:updateUserFundAccount', self.handleUpdateUserFundAccountError);\n\n\t\t\t\tself.render();\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('There was an error loading the page, please try again.', 'warning');\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 738 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

    Repayment settings

    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    When my loans are repaid:
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"

    Inactivity settings

    \");t.b(\"\\n\" + i);t.b(\"
    If my account becomes inactive:
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"

    Repayment settings

    \\n\\n
    When my loans are repaid:
    \\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n\\n

    Inactivity settings

    \\n
    If my account becomes inactive:
    \\n
    \\n
    \\n \\n \\n
    \\n\\n
    \\n \\n \\n
    \\n
    \\n\\n
    \\n\\t\\n\\t\\n
    \\n\\n\\n\", H);return T; }();\n\n/***/ }),\n/* 739 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n var $ = __webpack_require__(210),\n Marionette = __webpack_require__(209),\n AutolendLink = __webpack_require__(740);\n\n return Marionette.View.extend({\n\n template: AutolendLink,\n\n className: 'settingsForm lessPadding',\n\n render: function render(templateVariables) {\n var html = this.template.render(templateVariables);\n this.$el.html(html);\n },\n\n initialize: function initialize(templateVariables) {\n this.render(templateVariables);\n }\n });\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 740 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    Auto-lending settings

    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"isMonthlyGoodSubscriber\",c,p,1),c,p,0,155,283,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Auto-lending is not available to users with a Monthly Good subscription.\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"isMonthlyGoodSubscriber\",c,p,1),c,p,1,0,0,\"\")){t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Turn auto-lending on or off and customize how your balance is put to work\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);};t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n

    Auto-lending settings

    \\n\\n
    \\n\\t {{#isMonthlyGoodSubscriber}}\\n

    \\n Auto-lending is not available to users with a Monthly Good subscription.\\n

    \\n \\t{{/isMonthlyGoodSubscriber}}\\n {{^isMonthlyGoodSubscriber}}\\n

    \\n Turn auto-lending on or off and customize how your balance is put to work\\n

    \\n \\t{{/isMonthlyGoodSubscriber}}\\n
    \\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 741 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n var $ = __webpack_require__(210),\n Marionette = __webpack_require__(209),\n SubscriptionsLink = __webpack_require__(742);\n\n return Marionette.View.extend({\n\n template: SubscriptionsLink,\n\n className: 'settingsForm lessPadding',\n\n render: function render() {\n var html = this.template.render();\n this.$el.html(html);\n },\n\n initialize: function initialize() {\n this.render();\n }\n });\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 742 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"

    Subscriptions settings

    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\" Manage your Monthly Good or Auto Deposit settings\");t.b(\"\\n\" + i);t.b(\"

    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n
    \\n\\n

    Subscriptions settings

    \\n\\n \\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 743 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backbone = __webpack_require__(122),\n\t Marionette = __webpack_require__(209),\n\t AvailableKivaCreditView = __webpack_require__(744),\n\t $ = __webpack_require__(210),\n\t SettingsCreditSidebarViewStache = __webpack_require__(746);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: SettingsCreditSidebarViewStache,\n\n\t\tevents: {\n\t\t\t'click .learnMore': 'handleLearnMoreClick'\n\t\t},\n\n\t\tmodel: new Backbone.Model(),\n\n\t\thandleLearnMoreClick: function handleLearnMoreClick(event) {\n\t\t\tvar hash = event.target.getAttribute('href');\n\n\t\t\tevent.preventDefault();\n\n\t\t\t// @todo temporary solution for figuring out why some clients are returning NULL for the href property\n\t\t\tif (hash) {\n\t\t\t\tthis.showLightbox(hash.slice(1));\n\t\t\t} else {\n\t\t\t\tthrow new Error('unable to get href from: ' + event.target.outerHTML);\n\t\t\t}\n\t\t},\n\n\t\tshowLightbox: function showLightbox(name) {\n\t\t\tif (name == 'whatIsAutoLending') {\n\t\t\t\t$.colorbox({ href: '/ajax/sfSolution/50150000000SrTp', width: 500, className: 'settingsModule' });\n\t\t\t} else {\n\t\t\t\t$.colorbox({ href: '.' + name + 'Lightbox', inline: true, width: 400, className: 'settingsModule' });\n\t\t\t}\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.$el.prepend(this.availableKivaCreditView.$el);\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.availableKivaCreditView = new AvailableKivaCreditView();\n\t\t\tthis.availableKivaCreditView.render();\n\t\t\tthis.model.set('is_auto_deposit_active', !!options.is_auto_deposit_active);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 744 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t $ = __webpack_require__(210),\n\t numeral = __webpack_require__(73),\n\t AvailableKivaCreditView = __webpack_require__(745);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: AvailableKivaCreditView,\n\n\t\tevents: {\n\t\t\t'click .kivaCreditNumber': 'handleKivaCreditClick'\n\t\t},\n\n\t\thandleKivaCreditClick: function handleKivaCreditClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.showMyCreditSummaryLightbox();\n\t\t},\n\n\t\tshowMyCreditSummaryLightbox: function showMyCreditSummaryLightbox() {\n\t\t\t$.colorbox({ href: '/ajax/myCreditSummary' }).resize();\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tif (!this.model) {\n\t\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.stickit(this.model, {\n\t\t\t\t'.kivaCreditNumber': {\n\t\t\t\t\tobserve: 'account.balance.amount',\n\t\t\t\t\tonGet: function onGet(val) {\n\t\t\t\t\t\treturn numeral(val).format('$0,0.00');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tvar self = this;\n\n\t\t\twwwApp.siren.resolve('my/account#defaultFundAccount').done(function (defaultFundAccountModel) {\n\t\t\t\tself.model = defaultFundAccountModel;\n\t\t\t\tself.render();\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 745 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t
    Available Kiva credit
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
      \");t.b(\"\\n\" + i);t.b(\"\t\t
    • Add credit
    • \");t.b(\"\\n\" + i);t.b(\"\t\t
    • Donate
    • \");t.b(\"\\n\" + i);t.b(\"\t\t
    • Kiva gifts
    • \");t.b(\"\\n\" + i);t.b(\"\t\t
    • Withdraw
    • \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t
    \\n\\t
    Available Kiva credit
    \\n
    \\n\\n
    \\n\\t\\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 746 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    Important note:
    \");t.b(\"\\n\" + i);t.b(\"\t

    If you haven’t set an inactivity preference or don’t provide a valid PayPal account, Kiva may be required to send your funds to a state government if your account becomes inactive. Learn more

    \");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    FAQ
    \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t

    How does Kiva use donations?

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    100% of every dollar you lend on Kiva goes directly to funding loans. We rely on small optional donations from you and others to keep Kiva running.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Every $1 donated to Kiva makes $8 in loans possible around the world. Your donation will enable us to:

    \");t.b(\"\\n\" + i);t.b(\"\t\t
      \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Send expert staff to over 60 countries to vet and monitor loans and partners.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Build and maintain a website that facilitates over $1 million in loans each week.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Provide comprehensive customer support to thousands of lenders worldwide.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Train and support hundreds of volunteers -- 4 for every 1 staff member at Kiva.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t

    If you live in the United States, your donation is tax-deductible. Thank you for considering a donation to Kiva.

    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t

    What is inactive withdrawal?

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    If your account becomes inactive, you can choose to have Kiva send your remaining Kiva credit to a PayPal account of your choosing. Just select “Return my Kiva credit to my PayPal account” and enter the email address you use on PayPal.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Remember, there are other options for your credit if your account becomes inactive:

    \");t.b(\"\\n\" + i);t.b(\"\t\t
      \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • You can automatically make a donation to Kiva’s operating expenses.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • You can enable auto lending. Click here to change your auto lending settings.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t

    If we are unable to send Kiva credit to your PayPal account (i.e. we have the wrong email address), automatic withdrawal may not be available to you. If you have questions about this, please contact Kiva’s Community Support team.

    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Inactive credit and abandoned property laws.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Organizations like Kiva are required by many state governments to turn over unclaimed property for safekeeping after several years. This may affect Kiva lenders who have Kiva credit in their accounts if they become inactive.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Kiva accounts are considered inactive if they aren’t used or modified for 24 consecutive months. The great news is that you only need to log in to keep your account active!

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    You'll receive emails from Kiva if you've been inactive to remind you to use your Kiva credit. You can also choose to have your funds automatically lent with our auto lending tool, donated to Kiva's operating expenses or withdrawn into a PayPal account.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    We want to make sure you have every opportunity to use your Kiva credit while you still can – helping make an impact in the lives of borrowers around the world!

    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Inactive credit and abandoned property laws

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Organizations like Kiva are required by many state governments to turn over unclaimed property to the state for safekeeping after several years.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    If your account becomes inactive, Kiva will need instructions for what to do with any funds left in your account.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Kiva accounts are considered inactive for purposes of unclaimed property laws if they have no activity for 24 consecutive months.

    \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t

    “Activity” includes things like logins, loan purchases (even via autolending), repayments, and withdrawals.

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    If you haven’t selected an option in your account settings for inactivity, or if you have asked us to return your remaining credit to you but you haven’t provided a valid PayPal account for withdrawals, Kiva will send your funds to your home state for safekeeping (or to the state of California if we do not know your location).

    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.f(\"is_auto_deposit_active\",c,p,1),c,p,0,4878,5301,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t

    Auto Deposits

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t

    An auto deposit allows you to automatically add money to your Kiva account every month via PayPal, making it easier for you to lend to the borrowers that inspire you the most. When you set up an auto deposit you also have the option to make an automatic donation to Kiva with each new contribution.

    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"is_auto_deposit_active\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\t

    Subscriptions

    \");t.b(\"\\n\" + i);t.b(\"\t\t\t

    Set up a subscription to automatically make monthly deposits to your Kiva account and/or monthly donations to Kiva's operating expenses.

    \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);};t.b(\"
    \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t
    Important note:
    \\n\\t

    If you haven’t set an inactivity preference or don’t provide a valid PayPal account, Kiva may be required to send your funds to a state government if your account becomes inactive. Learn more

    \\n
    \\n\\n
    \\n\\t
    FAQ
    \\n\\t\\n
    \\n\\n
    \\n\\t
    \\n\\t\\t

    How does Kiva use donations?

    \\n\\t\\t

    100% of every dollar you lend on Kiva goes directly to funding loans. We rely on small optional donations from you and others to keep Kiva running.

    \\n\\t\\t

    Every $1 donated to Kiva makes $8 in loans possible around the world. Your donation will enable us to:

    \\n\\t\\t
      \\n\\t\\t\\t
    • Send expert staff to over 60 countries to vet and monitor loans and partners.
    • \\n\\t\\t\\t
    • Build and maintain a website that facilitates over $1 million in loans each week.
    • \\n\\t\\t\\t
    • Provide comprehensive customer support to thousands of lenders worldwide.
    • \\n\\t\\t\\t
    • Train and support hundreds of volunteers -- 4 for every 1 staff member at Kiva.
    • \\n\\t\\t
    \\n\\t\\t

    If you live in the United States, your donation is tax-deductible. Thank you for considering a donation to Kiva.

    \\n\\t
    \\n\\n\\t
    \\n\\t\\t

    What is inactive withdrawal?

    \\n\\t\\t

    If your account becomes inactive, you can choose to have Kiva send your remaining Kiva credit to a PayPal account of your choosing. Just select “Return my Kiva credit to my PayPal account” and enter the email address you use on PayPal.

    \\n\\t\\t

    Remember, there are other options for your credit if your account becomes inactive:

    \\n\\t\\t
      \\n\\t\\t\\t
    • You can automatically make a donation to Kiva’s operating expenses.
    • \\n\\t\\t\\t
    • You can enable auto lending. Click here to change your auto lending settings.
    • \\n\\t\\t
    \\n\\t\\t

    If we are unable to send Kiva credit to your PayPal account (i.e. we have the wrong email address), automatic withdrawal may not be available to you. If you have questions about this, please contact Kiva’s Community Support team.

    \\n\\t
    \\n\\n\\t
    \\n\\t\\t

    Inactive credit and abandoned property laws.

    \\n\\t\\t

    Organizations like Kiva are required by many state governments to turn over unclaimed property for safekeeping after several years. This may affect Kiva lenders who have Kiva credit in their accounts if they become inactive.

    \\n\\t\\t

    Kiva accounts are considered inactive if they aren’t used or modified for 24 consecutive months. The great news is that you only need to log in to keep your account active!

    \\n\\t\\t

    You'll receive emails from Kiva if you've been inactive to remind you to use your Kiva credit. You can also choose to have your funds automatically lent with our auto lending tool, donated to Kiva's operating expenses or withdrawn into a PayPal account.

    \\n\\t\\t

    We want to make sure you have every opportunity to use your Kiva credit while you still can – helping make an impact in the lives of borrowers around the world!

    \\n\\t
    \\n\\n\\t
    \\n\\t\\t

    Inactive credit and abandoned property laws

    \\n\\t\\t

    Organizations like Kiva are required by many state governments to turn over unclaimed property to the state for safekeeping after several years.

    \\n\\t\\t

    If your account becomes inactive, Kiva will need instructions for what to do with any funds left in your account.

    \\n\\t\\t

    Kiva accounts are considered inactive for purposes of unclaimed property laws if they have no activity for 24 consecutive months.

    \\n\\t\\t\\n\\t\\t

    “Activity” includes things like logins, loan purchases (even via autolending), repayments, and withdrawals.

    \\n\\t\\t

    If you haven’t selected an option in your account settings for inactivity, or if you have asked us to return your remaining credit to you but you haven’t provided a valid PayPal account for withdrawals, Kiva will send your funds to your home state for safekeeping (or to the state of California if we do not know your location).

    \\n\\t
    \\n\\n\\t{{#is_auto_deposit_active}}\\n\\t\\t
    \\n\\t\\t\\t

    Auto Deposits

    \\n\\t\\t\\t

    An auto deposit allows you to automatically add money to your Kiva account every month via PayPal, making it easier for you to lend to the borrowers that inspire you the most. When you set up an auto deposit you also have the option to make an automatic donation to Kiva with each new contribution.

    \\n\\t\\t
    \\n\\t{{/is_auto_deposit_active}}\\n\\t{{^is_auto_deposit_active}}\\n\\t\\t
    \\n\\t\\t\\t

    Subscriptions

    \\n\\t\\t\\t

    Set up a subscription to automatically make monthly deposits to your Kiva account and/or monthly donations to Kiva's operating expenses.

    \\n\\t\\t
    \\n\\t{{/is_auto_deposit_active}}\\n
    \\n\", H);return T; }();\n\n/***/ }),\n/* 747 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11);\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'settings/account': 'showSettingsAccountView',\n\t\t\t'settings/credit': 'showSettingsCreditView',\n\t\t\t'settings/data': 'showSettingsDataView'\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 748 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t Raven = __webpack_require__(123),\n\t $ = __webpack_require__(210),\n\t Marionette = __webpack_require__(209),\n\t TeamActivityView = __webpack_require__(509),\n\t Dropdown = __webpack_require__(557);\n\n\treturn Marionette.Controller.extend({\n\n\t\t/**\n * Given a teams collection, will recursively resolve any \"next\" links\n *\n * @param {Backbone.Collection} myTeamsCollection\n * @returns {Promise}\n */\n\t\tresolveNextTeams: function resolveNextTeams(myTeamsCollection) {\n\t\t\tvar nextUrl = myTeamsCollection.link('next'),\n\t\t\t fullCollectionUrl;\n\n\t\t\tif (nextUrl) {\n\t\t\t\t// Resolve the next teams\n\t\t\t\treturn wwwApp.siren.resolve(nextUrl).then(this.resolveNextTeams);\n\t\t\t} else {\n\t\t\t\t// No more teams to resolve. Resolve the request with the full collection\n\t\t\t\tfullCollectionUrl = myTeamsCollection.link('self');\n\t\t\t\treturn new $.Deferred().resolve(wwwApp.siren.store.get(fullCollectionUrl));\n\t\t\t}\n\t\t},\n\n\t\tmyTeamsRequestFail: function myTeamsRequestFail(errorModel) {\n\t\t\tvar errorString = JSON.stringify(errorModel.toJSON());\n\t\t\tRaven.captureMessage('There was an error loading teams: ' + errorString, { level: 'info' });\n\t\t\twwwApp.tipMsg('There was an error loading your teams. Please try again.', 'warning');\n\t\t},\n\n\t\tactivitiesRequestFail: function activitiesRequestFail(errorModel) {\n\t\t\tvar errorString = JSON.stringify(errorModel.toJSON());\n\t\t\tRaven.captureMessage('There was an error loading the activity feed: ' + errorString, { level: 'info' });\n\t\t\twwwApp.tipMsg('There was an error loading your activity feed. Please try again.', 'warning');\n\t\t},\n\n\t\tshowTeamActivityFeed: function showTeamActivityFeed() {\n\t\t\tvar myTeamsRequest, activitiesRequest;\n\n\t\t\t_.bindAll(this, 'resolveNextTeams');\n\n\t\t\tthis.dropdown = new Dropdown('#topSecondaryNav');\n\n\t\t\t// Redefine the mainRegion\n\t\t\t// @todo - shouldn't have to redefine the mainRegion, this is sloppy\n\t\t\twwwApp.mainRegion = new Marionette.Region({\n\t\t\t\tel: '#main'\n\t\t\t});\n\n\t\t\tmyTeamsRequest = wwwApp.siren.resolve('my/teams').then(this.resolveNextTeams).fail(this.myTeamsRequestFail);\n\n\t\t\tactivitiesRequest = wwwApp.siren.resolve('my/feed', {\n\t\t\t\tdata: {\n\t\t\t\t\tq: 'actions:team_message'\n\t\t\t\t}\n\t\t\t}).fail(this.activitiesRequestFail);\n\n\t\t\t$.when(myTeamsRequest, activitiesRequest).done(function (myTeamsCollection, activitiesCollection) {\n\t\t\t\tvar teamActivityView = new TeamActivityView({\n\t\t\t\t\tmyTeamsCollection: myTeamsCollection,\n\t\t\t\t\tactivitiesCollection: activitiesCollection\n\t\t\t\t});\n\n\t\t\t\twwwApp.mainRegion.show(teamActivityView);\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 749 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"hasTeams\",c,p,1),c,p,0,56,134,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t

    There aren't any recent activities in your feed

    \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"hasTeams\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t

    You haven't joined a team...yet!

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Lending teams are self-organized groups where members connect and rally around shared lending goals. Joining a lending team gives you a chance to:

    \");t.b(\"\\n\" + i);t.b(\"\t\t
      \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Connect with other lenders on team message boards.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Join forces to get loans funded faster
    • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
    • Discover the impact a group of individuals can have when working together.
    • \");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);};t.b(\"
    \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
    \");t.b(\"\\n\" + i);t.b(\"\t
    \");t.b(\"\\n\" + i);if(t.s(t.f(\"hasTeams\",c,p,1),c,p,0,729,939,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t

    About Teams

    \");t.b(\"\\n\" + i);t.b(\"\t\t

    Lending teams are self-organized groups where members connect and rally around shared lending goals. Learn more

    \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"hasTeams\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);t.b(\"\t\t\tExplore All Teams\");t.b(\"\\n\" + i);t.b(\"\t\t
    \");t.b(\"\\n\" + i);};t.b(\"
    \");return t.fl(); },partials: {}, subs: { }}, \"
    \\n\\t{{#hasTeams}}\\n\\t\\t

    There aren't any recent activities in your feed

    \\n\\t{{/hasTeams}}\\n\\t{{^hasTeams}}\\n\\t\\t

    You haven't joined a team...yet!

    \\n\\t\\t

    Lending teams are self-organized groups where members connect and rally around shared lending goals. Joining a lending team gives you a chance to:

    \\n\\t\\t
      \\n\\t\\t\\t
    • Connect with other lenders on team message boards.
    • \\n\\t\\t\\t
    • Join forces to get loans funded faster
    • \\n\\t\\t\\t
    • Discover the impact a group of individuals can have when working together.
    • \\n\\t\\t
    \\n\\t{{/hasTeams}}\\n
    \\n\\n
    \\n\\t
    \\n\\t{{#hasTeams}}\\n\\t\\t

    About Teams

    \\n\\t\\t

    Lending teams are self-organized groups where members connect and rally around shared lending goals. Learn more

    \\n\\t{{/hasTeams}}\\n\\t{{^hasTeams}}\\n\\t\\t\\n\\t\\t
    \\n\\t\\t\\tExplore All Teams\\n\\t\\t
    \\n\\t{{/hasTeams}}\\n
    \", H);return T; }();\n\n/***/ }),\n/* 750 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\tvar TeamActivityFeedViewStache = __webpack_require__(751);\n\tvar TeamActivityItemView = __webpack_require__(752);\n\n\treturn Marionette.CompositeView.extend({\n\t\tchildView: TeamActivityItemView,\n\t\tchildViewContainer: '.teamActivitiesList',\n\t\ttemplate: TeamActivityFeedViewStache,\n\n\t\tevents: {\n\t\t\t'click .moreTeamActivitiesButton': 'handleShowMoreLinkClick'\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\treturn {\n\t\t\t\tshowMoreLink: !!this.collection.link('next')\n\t\t\t};\n\t\t},\n\n\t\thandleShowMoreLinkClick: function handleShowMoreLinkClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this,\n\t\t\t $button = this.$(event.target);\n\n\t\t\tif (this.isLoadingButton($button)) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tthis.loadingButton($button);\n\t\t\t}\n\n\t\t\twwwApp.siren.resolve(this.collection.link('next')).always(function () {\n\t\t\t\tself.loadingButton($button, false);\n\t\t\t}).done(function () {\n\t\t\t\tself.render();\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('There was an error loading more activities. Please try again.', 'warning');\n\t\t\t});\n\t\t},\n\n\t\tisLoadingButton: function isLoadingButton($button) {\n\t\t\treturn $button.data('kvLoadingButton');\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery} $button\n * @param {Boolean} [enableLoading]\n * @returns {*}\n */\n\t\t, loadingButton: function loadingButton($button, enableLoading) {\n\t\t\tif (enableLoading === false) {\n\t\t\t\treturn $button.removeClass('loadingButton').removeData('kvLoadingButton');\n\t\t\t}\n\n\t\t\t// Default is to \"enable\"\n\t\t\treturn $button.addClass('loadingButton').data('kvLoadingButton', true);\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\t// Render the entire \"self\" collection\n\t\t\tthis.collection = wwwApp.siren.store.get(this.collection.link('self'));\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 751 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

    Activity Feed

    \");t.b(\"\\n\" + i);t.b(\"
      \");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.f(\"showMoreLink\",c,p,1),c,p,0,95,235,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t
      \");t.b(\"\\n\" + i);t.b(\"\t\tShow more activities\");t.b(\"\\n\" + i);t.b(\"\t
      \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"

      Activity Feed

      \\n
        \\n\\n{{#showMoreLink}}\\n\\t
        \\n\\t\\tShow more activities\\n\\t
        \\n{{/showMoreLink}}\", H);return T; }();\n\n/***/ }),\n/* 752 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backbone = __webpack_require__(20),\n\t TeamActivityItemViewStache = __webpack_require__(753),\n\t TeamJoinActivityView = __webpack_require__(754),\n\t TeamLoanActivityView = __webpack_require__(756),\n\t TeamMessageActivityView = __webpack_require__(758);\n\n\treturn Backbone.View.extend({\n\t\ttagName: 'li',\n\t\tclassName: 'TeamActivityItemView',\n\t\ttemplate: TeamActivityItemViewStache,\n\n\t\trender: function render() {\n\t\t\tvar data,\n\t\t\t activityView,\n\t\t\t actor,\n\t\t\t actorPublicId,\n\t\t\t actorUrl,\n\t\t\t actorName,\n\t\t\t teamImageId,\n\t\t\t model = this.model,\n\t\t\t activityType = model.get('action'),\n\t\t\t options = {\n\t\t\t\tmodel: model\n\t\t\t};\n\n\t\t\tswitch (activityType) {\n\t\t\t\tcase 'team_message':\n\t\t\t\t\tactivityView = new TeamMessageActivityView(options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'loan_make':\n\t\t\t\t\tactivityView = new TeamLoanActivityView(options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'team_join':\n\t\t\t\t\tactivityView = new TeamJoinActivityView(options);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}\n\n\t\t\tactor = this.model.get('actor');\n\t\t\tif (actor) {\n\t\t\t\tactorPublicId = this.model.get('actor.publicId');\n\t\t\t\tactorUrl = wwwApp.url('lender', 'view', { publicId: actorPublicId });\n\t\t\t\tactorName = this.model.get('actor.name');\n\t\t\t} else {\n\t\t\t\tactorPublicId = 'Anonymous';\n\t\t\t\tactorName = 'Anonymous';\n\t\t\t}\n\n\t\t\tteamImageId = this.model.get('team.image.id');\n\n\t\t\tdata = {\n\t\t\t\tteamImageSrc: teamImageId ? wwwApp.imageUrl(teamImageId, 's35') : wwwApp.staticUrl('img/entity/team_s135.png'),\n\t\t\t\tteamUrl: wwwApp.url('community', 'viewTeamSummary', { teamPublicId: model.get('team.teamPublicId') }),\n\t\t\t\tteamName: model.get('team.name'),\n\t\t\t\ttime: activityView.formatTimestamp(),\n\t\t\t\tisTeamMessage: activityType == 'team_message',\n\t\t\t\tisLoanMake: activityType == 'loan_make',\n\t\t\t\tisTeamJoin: activityType == 'team_join',\n\t\t\t\tactorPublicId: actorPublicId,\n\t\t\t\tactorUrl: actorUrl,\n\t\t\t\tactorName: actorName\n\t\t\t};\n\n\t\t\tif (activityView) {\n\t\t\t\tthis.$el.html(this.template.render(data));\n\n\t\t\t\tactivityView.render();\n\t\t\t\tthis.$el.append(activityView.$el);\n\t\t\t}\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 753 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"isTeamMessage\",c,p,1),c,p,0,201,376,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,218,241,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(t.v(t.f(\"actorName\",c,p,0)));if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,280,284,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\tposted on\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"isLoanMake\",c,p,1),c,p,0,412,497,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\tA loan was made on \");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"isTeamJoin\",c,p,1),c,p,0,530,712,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,547,570,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"actorPublicId\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,622,626,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\tjoined \");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"isNew\",c,p,1),c,p,0,747,843,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        New
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
        \");t.b(t.v(t.f(\"time\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t\\n\\t\\t\\n\\t\\n\\t
        \\n\\t\\t{{#isTeamMessage}}\\n\\t\\t\\t{{#actorUrl}}{{/actorUrl}}{{actorName}}{{#actorUrl}}{{/actorUrl}}\\n\\t\\t\\tposted on\\n\\t\\t\\t{{teamName}}\\n\\t\\t{{/isTeamMessage}}\\n\\t\\t{{#isLoanMake}}\\n\\t\\t\\tA loan was made on {{teamName}}\\n\\t\\t{{/isLoanMake}}\\n\\t\\t{{#isTeamJoin}}\\n\\t\\t\\t{{#actorUrl}}{{/actorUrl}}\\n\\t\\t\\t\\t{{actorPublicId}}\\n\\t\\t\\t{{#actorUrl}}{{/actorUrl}}\\n\\t\\t\\tjoined {{teamName}}\\n\\t\\t{{/isTeamJoin}}\\n\\t
        \\n\\t{{#isNew}} {{! @todo - implement the \\\"new\\\" notification }}\\n\\t\\t
        New
        \\n\\t{{/isNew}}\\n\\t
        {{time}}
        \\n
        \\n\", H);return T; }();\n\n/***/ }),\n/* 754 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar LenderActivityAbstractView = __webpack_require__(558),\n\t TeamJoinActivityViewStache = __webpack_require__(755);\n\n\treturn LenderActivityAbstractView.extend({\n\t\ttemplate: TeamJoinActivityViewStache,\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar lenderPublicId,\n\t\t\t data = this.model.toJSON();\n\n\t\t\tdata.__lenderImageUrl = wwwApp.imageUrl(this.model.get('lender.image.id'), 's100');\n\t\t\tlenderPublicId = this.model.get('lender.publicId');\n\t\t\tif (lenderPublicId) {\n\t\t\t\tdata.__lenderProfileUrl = wwwApp.url('lender', 'view', { publicId: lenderPublicId });\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 755 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"__lenderProfileUrl\",c,p,1),c,p,0,23,56,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"__lenderProfileUrl\",c,p,1),c,p,0,184,188,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#__lenderProfileUrl}}{{/__lenderProfileUrl}}\\n\\t\\n{{#__lenderProfileUrl}}{{/__lenderProfileUrl}}\", H);return T; }();\n\n/***/ }),\n/* 756 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar LenderActivityAbstractView = __webpack_require__(558),\n\t TeamLoanActivityViewStache = __webpack_require__(757);\n\n\treturn LenderActivityAbstractView.extend({\n\t\ttemplate: TeamLoanActivityViewStache,\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tdata.__loanImageUrl = wwwApp.imageUrl(this.model.get('loan.image.id'), 's100');\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 757 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\", H);return T; }();\n\n/***/ }),\n/* 758 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backbone = __webpack_require__(20),\n\t LenderActivityAbstractView = __webpack_require__(558),\n\t TeamMessageActivityViewStache = __webpack_require__(759);\n\n\treturn LenderActivityAbstractView.extend({\n\t\ttemplate: TeamMessageActivityViewStache,\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar model = this.model;\n\t\t\tvar data = model.toJSON();\n\t\t\tvar messageId = model.get('teamMessage.id');\n\t\t\tvar actor = model.get('actor');\n\n\t\t\t// There is no actor with Anon users.\n\t\t\tdata.__lenderImageSrc = actor && actor instanceof Backbone.Model ? wwwApp.imageUrl(actor.get('image.id'), 's50') : wwwApp.staticUrl('img/entity/lender_s100.png');\n\n\t\t\tdata.__messageBody = this.processTeamMessage();\n\t\t\tdata.__teamMessageDirectUrl = wwwApp.url('community', 'viewMessages', { teamPublicId: model.get('team.teamPublicId') }, { msgID: messageId }, 'msg_' + messageId);\n\n\t\t\treturn data;\n\t\t}\n\n\t\t/**\n * Processes the message body.\n *\n * @returns {string|*}\n */\n\t\t, processTeamMessage: function processTeamMessage() {\n\t\t\tvar teamPublicId,\n\t\t\t message = this.model.get('teamMessage.body');\n\n\t\t\tif (!message) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tteamPublicId = this.model.get('team.teamPublicId');\n\n\t\t\tmessage = message.split('\\n').join('
        ');\n\n\t\t\t// Find and replace any message ids with a link\n\t\t\treturn message.replace(/#\\d+/g, function (match) {\n\t\t\t\tmatch = match.substring(1);\n\t\t\t\treturn '#' + match + '';\n\t\t\t});\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 759 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"#\");t.b(t.v(t.d(\"teamMessage.id\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.t(t.f(\"__messageBody\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"#{{teamMessage.id}}\\n\\n
        \\n\\t{{{__messageBody}}}\\n
        \\n\", H);return T; }();\n\n/***/ }),\n/* 760 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t Backbone = __webpack_require__(20),\n\t DropdownMenu = __webpack_require__(761),\n\t TeamActivityMyTeamsViewStache = __webpack_require__(762);\n\n\treturn Backbone.View.extend({\n\n\t\ttemplate: TeamActivityMyTeamsViewStache,\n\t\tclassName: 'TeamActivityMyTeamsView',\n\n\t\tgenTeamUrl: function genTeamUrl(teamPublicId) {\n\t\t\treturn wwwApp.url('community', 'viewTeamSummary', { teamPublicId: teamPublicId });\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar myTeams = this.collection.toJSON();\n\n\t\t\t_.each(myTeams, function (team) {\n\t\t\t\tteam.__imageUrl = team.image && team.image.id ? wwwApp.imageUrl(team.image.id, 's35') : wwwApp.staticUrl('img/entity/team_s135.png');\n\n\t\t\t\tteam.__teamUrl = this.genTeamUrl(team.teamPublicId);\n\t\t\t\tteam.__teamMessagesUrl = wwwApp.url('community', 'viewMessages', { teamPublicId: team.teamPublicId });\n\t\t\t\tteam.__setAsPreferredTeamUrl = wwwApp.url('account', 'updatePreferredTeam', null, { preferredTeamId: team.id });\n\t\t\t\tteam.__quitTeamUrl = wwwApp.url('community', 'quitTeamProcess', null, { team_id: team.id, doneUrl: wwwApp.url('account', 'teams') });\n\t\t\t}, this);\n\n\t\t\treturn {\n\t\t\t\tnumTeams: this.collection.meta('count'),\n\t\t\t\tmyTeams: myTeams,\n\t\t\t\tallTeamsUrl: wwwApp.url('ui', 'teams')\n\t\t\t};\n\t\t},\n\n\t\trender: function render() {\n\t\t\tthis.$el.html(this.template.render(this.serializeData()));\n\n\t\t\tthis.$('.teamActivityTeamActions').each(function (index, el) {\n\t\t\t\tnew DropdownMenu(el, 'sidebar', 'teamsListMenu');\n\t\t\t});\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 761 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0);\n\n\t/**\n *\n * @param {jQuery.Element} $target\n * @param {String} style - Can be left empty or set to \"sidebar\"\n * @param {String} name - Useful when you have multiple sets of menus and want to group them.\n * @constructor\n */\n\tfunction Menu($target, style, name) {\n\t\t$target = $($target);\n\n\t\tvar self = this;\n\n\t\tif (style) {\n\t\t\t$target.addClass(style);\n\t\t}\n\n\t\t// For storing data specific to the group (e.g. which dropdown menu item is visible)\n\t\tif (name) {\n\t\t\tMenu.data[name] = {};\n\t\t}\n\n\t\tthis.name = name;\n\t\tthis.$target = $target;\n\t\tthis.$dropdownIcon = $target.find(this.classSelector(Menu.options.iconClass));\n\t\tthis.$dropdownContent = $target.find(this.classSelector(Menu.options.contentClass)).addClass(Menu.options.hiddenClass);\n\n\t\tthis.$dropdownIcon.on('click.dropdownMenu', function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (!self.isVisible(self.$dropdownContent)) {\n\t\t\t\tself.show();\n\t\t\t}\n\t\t});\n\t}\n\n\tMenu.options = {\n\t\ticonClass: 'dropdownIcon',\n\t\tcontentClass: 'dropdownContent',\n\t\thiddenClass: 'dropdownMenuHidden',\n\t\tvisibleClass: 'dropdownMenuVisible'\n\t};\n\n\t/**\n * Store library data\n *\n * @type {Object}\n */\n\tMenu.data = {};\n\n\t/**\n * Hide any visible dropdown within the given group name\n *\n * @param {string} name - the name of the group to hide\n */\n\tMenu.hide = function (name) {\n\t\tvar group = name ? Menu.data[name] : Menu.data; // Use the \"global\" group if there is no name\n\n\t\tif (group.visible) {\n\t\t\tgroup.visible.hide();\n\t\t}\n\t};\n\n\t/**\n * Set the visible flag for the group\n * The visible flag lets us know which menu item is visible for each group.\n *\n * @param {Menu} menu\n */\n\tMenu.setVisible = function (menu) {\n\t\tvar name = menu.name,\n\t\t group = name ? Menu.data[name] : Menu.data; // Use the \"global\" group if there is no name\n\n\t\tMenu.hide(name);\n\t\tgroup.visible = menu;\n\t};\n\n\tMenu.prototype = {\n\n\t\t/**\n *\n * @param {Element} el\n * @returns {*}\n */\n\t\tisDropdownElement: function isDropdownElement(el) {\n\t\t\treturn $.contains(this.$target[0], el);\n\t\t}\n\n\t\t/**\n *\n * @param {string} str\n * @returns {string}\n */\n\t\t, classSelector: function classSelector(str) {\n\t\t\treturn '.' + str;\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery.Element} $el\n * @returns {*}\n */\n\t\t, isVisible: function isVisible($el) {\n\t\t\treturn $el.hasClass(Menu.options.visibleClass);\n\t\t}\n\n\t\t/**\n * Shows the dropdown menu\n *\n */\n\t\t, show: function show() {\n\t\t\tvar self = this;\n\n\t\t\tMenu.setVisible(this);\n\n\t\t\t$('body').on('click.dropdownMenu', function (event) {\n\t\t\t\tvar $target = $(event.target);\n\n\t\t\t\t// @todo think through this implementation a bit better\n\t\t\t\t// Hide the clicked element is not inside of the dropdown and if its not the initial open\n\t\t\t\tif (!$.contains(self.$dropdownContent[0], $target[0]) && $target.next()[0] !== self.$dropdownContent[0]) {\n\t\t\t\t\tself.hide();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$dropdownContent.stop().removeClass(Menu.options.hiddenClass).addClass(Menu.options.visibleClass);\n\t\t}\n\n\t\t/**\n * Hides the dropdown menu\n *\n */\n\t\t, hide: function hide() {\n\t\t\t$('body').off('click.dropdownMenu'); // Don't leave the click event handler dangling around\n\n\t\t\tthis.$dropdownContent.stop().removeClass(Menu.options.visibleClass).addClass(Menu.options.hiddenClass);\n\t\t}\n\t};\n\n\treturn Menu;\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 762 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        My Teams (\");t.b(t.v(t.f(\"numTeams\",c,p,0)));t.b(\")\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\tAll teams\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"
          \");t.b(\"\\n\" + i);if(t.s(t.f(\"myTeams\",c,p,1),c,p,0,155,1237,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"hasNewActivities\",c,p,1),c,p,0,489,649,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"
          \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          • Jump to Message Board
          • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          • Go to Overview
          • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          • Set as preferred Team
          • \");t.b(t.v(t.f(\"@todo - update to use team action\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          • Quit Team
          • \");t.b(t.v(t.f(\"@todo - update to use teamMember action\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t
        • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"

        My Teams ({{numTeams}})\\n\\t\\n\\t\\tAll teams\\n\\t\\n

        \\n
          \\n\\t{{#myTeams}}\\n\\t\\t
        • \\n\\t\\t\\t
          \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t{{#hasNewActivities}} {{! @todo - the \\\"new activities\\\" feature has yet to be implemented }}\\n
          \\n {{/hasNewActivities}}\\n\\t\\t\\t
          \\n\\t\\t\\t
          \\n\\t\\t\\t\\t
          \\n\\t\\t\\t\\t\\n\\t\\t\\t
          \\n\\t\\t
        • \\n\\t{{/myTeams}}\\n
        \\n\", H);return T; }();\n\n/***/ }),\n/* 763 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'teams/my-teams': 'showTeamActivityFeed',\n\t\t\t'teams/my-teams/:teamPublicId': 'showTeamActivityFeed'\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 764 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t _ = __webpack_require__(11),\n\t SirenSearch = __webpack_require__(550),\n\t TrusteeListingView = __webpack_require__(510);\n\n\tvar LIMIT = 20;\n\n\treturn Marionette.Controller.extend({\n\n\t\tshowListingView: function showListingView() {\n\t\t\tthis._executeSearch();\n\t\t},\n\t\t_handleFilterChange: function _handleFilterChange(attrName, attrValue) {\n\t\t\tif (attrValue === '' || attrValue === 'all' || attrValue === false) {\n\t\t\t\tthis.searchModel.unset(attrName);\n\t\t\t} else {\n\t\t\t\tthis.searchModel.set(attrName, attrValue);\n\t\t\t}\n\t\t\tthis.searchModel.unset('offset');\n\t\t\tthis._executeSearch();\n\t\t},\n\t\t_handleResultPrevious: function _handleResultPrevious() {\n\t\t\tvar offset = this.searchModel.get('offset') || 0;\n\t\t\t// if offset is not set, prev is noop\n\t\t\tif (offset > 0) {\n\t\t\t\toffset -= LIMIT;\n\t\t\t\tif (offset > 0) {\n\t\t\t\t\tthis.searchModel.set('offset', offset);\n\t\t\t\t} else {\n\t\t\t\t\tthis.searchModel.unset('offset');\n\t\t\t\t}\n\t\t\t\tthis._executeSearch();\n\t\t\t}\n\t\t},\n\t\t_handleResultNext: function _handleResultNext() {\n\t\t\tvar offset = this.searchModel.get('offset') || 0;\n\t\t\toffset += LIMIT;\n\t\t\tthis.searchModel.set('offset', offset);\n\t\t\tthis._executeSearch();\n\t\t},\n\n\t\t_handleResultFirst: function _handleResultFirst() {\n\t\t\tthis.searchModel.set('offset', 0);\n\t\t\tthis._executeSearch();\n\t\t},\n\n\t\t_handleResultLast: function _handleResultLast() {\n\t\t\tthis.searchModel.set('offset', Math.floor(this.trusteeCollection._meta.count / LIMIT) * LIMIT);\n\t\t\tthis._executeSearch();\n\t\t}\n\n\t\t// broken out for theoretical future testing.\n\t\t, _handleSearchDone: function _handleSearchDone(results) {\n\t\t\tvar current_criteria = this.searchModel.getCriteria();\n\t\t\tvar offset = isNaN(current_criteria.offset) ? 0 : current_criteria.offset;\n\t\t\tthis.trusteeCollection = results;\n\n\t\t\t// pagination: first/last disabled. to re-enable, replace false variables with the following:\n\t\t\t// offset\n\t\t\t// (parseInt(offset) < parseInt(results._meta.count) - LIMIT)\n\n\t\t\tthis.view.updateResults(results.models, results._meta.count, !!results.link('prev'), !!results.link('next'), false, false);\n\t\t},\n\t\t_executeSearch: function _executeSearch() {\n\t\t\tthis.searchModel.resolveSearch().done(this._handleSearchDone);\n\t\t},\n\n\t\t_executeLast: function _executeLast(results) {\n\t\t\tthis.searchModel.set('offset', 0);\n\t\t\tthis._executeSearch().done(this._scrollToTop);\n\t\t}\n\n\t\t/**\n * moduleData - would be the view's data\n * @param options\n */\n\t\t, initialize: function initialize(options) {\n\n\t\t\tthis.searchModel = new SirenSearch({\n\t\t\t\tname: 'search-trustees',\n\t\t\t\ttitle: 'Search Trustees',\n\t\t\t\tmethod: 'GET',\n\t\t\t\thref: 'trustees',\n\t\t\t\ttype: 'application/json',\n\t\t\t\tfields: [{ name: 'status' }, { name: 'fundRaisingOnly' }, { name: 'queryString' }],\n\t\t\t\tcriteria: ['offset', 'limit', 'sortBy', 'type', 'q']\n\t\t\t}, {\n\t\t\t\tsiren: wwwApp.siren\n\t\t\t});\n\t\t\tthis.searchModel.set({\n\t\t\t\t'limit': LIMIT,\n\t\t\t\t'status': 'approved',\n\t\t\t\t'sortBy': 'repaymentRate',\n\t\t\t\t'fundRaisingOnly': 'true'\n\t\t\t});\n\n\t\t\tthis.view = new TrusteeListingView(options);\n\t\t\tthis.listenTo(this.view, 'filter-change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.view, 'result-previous', this._handleResultPrevious);\n\t\t\tthis.listenTo(this.view, 'result-next', this._handleResultNext);\n\t\t\tthis.listenTo(this.view, 'result-first', this._handleResultFirst);\n\t\t\tthis.listenTo(this.view, 'result-last', this._handleResultLast);\n\t\t\t_.bindAll(this, '_handleSearchDone', '_handleResultPrevious', '_handleResultNext', '_handleResultFirst', '_handleResultLast');\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 765 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(122),\n\t TrusteeCardView = __webpack_require__(766),\n\t NoResultsView = __webpack_require__(768),\n\t ClickableView = __webpack_require__(547);\n\n\treturn Marionette.CompositeView.extend({\n\n\t\ttemplate: __webpack_require__(769),\n\n\t\tpartials: {\n\t\t\t'02-organisms/10-lend/03-paging': __webpack_require__(570)\n\n\t\t\t//\t\t, emptyView: NoResultsView ( pending reset filters button )\n\n\t\t}, childView: TrusteeCardView,\n\n\t\tchildViewContainer: '.trustee-results',\n\n\t\tcollection: new Backbone.Collection(),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tupdateResults: function updateResults(trustees, total_count, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tthis.collection.set(trustees);\n\t\t\tthis.model.set({\n\t\t\t\ttotal_count: total_count,\n\t\t\t\tdisable_previous: !enable_previous,\n\t\t\t\tdisable_next: !enable_next,\n\t\t\t\tdisable_first: !enable_first,\n\t\t\t\tdisable_last: !enable_last,\n\t\t\t\thide_paging: !enable_previous && !enable_next && !enable_first && !enable_last\n\t\t\t});\n\t\t\tthis.render();\n\t\t},\n\n\t\t_handlePrevious: function _handlePrevious() {\n\t\t\tthis.previousButton.disable();\n\t\t\tthis.trigger('previous');\n\t\t},\n\t\t_handleNext: function _handleNext() {\n\t\t\tthis.nextButton.disable();\n\t\t\tthis.trigger('next');\n\t\t},\n\t\t_handleFirst: function _handleFirst() {\n\t\t\tthis.firstButton.hide();\n\t\t\tthis.trigger('first');\n\t\t},\n\t\t_handleLast: function _handleLast() {\n\t\t\tthis.lastButton.hide();\n\t\t\tthis.trigger('last');\n\t\t},\n\t\tonRender: function onRender() {\n\t\t\t// can bind new views to existing elements.\n\t\t\tthis.previousButton = new ClickableView({ el: this.$('.previous') });\n\t\t\tthis.listenTo(this.previousButton, 'clicked', this._handlePrevious);\n\t\t\tthis.nextButton = new ClickableView({ el: this.$('.next') });\n\t\t\tthis.listenTo(this.nextButton, 'clicked', this._handleNext);\n\t\t\tthis.firstButton = new ClickableView({ el: this.$('.first') });\n\t\t\tthis.listenTo(this.firstButton, 'clicked', this._handleFirst);\n\t\t\tthis.lastButton = new ClickableView({ el: this.$('.last') });\n\t\t\tthis.listenTo(this.lastButton, 'clicked', this._handleLast);\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 766 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t moment = __webpack_require__(546),\n\t formatters = __webpack_require__(551);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(767),\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar context = this.model.attributes,\n\t\t\t since = moment(context.createTime);\n\t\t\tcontext.timeOnKiva = since.fromNow();\n\t\t\tcontext.profileHref = '/trustees/' + context.id;\n\t\t\tif (context && context.image && context.image.attributes && context.image.attributes.hash) {\n\t\t\t\tcontext.imageSmall = wwwApp.imageUrl(context.image.attributes.hash, 'h120');\n\t\t\t} else {\n\t\t\t\tcontext.imageSmall = wwwApp.imageUrl('addc298db703827b9a0ceca8619a0a83', 'h120'); //anonymous image\n\t\t\t}\n\t\t\tcontext.story = formatters.truncate(context.whyInterested, 300);\n\t\t\t// changed api stats response to be an entity, so now it has an attributes\n\t\t\t// sub-property which must be removed.\n\t\t\tif (context.stats) {\n\t\t\t\tif (context.stats.attributes) {\n\t\t\t\t\tcontext.stats = context.stats.attributes;\n\t\t\t\t}\n\t\t\t\tcontext.stats.totalValue = formatters.formatBcMoney(context.stats.totalLoansValue);\n\t\t\t\tif (context.stats.repaymentRate) {\n\t\t\t\t\tcontext.stats.prettyRepaymentRate = formatters.formatPercent(context.stats.repaymentRate);\n\t\t\t\t}\n\t\t\t\tif (context.stats.numFundraisingLoans) {\n\t\t\t\t\tcontext.stats.fundraisingLoansHref = '/lend' + '?distributionModel=direct' + '&status=fundRaising' + '&trustee=' + context.id;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { trustee: context };\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 767 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"trustee\",c,p,1),c,p,0,12,1327,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\\\"Image\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"title\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");if(t.s(t.f(\"contactRecord\",c,p,1),c,p,0,392,423,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");t.b(t.v(t.f(\"city\",c,p,0)));t.b(\", \");t.b(t.v(t.f(\"state\",c,p,0)));t.b(\"
        \");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");if(t.s(t.f(\"timeOnKiva\",c,p,1),c,p,0,504,544,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"joined kiva \");t.b(t.v(t.f(\"timeOnKiva\",c,p,0)));t.b(\"
        \");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(t.v(t.f(\"organizationType\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t

        \");t.b(t.v(t.f(\"story\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"stats\",c,p,1),c,p,0,774,1299,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"prettyRepaymentRate\",c,p,1),c,p,0,834,984,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\t\");t.b(t.v(t.f(\"prettyRepaymentRate\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\trepayment rate
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");if(t.s(t.f(\"numLoansEndorsedTotal\",c,p,1),c,p,0,1041,1097,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.v(t.f(\"totalValue\",c,p,0)));t.b(\" in \");t.b(t.v(t.f(\"numLoansEndorsedTotal\",c,p,0)));t.b(\" loan(s)
        \");});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"numFundraisingLoans\",c,p,1),c,p,0,1153,1259,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\t\");t.b(t.v(t.f(\"numFundraisingLoans\",c,p,0)));t.b(\" loan(s)\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\tfundraising now!\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#trustee}}\\n\\t
        \\n\\n\\t\\t
        \\n\\t\\t\\t\\\"Image\\n\\t\\t
        \\n\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t\\t\\t{{title}}
        \\n\\t\\t\\t\\t

        \\n\\t\\t\\t\\t\\t{{#contactRecord}}{{city}}, {{state}}
        {{/contactRecord}}\\n\\t\\t\\t\\t\\t{{! timeOnKiva - e.g. 32 month(s) }}\\n\\t\\t\\t\\t\\t{{#timeOnKiva}}joined kiva {{timeOnKiva}}
        {{/timeOnKiva}}\\n\\t\\t\\t\\t\\t{{organizationType}}\\n\\t\\t\\t\\t

        \\n\\t\\t\\t
        \\n\\t\\t\\t{{! story = whyInterested truncated 300 characters}}\\n\\t\\t\\t

        {{story}}

        \\n\\t\\t
        \\n\\n\\t\\t
        \\n\\t\\t\\t{{#stats}}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{#prettyRepaymentRate}}\\n\\t\\t\\t\\t\\t\\t{{! repaymentRate should have % already appended }}\\n\\t\\t\\t\\t\\t\\t{{prettyRepaymentRate}}\\n\\t\\t\\t\\t\\t\\trepayment rate
        \\n\\t\\t\\t\\t\\t{{/prettyRepaymentRate}}\\n\\n\\t\\t\\t\\t\\t{{#numLoansEndorsedTotal}}{{totalValue}} in {{numLoansEndorsedTotal}} loan(s)
        {{/numLoansEndorsedTotal}}\\n\\t\\t\\t\\t\\t{{#numFundraisingLoans}}\\n\\t\\t\\t\\t\\t\\t{{numFundraisingLoans}} loan(s)\\n\\t\\t\\t\\t\\t\\tfundraising now!\\n\\t\\t\\t\\t\\t{{/numFundraisingLoans}}\\n\\t\\t\\t\\t
        \\n\\t\\t\\t{{/stats}}\\n\\t\\t
        \\n\\t
        \\n{{/trustee}}\", H);return T; }();\n\n/***/ }),\n/* 768 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: function template(config) {\n\t\t\treturn ''; // will become a clear filters button\n\t\t}\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 769 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(t.v(t.f(\"total_count\",c,p,0)));t.b(\" matching Trustee(s)

        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/10-lend/03-paging0\",c,p,\"\t\"));t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {\"<02-organisms/10-lend/03-paging0\":{name:\"02-organisms/10-lend/03-paging\", partials: {}, subs: { }}}, subs: { }}, \"
        \\n\\t

        {{total_count}} matching Trustee(s)

        \\n\\n\\t
        \\n\\n\\t{{> 02-organisms/10-lend/03-paging}}\\n
        \\n\\n\", H);return T; }();\n\n/***/ }),\n/* 770 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(20),\n\t _ = __webpack_require__(11);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: __webpack_require__(771),\n\n\t\toptionsWithSelectedValue: function optionsWithSelectedValue(options, value) {\n\t\t\treturn _.map(options, function (option) {\n\t\t\t\tif (option.value === value) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else {\n\t\t\t\t\tdelete option.selected;\n\t\t\t\t}\n\t\t\t\treturn option;\n\t\t\t});\n\t\t}\n\n\t\t/**\n * prepare the data context for template rendering\n */\n\t\t, serializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tdata.trusteeSortOptions = this.optionsWithSelectedValue(data.trusteeSortOptions, data.sortBy);\n\t\t\treturn data;\n\t\t},\n\n\t\tmodel: new Backbone.Model(),\n\n\t\tmodelDefaults: {\n\t\t\tfundRaisingOnly: true,\n\t\t\ttrusteeSortOptions: [{ 'label': 'Loan Count', 'value': 'loanCount' }, { 'label': 'Repayment Rate', 'value': 'repaymentRate' }, { 'label': 'Time on Kiva', 'value': 'createTime' }, { 'label': 'Total $ Endorsed', 'value': 'totalLoanValue' }],\n\t\t\tsortBy: 'repaymentRate'\n\t\t},\n\n\t\tupdateFilters: function updateFilters(filters) {\n\t\t\tfilters = _.extend(this.modelDefaults, filters);\n\t\t\tthis.model.reset(filters);\n\t\t},\n\n\t\tevents: {\n\t\t\t'change': '_handleChange',\n\t\t\t'submit': '_handleSubmit'\n\t\t},\n\n\t\t_handleChange: function _handleChange(evt) {\n\t\t\t// console.log(['_handleChange']);\n\t\t\tvar $input = this.$(evt.target);\n\t\t\tvar attrName = $input.attr('name');\n\t\t\tvar attrVal;\n\t\t\tif ($input.is('[type=\"checkbox\"]')) {\n\t\t\t\tattrVal = $input.is(':checked');\n\t\t\t} else {\n\t\t\t\tattrVal = $input.val();\n\t\t\t}\n\t\t\t//console.log(['_handleChange', 'filter-change', attrName, attrVal]);\n\t\t\tthis.trigger('filter-change', attrName, attrVal);\n\t\t},\n\n\t\t_handleSubmit: function _handleSubmit(evt) {\n\t\t\tevt.preventDefault();\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.model.set(this.modelDefaults);\n\t\t},\n\n\t\tusStates: [['Alabama', 'AL'], ['Alaska', 'AK'], ['American Samoa', 'AS'], ['Arizona', 'AZ'], ['Arkansas', 'AR'], ['California', 'CA'], ['Colorado', 'CO'], ['Connecticut', 'CT'], ['Delaware', 'DE'], ['District Of Columbia', 'DC'], ['Florida', 'FL'], ['Georgia', 'GA'], ['Guam', 'GU'], ['Hawaii', 'HI'], ['Idaho', 'ID'], ['Illinois', 'IL'], ['Indiana', 'IN'], ['Iowa', 'IA'], ['Kansas', 'KS'], ['Kentucky', 'KY'], ['Louisiana', 'LA'], ['Maine', 'ME'], ['Maryland', 'MD'], ['Massachusetts', 'MA'], ['Michigan', 'MI'], ['Minnesota', 'MN'], ['Mississippi', 'MS'], ['Missouri', 'MO'], ['Montana', 'MT'], ['Nebraska', 'NE'], ['Nevada', 'NV'], ['New Hampshire', 'NH'], ['New Jersey', 'NJ'], ['New Mexico', 'NM'], ['New York', 'NY'], ['North Carolina', 'NC'], ['North Dakota', 'ND'], ['Ohio', 'OH'], ['Oklahoma', 'OK'], ['Oregon', 'OR'], ['Pennsylvania', 'PA'], ['Puerto Rico', 'PR'], ['Rhode Island', 'RI'], ['South Carolina', 'SC'], ['South Dakota', 'SD'], ['Tennessee', 'TN'], ['Texas', 'TX'], ['Utah', 'UT'], ['U.S. Minor Outlying Islands', 'UM'], ['Vermont', 'VT'], ['Virgin Islands of the U.S.', 'VI'], ['Virginia', 'VA'], ['Washington', 'WA'], ['West Virginia', 'WV'], ['Wisconsin', 'WI'], ['Wyoming', 'WY']]\n\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 771 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
        \\n\\t
        \\n
        \\n\\n\\n\", H);return T; }();\n\n/***/ }),\n/* 772 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Our Trustees

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\tKiva Trustees source entrepreneurs they believe in and publicly endorse them as borrowers on the Kiva website.\");t.b(\"\\n\" + i);t.b(\"\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\tTrustees have no financial liability for loans, but their reputation is tied to the repayment rate of the borrowers they endorse. Unlike Field Partners, Trustees never actually handle the loans, which Kiva disburses directly to the borrowers. Trustees can be individuals or organizations.\");t.b(\"\\n\" + i);t.b(\"\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Kiva US is accepting Trustee applications by invitation at this time.\");t.b(\"\\n\" + i);t.b(\" If you are interested in partnering with Kiva, please e-mail trustees@kiva.org.\");t.b(\"\\n\" + i);t.b(\" If you are affiliated with LISC, please mention this in your e-mail.\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t

        Our Trustees

        \\n\\t
        \\n\\t
        \\n\\t\\t

        \\n\\t\\t\\tKiva Trustees source entrepreneurs they believe in and publicly endorse them as borrowers on the Kiva website.\\n\\t\\t

        \\n\\t\\t

        \\n\\t\\t\\tTrustees have no financial liability for loans, but their reputation is tied to the repayment rate of the borrowers they endorse. Unlike Field Partners, Trustees never actually handle the loans, which Kiva disburses directly to the borrowers. Trustees can be individuals or organizations.\\n\\t\\t

        \\n\\t
        \\n\\n\\t
        \\n

        \\n Kiva US is accepting Trustee applications by invitation at this time.\\n If you are interested in partnering with Kiva, please e-mail trustees@kiva.org.\\n If you are affiliated with LISC, please mention this in your e-mail.\\n

        \\n\\t
        \\n
        \\n
        \\n
        \\n\\n\", H);return T; }();\n\n/***/ }),\n/* 773 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209);\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'trustees': 'showListingView'\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 774 */,\n/* 775 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n
        \\n\\t{{! @todo make this reusable }}\\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t\\t\\t\\n\\t\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t
        \\n\\t
        \\n
        \\n
        \\n\\t{{! @todo make this reusable }}\\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t\\t\\t\\n\\t\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t
        \\n\\t
        \\n
        \\n\", H);return T; }();\n\n/***/ }),\n/* 776 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Marionette = __webpack_require__(209),\n\t Backgrid = __webpack_require__(554),\n\t TeamRequestsBackgrid = __webpack_require__(777),\n\t teamRequestsViewTpl = __webpack_require__(785);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: teamRequestsViewTpl,\n\n\t\tclassName: 'TeamRequestsBackgridView',\n\n\t\tui: {\n\t\t\t$teamRequestsContainer: '.teamRequestsContainer',\n\t\t\t$numTeamRequests: '.numTeamRequests'\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar count = this.teamRequestsCollection.meta('count');\n\n\t\t\treturn {\n\t\t\t\t__requestsCount: count,\n\t\t\t\t__showMoreRequests: count > this.teamRequestsCollection.size(),\n\t\t\t\t__teamRequestsUrl: wwwApp.url('community', 'requests')\n\t\t\t};\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.ui.$teamRequestsContainer.append(this.teamRequestsBackgrid.render().el);\n\t\t},\n\n\t\tinitializeBackgrid: function initializeBackgrid() {\n\t\t\tthis.teamRequestsBackgrid = new TeamRequestsBackgrid({\n\t\t\t\tclassName: 'teamRequestsBackgrid actionListBackgrid ' + Backgrid.Grid.prototype.className,\n\t\t\t\tcollection: this.teamRequestsCollection\n\t\t\t});\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\tthis.options = options = options || {};\n\t\t\tthis.teamRequestsCollection = options.teamRequestsCollection;\n\t\t\tthis.initializeBackgrid();\n\n\t\t\t// Not ideal to manipulate the dom here, but in this case it is more practical than re-rendering the entire view\n\t\t\tthis.listenTo(this.teamRequestsCollection, 'add remove', function () {\n\t\t\t\tthis.ui.$numTeamRequests.html(this.teamRequestsCollection.meta('count'));\n\t\t\t});\n\n\t\t\tthis.render();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 777 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backgrid = __webpack_require__(552),\n\t TeamRequestActionCell = __webpack_require__(781),\n\t LenderCardView = __webpack_require__(783);\n\n\treturn Backgrid.Grid.extend({\n\t\tcolumns: [{\n\t\t\tcell: Backgrid.Cell.extend({\n\t\t\t\trender: function render() {\n\t\t\t\t\tthis.$el.html(new LenderCardView({ model: this.model }).render().el);\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}),\n\t\t\teditable: false\n\t\t}, {\n\t\t\tcell: TeamRequestActionCell,\n\t\t\teditable: false\n\t\t}],\n\t\theader: null\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 778 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n backgrid-paginator\n http://github.com/wyuenho/backgrid\n\n Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors\n Licensed under the MIT @license.\n*/\n(function (root, factory) {\n\n // CommonJS\n if (true) {\n module.exports = factory(__webpack_require__(11),\n __webpack_require__(20),\n __webpack_require__(554),\n __webpack_require__(779));\n }\n // AMD. Register as an anonymous module.\n else if (typeof define == \"function\" && define.amd) {\n define([\"underscore\", \"backbone\", \"backgrid\", \"backbone.paginator\"], factory);\n }\n // Browser\n else {\n factory(root._, root.Backbone, root.Backgrid);\n }\n\n}(this, function (_, Backbone, Backgrid) {\n\n \"use strict\";\n\n /**\n PageHandle is a class that renders the actual page handles and reacts to\n click events for pagination.\n\n This class acts in two modes - control or discrete page handle modes. If\n one of the `is*` flags is `true`, an instance of this class is under\n control page handle mode. Setting a `pageIndex` to an instance of this\n class under control mode has no effect and the correct page index will\n always be inferred from the `is*` flag. Only one of the `is*` flags should\n be set to `true` at a time. For example, an instance of this class cannot\n simultaneously be a rewind control and a fast forward control. A `label`\n and a `title` function or a string are required to be passed to the\n constuctor under this mode. If a `title` function is provided, it __MUST__\n accept a hash parameter `data`, which contains a key `label`. Its result\n will be used to render the generated anchor's title attribute.\n\n If all of the `is*` flags is set to `false`, which is the default, an\n instance of this class will be in discrete page handle mode. An instance\n under this mode requires the `pageIndex` to be passed from the constructor\n as an option and it __MUST__ be a 0-based index of the list of page numbers\n to render. The constuctor will normalize the base to the same base the\n underlying PageableCollection collection instance uses. A `label` is not\n required under this mode, which will default to the equivalent 1-based page\n index calculated from `pageIndex` and the underlying PageableCollection\n instance. A provided `label` will still be honored however. The `title`\n parameter is also not required under this mode, in which case the default\n `title` function will be used. You are encouraged to provide your own\n `title` function however if you wish to localize the title strings.\n\n If this page handle represents the current page, an `active` class will be\n placed on the root list element.\n\n If this page handle is at the border of the list of pages, a `disabled`\n class will be placed on the root list element.\n\n Only page handles that are neither `active` nor `disabled` will respond to\n click events and triggers pagination.\n\n @class Backgrid.Extension.PageHandle\n */\n var PageHandle = Backgrid.Extension.PageHandle = Backbone.View.extend({\n\n /** @property */\n tagName: \"li\",\n\n /** @property */\n events: {\n \"click a\": \"changePage\"\n },\n\n /**\n @property {string|function(Object.): string} title\n The title to use for the `title` attribute of the generated page handle\n anchor elements. It can be a string or a function that takes a `data`\n parameter, which contains a mandatory `label` key which provides the\n label value to be displayed.\n */\n title: function (data) {\n return 'Page ' + data.label;\n },\n\n /**\n @property {boolean} isRewind Whether this handle represents a rewind\n control\n */\n isRewind: false,\n\n /**\n @property {boolean} isBack Whether this handle represents a back\n control\n */\n isBack: false,\n\n /**\n @property {boolean} isForward Whether this handle represents a forward\n control\n */\n isForward: false,\n\n /**\n @property {boolean} isFastForward Whether this handle represents a fast\n forward control\n */\n isFastForward: false,\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {number} pageIndex 0-based index of the page number this handle\n handles. This parameter will be normalized to the base the underlying\n PageableCollection uses.\n @param {string} [options.label] If provided it is used to render the\n anchor text, otherwise the normalized pageIndex will be used\n instead. Required if any of the `is*` flags is set to `true`.\n @param {string} [options.title]\n @param {boolean} [options.isRewind=false]\n @param {boolean} [options.isBack=false]\n @param {boolean} [options.isForward=false]\n @param {boolean} [options.isFastForward=false]\n */\n initialize: function (options) {\n var collection = this.collection;\n var state = collection.state;\n var currentPage = state.currentPage;\n var firstPage = state.firstPage;\n var lastPage = state.lastPage;\n\n _.extend(this, _.pick(options,\n [\"isRewind\", \"isBack\", \"isForward\", \"isFastForward\"]));\n\n var pageIndex;\n if (this.isRewind) pageIndex = firstPage;\n else if (this.isBack) pageIndex = Math.max(firstPage, currentPage - 1);\n else if (this.isForward) pageIndex = Math.min(lastPage, currentPage + 1);\n else if (this.isFastForward) pageIndex = lastPage;\n else {\n pageIndex = +options.pageIndex;\n pageIndex = (firstPage ? pageIndex + 1 : pageIndex);\n }\n this.pageIndex = pageIndex;\n\n this.label = (options.label || (firstPage ? pageIndex : pageIndex + 1)) + '';\n var title = options.title || this.title;\n this.title = _.isFunction(title) ? title({label: this.label}) : title;\n },\n\n /**\n Renders a clickable anchor element under a list item.\n */\n render: function () {\n this.$el.empty();\n var anchor = document.createElement(\"a\");\n anchor.href = '#';\n if (this.title) anchor.title = this.title;\n anchor.innerHTML = this.label;\n this.el.appendChild(anchor);\n\n var collection = this.collection;\n var state = collection.state;\n var currentPage = state.currentPage;\n var pageIndex = this.pageIndex;\n\n if (this.isRewind && currentPage == state.firstPage ||\n this.isBack && !collection.hasPreviousPage() ||\n this.isForward && !collection.hasNextPage() ||\n this.isFastForward && (currentPage == state.lastPage || state.totalPages < 1)) {\n this.$el.addClass(\"disabled\");\n }\n else if (!(this.isRewind ||\n this.isBack ||\n this.isForward ||\n this.isFastForward) &&\n state.currentPage == pageIndex) {\n this.$el.addClass(\"active\");\n }\n\n this.delegateEvents();\n return this;\n },\n\n /**\n jQuery click event handler. Goes to the page this PageHandle instance\n represents. No-op if this page handle is currently active or disabled.\n */\n changePage: function (e) {\n e.preventDefault();\n var $el = this.$el, col = this.collection;\n if (!$el.hasClass(\"active\") && !$el.hasClass(\"disabled\")) {\n if (this.isRewind) col.getFirstPage({reset: true});\n else if (this.isBack) col.getPreviousPage({reset: true});\n else if (this.isForward) col.getNextPage({reset: true});\n else if (this.isFastForward) col.getLastPage({reset: true});\n else col.getPage(this.pageIndex, {reset: true});\n }\n return this;\n }\n\n });\n\n /**\n Paginator is a Backgrid extension that renders a series of configurable\n pagination handles. This extension is best used for splitting a large data\n set across multiple pages. If the number of pages is larger then a\n threshold, which is set to 10 by default, the page handles are rendered\n within a sliding window, plus the rewind, back, forward and fast forward\n control handles. The individual control handles can be turned off.\n\n @class Backgrid.Extension.Paginator\n */\n var Paginator = Backgrid.Extension.Paginator = Backbone.View.extend({\n\n /** @property */\n className: \"backgrid-paginator\",\n\n /** @property */\n windowSize: 10,\n\n /**\n @property {number} slideScale the number used by #slideHowMuch to scale\n `windowSize` to yield the number of pages to slide. For example, the\n default windowSize(10) * slideScale(0.5) yields 5, which means the window\n will slide forward 5 pages as soon as you've reached page 6. The smaller\n the scale factor the less pages to slide, and vice versa.\n\n Also See:\n\n - #slideMaybe\n - #slideHowMuch\n */\n slideScale: 0.5,\n\n /**\n @property {Object.>} controls You can\n disable specific control handles by setting the keys in question to\n null. The defaults will be merged with your controls object, with your\n changes taking precedent.\n */\n controls: {\n rewind: {\n label: \"《\",\n title: \"First\"\n },\n back: {\n label: \"〈\",\n title: \"Previous\"\n },\n forward: {\n label: \"〉\",\n title: \"Next\"\n },\n fastForward: {\n label: \"》\",\n title: \"Last\"\n }\n },\n\n /** @property */\n renderIndexedPageHandles: true,\n\n /**\n @property renderMultiplePagesOnly. Determines if the paginator\n should show in cases where the collection has more than one page.\n Default is false for backwards compatibility.\n */\n renderMultiplePagesOnly: false,\n\n /**\n @property {Backgrid.Extension.PageHandle} pageHandle. The PageHandle\n class to use for rendering individual handles\n */\n pageHandle: PageHandle,\n\n /** @property */\n goBackFirstOnSort: true,\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {boolean} [options.controls]\n @param {boolean} [options.pageHandle=Backgrid.Extension.PageHandle]\n @param {boolean} [options.goBackFirstOnSort=true]\n @param {boolean} [options.renderMultiplePagesOnly=false]\n */\n initialize: function (options) {\n var self = this;\n self.controls = _.defaults(options.controls || {}, self.controls,\n Paginator.prototype.controls);\n\n _.extend(self, _.pick(options || {}, \"windowSize\", \"pageHandle\",\n \"slideScale\", \"goBackFirstOnSort\",\n \"renderIndexedPageHandles\",\n \"renderMultiplePagesOnly\"));\n\n var col = self.collection;\n self.listenTo(col, \"add\", self.render);\n self.listenTo(col, \"remove\", self.render);\n self.listenTo(col, \"reset\", self.render);\n self.listenTo(col, \"backgrid:sorted\", function () {\n if (self.goBackFirstOnSort && col.state.currentPage !== col.state.firstPage) col.getFirstPage({reset: true});\n });\n },\n\n /**\n Decides whether the window should slide. This method should return 1 if\n sliding should occur and 0 otherwise. The default is sliding should occur\n if half of the pages in a window has been reached.\n\n __Note__: All the parameters have been normalized to be 0-based.\n\n @param {number} firstPage\n @param {number} lastPage\n @param {number} currentPage\n @param {number} windowSize\n @param {number} slideScale\n\n @return {0|1}\n */\n slideMaybe: function (firstPage, lastPage, currentPage, windowSize, slideScale) {\n return Math.round(currentPage % windowSize / windowSize);\n },\n\n /**\n Decides how many pages to slide when sliding should occur. The default\n simply scales the `windowSize` to arrive at a fraction of the `windowSize`\n to increment.\n\n __Note__: All the parameters have been normalized to be 0-based.\n\n @param {number} firstPage\n @param {number} lastPage\n @param {number} currentPage\n @param {number} windowSize\n @param {number} slideScale\n\n @return {number}\n */\n slideThisMuch: function (firstPage, lastPage, currentPage, windowSize, slideScale) {\n return ~~(windowSize * slideScale);\n },\n\n _calculateWindow: function () {\n var collection = this.collection;\n var state = collection.state;\n\n // convert all indices to 0-based here\n var firstPage = state.firstPage;\n var lastPage = +state.lastPage;\n lastPage = Math.max(0, firstPage ? lastPage - 1 : lastPage);\n var currentPage = Math.max(state.currentPage, state.firstPage);\n currentPage = firstPage ? currentPage - 1 : currentPage;\n var windowSize = this.windowSize;\n var slideScale = this.slideScale;\n var windowStart = Math.floor(currentPage / windowSize) * windowSize;\n if (currentPage <= lastPage - this.slideThisMuch()) {\n windowStart += (this.slideMaybe(firstPage, lastPage, currentPage, windowSize, slideScale) *\n this.slideThisMuch(firstPage, lastPage, currentPage, windowSize, slideScale));\n }\n var windowEnd = Math.min(lastPage + 1, windowStart + windowSize);\n return [windowStart, windowEnd];\n },\n\n /**\n Creates a list of page handle objects for rendering.\n\n @return {Array.} an array of page handle objects hashes\n */\n makeHandles: function () {\n\n var handles = [];\n var collection = this.collection;\n\n var window = this._calculateWindow();\n var winStart = window[0], winEnd = window[1];\n\n if (this.renderIndexedPageHandles) {\n for (var i = winStart; i < winEnd; i++) {\n handles.push(new this.pageHandle({\n collection: collection,\n pageIndex: i\n }));\n }\n }\n\n var controls = this.controls;\n _.each([\"back\", \"rewind\", \"forward\", \"fastForward\"], function (key) {\n var value = controls[key];\n if (value) {\n var handleCtorOpts = {\n collection: collection,\n title: value.title,\n label: value.label\n };\n handleCtorOpts[\"is\" + key.slice(0, 1).toUpperCase() + key.slice(1)] = true;\n var handle = new this.pageHandle(handleCtorOpts);\n if (key == \"rewind\" || key == \"back\") handles.unshift(handle);\n else handles.push(handle);\n }\n }, this);\n\n return handles;\n },\n\n /**\n Render the paginator handles inside an unordered list.\n */\n render: function () {\n this.$el.empty();\n\n var totalPages = this.collection.state.totalPages;\n\n // Don't render if collection is empty\n if(this.renderMultiplePagesOnly && totalPages <= 1) {\n return this;\n }\n\n if (this.handles) {\n for (var i = 0, l = this.handles.length; i < l; i++) {\n this.handles[i].remove();\n }\n }\n\n var handles = this.handles = this.makeHandles();\n\n var ul = document.createElement(\"ul\");\n for (var i = 0; i < handles.length; i++) {\n ul.appendChild(handles[i].render().el);\n }\n\n this.el.appendChild(ul);\n\n return this;\n }\n\n });\n\n}));\n\n\n/***/ }),\n/* 779 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n backbone.paginator\n http://github.com/backbone-paginator/backbone.paginator\n\n Copyright (c) 2016 Jimmy Yuen Ho Wong and contributors\n\n @module\n @license MIT\n*/\n\n(function (factory) {\n\n // CommonJS\n if (true) {\n module.exports = factory(__webpack_require__(11), __webpack_require__(20));\n }\n // AMD\n else if (typeof define == \"function\" && define.amd) {\n define([\"underscore\", \"backbone\"], factory);\n }\n // Browser\n else if (typeof _ !== \"undefined\" && typeof Backbone !== \"undefined\") {\n var oldPageableCollection = Backbone.PageableCollection;\n var PageableCollection = factory(_, Backbone);\n\n /**\n __BROWSER ONLY__\n\n If you already have an object named `PageableCollection` attached to the\n `Backbone` module, you can use this to return a local reference to this\n PageableCollection class and reset the name PageableCollection to its\n previous definition.\n\n // The left hand side gives you a reference to this\n // PageableCollection implementation, the right hand side\n // resets PageableCollection to your other PageableCollection.\n var PageableCollection = PageableCollection.noConflict();\n\n @static\n @return {PageableCollection}\n */\n Backbone.PageableCollection.noConflict = function () {\n Backbone.PageableCollection = oldPageableCollection;\n return PageableCollection;\n };\n }\n\n}(function (_, Backbone) {\n\n \"use strict\";\n\n var _extend = _.extend;\n var _omit = _.omit;\n var _clone = _.clone;\n var _each = _.each;\n var _pick = _.pick;\n var _contains = _.includes;\n var _isEmpty = _.isEmpty;\n var _pairs = _.pairs || _.toPairs;\n var _invert = _.invert;\n var _isArray = _.isArray;\n var _isFunction = _.isFunction;\n var _isObject = _.isObject;\n var _keys = _.keys;\n var _isUndefined = _.isUndefined;\n var ceil = Math.ceil;\n var floor = Math.floor;\n var max = Math.max;\n\n var BBColProto = Backbone.Collection.prototype;\n\n function finiteInt (val, name) {\n if (!_.isNumber(val) || _.isNaN(val) || !_.isFinite(val) || ~~val !== val) {\n throw new TypeError(\"`\" + name + \"` must be a finite integer\");\n }\n return val;\n }\n\n function queryStringToParams (qs) {\n var kvp, k, v, ls, params = {}, decode = decodeURIComponent;\n var kvps = qs.split(\"&\");\n for (var i = 0, l = kvps.length; i < l; i++) {\n var param = kvps[i];\n kvp = param.split(\"=\"), k = kvp[0], v = kvp[1];\n if (v == null) v = true;\n k = decode(k), v = decode(v), ls = params[k];\n if (_isArray(ls)) ls.push(v);\n else if (ls) params[k] = [ls, v];\n else params[k] = v;\n }\n return params;\n }\n\n // hack to make sure the whatever event handlers for this event is run\n // before func is, and the event handlers that func will trigger.\n function runOnceAtLastHandler (col, event, func) {\n var eventHandlers = col._events[event];\n if (eventHandlers && eventHandlers.length) {\n var lastHandler = eventHandlers[eventHandlers.length - 1];\n var oldCallback = lastHandler.callback;\n lastHandler.callback = function () {\n try {\n oldCallback.apply(this, arguments);\n func();\n }\n catch (e) {\n throw e;\n }\n finally {\n lastHandler.callback = oldCallback;\n }\n };\n }\n else func();\n }\n\n var PARAM_TRIM_RE = /[\\s'\"]/g;\n var URL_TRIM_RE = /[<>\\s'\"]/g;\n\n\n /**\n * State change event. Fired when PageableCollection#state gets updated\n *\n * @event pageable:state:change\n * @type {object} The PageableCollection#state object of this\n * PageableCollection instance\n */\n\n\n /**\n Drop-in replacement for Backbone.Collection. Supports server-side and\n client-side pagination and sorting. Client-side mode also support fully\n multi-directional synchronization of changes between pages.\n\n @class PageableCollection\n @extends Backbone.Collection\n */\n var PageableCollection = Backbone.PageableCollection = Backbone.Collection.extend({\n\n /**\n The container object to store all pagination states.\n\n You can override the default state by extending this class or specifying\n them in an `options` hash to the constructor.\n\n @property {number} firstPage = 1 - The first page index. Set to 0 if\n your server API uses 0-based indices. You should only override this value\n during extension, initialization or reset by the server after\n fetching. This value should be read only at other times.\n\n @property {number} lastPage = null - The last page index. This value\n is __read only__ and it's calculated based on whether `firstPage` is 0 or\n 1, during bootstrapping, fetching and resetting. Please don't change this\n value under any circumstances.\n\n @property {number} currentPage = null - The current page index. You\n should only override this value during extension, initialization or reset\n by the server after fetching. This value should be read only at other\n times. Can be a 0-based or 1-based index, depending on whether\n `firstPage` is 0 or 1. If left as default, it will be set to `firstPage`\n on initialization.\n\n @property {number} pageSize = 25 - How many records to show per\n page. This value is __read only__ after initialization, if you want to\n change the page size after initialization, you must call\n PageableCollection#setPageSize.\n\n @property {number} totalPages = null - How many pages there are. This\n value is __read only__ and it is calculated from `totalRecords`.\n\n @property {number} totalRecords = null - How many records there\n are. This value is __required__ under server mode. This value is optional\n for client mode as the number will be the same as the number of models\n during bootstrapping and during fetching, either supplied by the server\n in the metadata, or calculated from the size of the response.\n\n @property {string} sortKey = null - The model attribute to use for\n sorting.\n\n @property {number} order = -1 - The order to use for sorting. Specify\n -1 for ascending order or 1 for descending order. If 0, no client side\n sorting will be done and the order query parameter will not be sent to\n the server during a fetch.\n */\n state: {\n firstPage: 1,\n lastPage: null,\n currentPage: null,\n pageSize: 25,\n totalPages: null,\n totalRecords: null,\n sortKey: null,\n order: -1\n },\n\n /**\n @property {string} mode = \"server\" The mode of operations for this\n collection. `\"server\"` paginates on the server-side, `\"client\"` paginates\n on the client-side and `\"infinite\"` paginates on the server-side for APIs\n that do not support `totalRecords`.\n */\n mode: \"server\",\n\n /**\n A translation map to convert PageableCollection state attributes\n to the query parameters accepted by your server API.\n\n You can override the default state by extending this class or specifying\n them in `options.queryParams` object hash to the constructor.\n\n @property {string|function():string} currentPage = \"page\"\n @property {string|function():string} pageSize = \"per_page\"\n @property {string|function():string} totalPages = \"total_pages\"\n @property {string|function():string} totalRecords = \"total_entries\"\n @property {string|function():string} sortKey = \"sort_by\"\n @property {string|function():string} order = \"order\"\n @property {Object} directions = {\"-1\": \"asc\", \"1\": \"desc\"} - A map for\n translating a PageableCollection#state.order constant to the ones your\n server API accepts.\n */\n queryParams: {\n currentPage: \"page\",\n pageSize: \"per_page\",\n totalPages: \"total_pages\",\n totalRecords: \"total_entries\",\n sortKey: \"sort_by\",\n order: \"order\",\n directions: {\n \"-1\": \"asc\",\n \"1\": \"desc\"\n }\n },\n\n /**\n Given a list of models or model attributues, bootstraps the full\n collection in client mode or infinite mode, or just the page you want in\n server mode.\n\n If you want to initialize a collection to a different state than the\n default, you can specify them in `options.state`. Any state parameters\n supplied will be merged with the default. If you want to change the\n default mapping from PageableCollection#state keys to your server API's\n query parameter names, you can specifiy an object hash in\n `option.queryParams`. Likewise, any mapping provided will be merged with\n the default. Lastly, all Backbone.Collection constructor options are also\n accepted.\n\n See:\n\n - PageableCollection#state\n - PageableCollection#queryParams\n - [Backbone.Collection#initialize](http://backbonejs.org/#Collection-constructor)\n\n @constructor\n\n @property {Backbone.Collection} fullCollection - __CLIENT MODE ONLY__\n This collection is the internal storage for the bootstrapped or fetched\n models. You can use this if you want to operate on all the pages.\n\n @param {Array.} models\n\n @param {Object} options\n\n @param {function(*, *): number} options.comparator - If specified, this\n comparator is set to the current page under server mode, or the\n PageableCollection#fullCollection otherwise.\n\n @param {boolean} options.full 0 If `false` and either a\n `options.comparator` or `sortKey` is defined, the comparator is attached\n to the current page. Default is `true` under client or infinite mode and\n the comparator will be attached to the PageableCollection#fullCollection.\n\n @param {Object} options.state - The state attributes overriding the defaults.\n\n @param {string} options.state.sortKey - The model attribute to use for\n sorting. If specified instead of `options.comparator`, a comparator will\n be automatically created using this value, and optionally a sorting order\n specified in `options.state.order`. The comparator is then attached to\n the new collection instance.\n\n @param {number} options.state.order - The order to use for sorting. Specify\n -1 for ascending order and 1 for descending order.\n\n @param {Object} options.queryParam\n */\n constructor: function (models, options) {\n\n BBColProto.constructor.apply(this, arguments);\n\n options = options || {};\n\n var mode = this.mode = options.mode || this.mode || PageableProto.mode;\n\n var queryParams = _extend({}, PageableProto.queryParams, this.queryParams,\n options.queryParams || {});\n\n queryParams.directions = _extend({},\n PageableProto.queryParams.directions,\n this.queryParams.directions,\n queryParams.directions);\n\n this.queryParams = queryParams;\n\n var state = this.state = _extend({}, PageableProto.state, this.state,\n options.state);\n\n state.currentPage = state.currentPage == null ?\n state.firstPage :\n state.currentPage;\n\n if (!_isArray(models)) models = models ? [models] : [];\n models = models.slice();\n\n if (mode != \"server\" && state.totalRecords == null && !_isEmpty(models)) {\n // Can't use models.length naively here because Backbone.Collection will\n // dedupe by `idAttribute`\n state.totalRecords = this.length;\n }\n\n this.switchMode(mode, _extend({fetch: false,\n resetState: false,\n models: models}, options));\n\n var comparator = options.comparator;\n\n if (state.sortKey && !comparator) {\n this.setSorting(state.sortKey, state.order, options);\n }\n\n if (mode != \"server\") {\n var fullCollection = this.fullCollection;\n\n if (comparator && options.full) {\n this.comparator = null;\n fullCollection.comparator = comparator;\n }\n\n if (options.full) fullCollection.sort();\n\n // make sure the models in the current page and full collection have the\n // same references\n if (!_isEmpty(models)) {\n this.getPage(state.currentPage);\n }\n }\n\n this._initState = _clone(this.state);\n },\n\n /**\n Makes a Backbone.Collection that contains all the pages.\n\n @private\n @param {Array.} models\n @param {Object} options Options for Backbone.Collection constructor.\n @return {Backbone.Collection}\n */\n _makeFullCollection: function (models, options) {\n\n var properties = [\"url\", \"model\", \"sync\", \"comparator\"];\n var thisProto = this.constructor.prototype;\n var i, length, prop;\n\n var proto = {};\n for (i = 0, length = properties.length; i < length; i++) {\n prop = properties[i];\n if (!_isUndefined(thisProto[prop])) {\n proto[prop] = thisProto[prop];\n }\n }\n\n var fullCollection = new (Backbone.Collection.extend(proto))(models, options);\n\n for (i = 0, length = properties.length; i < length; i++) {\n prop = properties[i];\n if (this[prop] !== thisProto[prop]) {\n fullCollection[prop] = this[prop];\n }\n }\n\n return fullCollection;\n },\n\n /**\n Factory method that returns a Backbone event handler that responses to\n the `add`, `remove`, `reset`, and the `sort` events. The returned event\n handler will synchronize the current page collection and the full\n collection's models.\n\n @private\n\n @fires PageableCollection#pageable:state:change when handling an\n `add`, `remove`, or `reset` event\n\n @param {PageableCollection} pageCol\n @param {Backbone.Collection} fullCol\n\n @return {function(string, Backbone.Model, Backbone.Collection, Object)}\n Collection event handler\n */\n _makeCollectionEventHandler: function (pageCol, fullCol) {\n\n return function collectionEventHandler (event, model, collection, options) {\n\n var handlers = pageCol._handlers;\n _each(_keys(handlers), function (event) {\n var handler = handlers[event];\n pageCol.off(event, handler);\n fullCol.off(event, handler);\n });\n\n var state = _clone(pageCol.state);\n var firstPage = state.firstPage;\n var currentPage = firstPage === 0 ?\n state.currentPage :\n state.currentPage - 1;\n var pageSize = state.pageSize;\n var pageStart = currentPage * pageSize, pageEnd = pageStart + pageSize;\n\n if (event == \"add\") {\n var pageIndex, fullIndex, addAt, colToAdd, options = options || {};\n if (collection == fullCol) {\n fullIndex = fullCol.indexOf(model);\n if (fullIndex >= pageStart && fullIndex < pageEnd) {\n colToAdd = pageCol;\n pageIndex = addAt = fullIndex - pageStart;\n }\n }\n else {\n pageIndex = pageCol.indexOf(model);\n fullIndex = pageStart + pageIndex;\n colToAdd = fullCol;\n var addAt = !_isUndefined(options.at) ?\n options.at + pageStart :\n fullIndex;\n }\n\n if (!options.onRemove) {\n ++state.totalRecords;\n delete options.onRemove;\n }\n\n pageCol.state = pageCol._checkState(state);\n\n if (colToAdd) {\n colToAdd.add(model, _extend({}, options, {at: addAt}));\n var modelToRemove = pageIndex >= pageSize ?\n model :\n !_isUndefined(options.at) && addAt < pageEnd && pageCol.length > pageSize ?\n pageCol.at(pageSize) :\n null;\n if (modelToRemove) {\n runOnceAtLastHandler(collection, event, function () {\n pageCol.remove(modelToRemove, {onAdd: true});\n });\n }\n }\n\n if (!options.silent) pageCol.trigger(\"pageable:state:change\", pageCol.state);\n }\n\n // remove the model from the other collection as well\n if (event == \"remove\") {\n if (!options.onAdd) {\n // decrement totalRecords and update totalPages and lastPage\n if (!--state.totalRecords) {\n state.totalRecords = null;\n state.totalPages = null;\n }\n else {\n var totalPages = state.totalPages = ceil(state.totalRecords / pageSize);\n state.lastPage = firstPage === 0 ? totalPages - 1 : totalPages || firstPage;\n if (state.currentPage > totalPages) state.currentPage = state.lastPage;\n }\n pageCol.state = pageCol._checkState(state);\n\n var nextModel, removedIndex = options.index;\n if (collection == pageCol) {\n if (nextModel = fullCol.at(pageEnd)) {\n runOnceAtLastHandler(pageCol, event, function () {\n pageCol.push(nextModel, {onRemove: true});\n });\n }\n else if (!pageCol.length && state.totalRecords) {\n pageCol.reset(fullCol.models.slice(pageStart - pageSize, pageEnd - pageSize),\n _extend({}, options, {parse: false}));\n }\n fullCol.remove(model);\n }\n else if (removedIndex >= pageStart && removedIndex < pageEnd) {\n if (nextModel = fullCol.at(pageEnd - 1)) {\n runOnceAtLastHandler(pageCol, event, function () {\n pageCol.push(nextModel, {onRemove: true});\n });\n }\n pageCol.remove(model);\n if (!pageCol.length && state.totalRecords) {\n pageCol.reset(fullCol.models.slice(pageStart - pageSize, pageEnd - pageSize),\n _extend({}, options, {parse: false}));\n }\n }\n }\n else delete options.onAdd;\n\n if (!options.silent) pageCol.trigger(\"pageable:state:change\", pageCol.state);\n }\n\n if (event == \"reset\") {\n options = collection;\n collection = model;\n\n // Reset that's not a result of getPage\n if (collection == pageCol && options.from == null &&\n options.to == null) {\n var head = fullCol.models.slice(0, pageStart);\n var tail = fullCol.models.slice(pageStart + pageCol.models.length);\n fullCol.reset(head.concat(pageCol.models).concat(tail), options);\n }\n else if (collection == fullCol) {\n if (!(state.totalRecords = fullCol.models.length)) {\n state.totalRecords = null;\n state.totalPages = null;\n }\n if (pageCol.mode == \"client\") {\n firstPage = state.lastPage = state.currentPage = state.firstPage;\n currentPage = firstPage === 0 ? state.currentPage : state.currentPage - 1;\n pageStart = currentPage * pageSize;\n pageEnd = pageStart + pageSize;\n }\n pageCol.state = pageCol._checkState(state);\n pageCol.reset(fullCol.models.slice(pageStart, pageEnd),\n _extend({}, options, {parse: false}));\n }\n\n if (!options.silent) pageCol.trigger(\"pageable:state:change\", pageCol.state);\n }\n\n if (event == \"sort\") {\n options = collection;\n collection = model;\n if (collection === fullCol) {\n pageCol.reset(fullCol.models.slice(pageStart, pageEnd),\n _extend({}, options, {parse: false}));\n }\n }\n\n _each(_keys(handlers), function (event) {\n var handler = handlers[event];\n _each([pageCol, fullCol], function (col) {\n col.on(event, handler);\n var callbacks = col._events[event] || [];\n callbacks.unshift(callbacks.pop());\n });\n });\n };\n },\n\n /**\n Sanity check this collection's pagination states. Only perform checks\n when all the required pagination state values are defined and not null.\n If `totalPages` is undefined or null, it is set to `totalRecords` /\n `pageSize`. `lastPage` is set according to whether `firstPage` is 0 or 1\n when no error occurs.\n\n @private\n\n @param {Object} state\n\n @throws {TypeError} If `totalRecords`, `pageSize`, `currentPage` or\n `firstPage` is not a finite integer.\n\n @throws {RangeError} If `pageSize`, `currentPage` or `firstPage` is out\n of bounds.\n\n @return {Object} Returns the `state` object if no error was found.\n */\n _checkState: function (state) {\n var mode = this.mode;\n var links = this.links;\n var totalRecords = state.totalRecords;\n var pageSize = state.pageSize;\n var currentPage = state.currentPage;\n var firstPage = state.firstPage;\n var totalPages = state.totalPages;\n\n if (totalRecords != null && pageSize != null && currentPage != null &&\n firstPage != null && (mode == \"infinite\" ? links : true)) {\n\n totalRecords = finiteInt(totalRecords, \"totalRecords\");\n pageSize = finiteInt(pageSize, \"pageSize\");\n currentPage = finiteInt(currentPage, \"currentPage\");\n firstPage = finiteInt(firstPage, \"firstPage\");\n\n if (pageSize < 1) {\n throw new RangeError(\"`pageSize` must be >= 1\");\n }\n\n totalPages = state.totalPages = ceil(totalRecords / pageSize);\n\n if (firstPage < 0 || firstPage > 1) {\n throw new RangeError(\"`firstPage must be 0 or 1`\");\n }\n\n state.lastPage = firstPage === 0 ? max(0, totalPages - 1) : totalPages || firstPage;\n\n if (mode == \"infinite\") {\n if (!links[currentPage]) {\n throw new RangeError(\"No link found for page \" + currentPage);\n }\n }\n else if (currentPage < firstPage ||\n (totalPages > 0 &&\n (firstPage ? currentPage > totalPages : currentPage >= totalPages))) {\n throw new RangeError(\"`currentPage` must be firstPage <= currentPage \" +\n (firstPage ? \"<\" : \"<=\") +\n \" totalPages if \" + firstPage + \"-based. Got \" +\n currentPage + \".\");\n }\n }\n\n return state;\n },\n\n /**\n Change the page size of this collection.\n\n Under most if not all circumstances, you should call this method to\n change the page size of a pageable collection because it will keep the\n pagination state sane. By default, the method will recalculate the\n current page number to one that will retain the current page's models\n when increasing the page size. When decreasing the page size, this method\n will retain the last models to the current page that will fit into the\n smaller page size.\n\n If `options.first` is true, changing the page size will also reset the\n current page back to the first page instead of trying to be smart.\n\n For server mode operations, changing the page size will trigger a\n PageableCollection#fetch and subsequently a `reset` event.\n\n For client mode operations, changing the page size will `reset` the\n current page by recalculating the current page boundary on the client\n side.\n\n If `options.fetch` is true, a fetch can be forced if the collection is in\n client mode.\n\n @param {number} pageSize - The new page size to set to PageableCollection#state.\n @param {Object} options - {@link PageableCollection#fetch} options.\n @param {boolean} options.first = false 0 Reset the current page number to\n the first page if `true`.\n @param {boolean} options.fetch - If `true`, force a fetch in client mode.\n\n @throws {TypeError} If `pageSize` is not a finite integer.\n @throws {RangeError} If `pageSize` is less than 1.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n setPageSize: function (pageSize, options) {\n pageSize = finiteInt(pageSize, \"pageSize\");\n\n options = options || {first: false};\n\n var state = this.state;\n var totalPages = ceil(state.totalRecords / pageSize);\n var currentPage = totalPages ?\n max(state.firstPage, floor(totalPages * state.currentPage / state.totalPages)) :\n state.firstPage;\n\n state = this.state = this._checkState(_extend({}, state, {\n pageSize: pageSize,\n currentPage: options.first ? state.firstPage : currentPage,\n totalPages: totalPages\n }));\n\n return this.getPage(state.currentPage, _omit(options, [\"first\"]));\n },\n\n /**\n Switching between client, server and infinite mode.\n\n If switching from client to server mode, the #fullCollection is emptied\n first and then deleted and a fetch is immediately issued for the current\n page from the server. Pass `false` to `options.fetch` to skip fetching.\n\n If switching to infinite mode, and if `options.models` is given for an\n array of models,PageableCollection#links will be populated with a URL per\n page, using the default URL for this collection.\n\n If switching from server to client mode, all of the pages are immediately\n refetched. If you have too many pages, you can pass `false` to\n `options.fetch` to skip fetching.\n\n If switching to any mode from infinite mode, thePageableCollection#links\n will be deleted.\n\n @fires PageableCollection#pageable:state:change\n\n @param {\"server\"|\"client\"|\"infinite\"} mode - The mode to switch to.\n\n @param {Object} options\n\n @param {boolean} options.fetch = true - If `false`, no fetching is done.\n\n @param {boolean} options.resetState = true - If 'false', the state is not\n reset, but checked for sanity instead.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this if `options.fetch` is `false`.\n */\n switchMode: function (mode, options) {\n\n if (!_contains([\"server\", \"client\", \"infinite\"], mode)) {\n throw new TypeError('`mode` must be one of \"server\", \"client\" or \"infinite\"');\n }\n\n options = options || {fetch: true, resetState: true};\n\n var state = this.state = options.resetState ?\n _clone(this._initState) :\n this._checkState(_extend({}, this.state));\n\n this.mode = mode;\n\n var self = this;\n var fullCollection = this.fullCollection;\n var handlers = this._handlers = this._handlers || {}, handler;\n if (mode != \"server\" && !fullCollection) {\n fullCollection = this._makeFullCollection(options.models || [], options);\n fullCollection.pageableCollection = this;\n this.fullCollection = fullCollection;\n var allHandler = this._makeCollectionEventHandler(this, fullCollection);\n _each([\"add\", \"remove\", \"reset\", \"sort\"], function (event) {\n handlers[event] = handler = _.bind(allHandler, {}, event);\n self.on(event, handler);\n fullCollection.on(event, handler);\n });\n fullCollection.comparator = this._fullComparator;\n }\n else if (mode == \"server\" && fullCollection) {\n _each(_keys(handlers), function (event) {\n handler = handlers[event];\n self.off(event, handler);\n fullCollection.off(event, handler);\n });\n delete this._handlers;\n this._fullComparator = fullCollection.comparator;\n delete this.fullCollection;\n }\n\n if (mode == \"infinite\") {\n var links = this.links = {};\n var firstPage = state.firstPage;\n var totalPages = ceil(state.totalRecords / state.pageSize);\n var lastPage = firstPage === 0 ? max(0, totalPages - 1) : totalPages || firstPage;\n for (var i = state.firstPage; i <= lastPage; i++) {\n links[i] = this.url;\n }\n }\n else if (this.links) delete this.links;\n\n if (!options.silent) this.trigger(\"pageable:state:change\", state);\n\n return options.fetch ?\n this.fetch(_omit(options, \"fetch\", \"resetState\")) :\n this;\n },\n\n /**\n @return {boolean} `true` if this collection can page backward, `false`\n otherwise.\n */\n hasPreviousPage: function () {\n var state = this.state;\n var currentPage = state.currentPage;\n if (this.mode != \"infinite\") return currentPage > state.firstPage;\n return !!this.links[currentPage - 1];\n },\n\n /**\n @return {boolean} `true` if this collection can page forward, `false`\n otherwise.\n */\n hasNextPage: function () {\n var state = this.state;\n var currentPage = this.state.currentPage;\n if (this.mode != \"infinite\") return currentPage < state.lastPage;\n return !!this.links[currentPage + 1];\n },\n\n /**\n Fetch the first page in server mode, or reset the current page of this\n collection to the first page in client or infinite mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getFirstPage: function (options) {\n return this.getPage(\"first\", options);\n },\n\n /**\n Fetch the previous page in server mode, or reset the current page of this\n collection to the previous page in client or infinite mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getPreviousPage: function (options) {\n return this.getPage(\"prev\", options);\n },\n\n /**\n Fetch the next page in server mode, or reset the current page of this\n collection to the next page in client mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getNextPage: function (options) {\n return this.getPage(\"next\", options);\n },\n\n /**\n Fetch the last page in server mode, or reset the current page of this\n collection to the last page in client mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getLastPage: function (options) {\n return this.getPage(\"last\", options);\n },\n\n /**\n Given a page index, set PageableCollection#state.currentPage to that\n index. If this collection is in server mode, fetch the page using the\n updated state, otherwise, reset the current page of this collection to\n the page specified by `index` in client mode. If `options.fetch` is true,\n a fetch can be forced in client mode before resetting the current\n page. Under infinite mode, if the index is less than the current page, a\n reset is done as in client mode. If the index is greater than the current\n page number, a fetch is made with the results **appended**\n toPageableCollection#fullCollection. The current page will then be reset\n after fetching.\n\n @fires PageableCollection#pageable:state:change\n\n @param {number|string} index - The page index to go to, or the page name to\n look up fromPageableCollection#links in infinite mode.\n @param {Object} options - {@linkPageableCollection#fetch} options or\n [reset](http://backbonejs.org/#Collection-reset) options for client mode\n when `options.fetch` is `false`.\n @param {boolean} options.fetch = false - If true, force a\n {@linkPageableCollection#fetch} in client mode.\n\n @throws {TypeError} If `index` is not a finite integer under server or\n client mode, or does not yield a URL fromPageableCollection#links under\n infinite mode.\n\n @throws {RangeError} If `index` is out of bounds.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getPage: function (index, options) {\n\n var mode = this.mode, fullCollection = this.fullCollection;\n\n options = options || {fetch: false};\n\n var state = this.state,\n firstPage = state.firstPage,\n currentPage = state.currentPage,\n lastPage = state.lastPage,\n pageSize = state.pageSize;\n\n var pageNum = index;\n switch (index) {\n case \"first\": pageNum = firstPage; break;\n case \"prev\": pageNum = currentPage - 1; break;\n case \"next\": pageNum = currentPage + 1; break;\n case \"last\": pageNum = lastPage; break;\n default: pageNum = finiteInt(index, \"index\");\n }\n\n this.state = this._checkState(_extend({}, state, {currentPage: pageNum}));\n if (!options.silent) this.trigger(\"pageable:state:change\", this.state);\n\n options.from = currentPage, options.to = pageNum;\n\n var pageStart = (firstPage === 0 ? pageNum : pageNum - 1) * pageSize;\n var pageModels = fullCollection && fullCollection.length ?\n fullCollection.models.slice(pageStart, pageStart + pageSize) :\n [];\n if ((mode == \"client\" || (mode == \"infinite\" && !_isEmpty(pageModels))) &&\n !options.fetch) {\n this.reset(pageModels, _omit(options, \"fetch\"));\n return this;\n }\n\n if (mode == \"infinite\") options.url = this.links[pageNum];\n\n return this.fetch(_omit(options, \"fetch\"));\n },\n\n /**\n Fetch the page for the provided item offset in server mode, or reset the\n current page of this collection to the page for the provided item offset\n in client mode.\n\n @param {number} offset\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getPageByOffset: function (offset, options) {\n if (offset < 0) {\n throw new RangeError(\"`offset must be > 0`\");\n }\n offset = finiteInt(offset, \"offset\");\n\n var page = floor(offset / this.state.pageSize);\n if (this.state.firstPage !== 0) page++;\n if (page > this.state.lastPage) page = this.state.lastPage;\n return this.getPage(page, options);\n },\n\n /**\n Overidden to make `getPage` compatible with Zepto.\n\n @param {string} method\n @param {Backbone.Model|Backbone.Collection} model\n @param {Object} options\n\n @return {XMLHttpRequest}\n */\n sync: function (method, model, options) {\n var self = this;\n if (self.mode == \"infinite\") {\n var success = options.success;\n var currentPage = self.state.currentPage;\n options.success = function (resp, status, xhr) {\n var links = self.links;\n var newLinks = self.parseLinks(resp, _extend({xhr: xhr}, options));\n if (newLinks.first) links[self.state.firstPage] = newLinks.first;\n if (newLinks.prev) links[currentPage - 1] = newLinks.prev;\n if (newLinks.next) links[currentPage + 1] = newLinks.next;\n if (success) success(resp, status, xhr);\n };\n }\n\n return (BBColProto.sync || Backbone.sync).call(self, method, model, options);\n },\n\n /**\n Parse pagination links from the server response. Only valid under\n infinite mode.\n\n Given a response body and a XMLHttpRequest object, extract pagination\n links from them for infinite paging.\n\n This default implementation parses the RFC 5988 `Link` header and extract\n 3 links from it - `first`, `prev`, `next`. Any subclasses overriding this\n method __must__ return an object hash having only the keys\n above. However, simply returning a `next` link or an empty hash if there\n are no more links should be enough for most implementations.\n\n @param {*} resp The deserialized response body.\n @param {Object} options\n @param {XMLHttpRequest} options.xhr - The XMLHttpRequest object for this\n response.\n @return {Object}\n */\n parseLinks: function (resp, options) {\n var links = {};\n var linkHeader = options.xhr.getResponseHeader(\"Link\");\n if (linkHeader) {\n var relations = [\"first\", \"prev\", \"next\"];\n _each(linkHeader.split(\",\"), function (linkValue) {\n var linkParts = linkValue.split(\";\");\n var url = linkParts[0].replace(URL_TRIM_RE, \"\");\n var params = linkParts.slice(1);\n _each(params, function (param) {\n var paramParts = param.split(\"=\");\n var key = paramParts[0].replace(PARAM_TRIM_RE, \"\");\n var value = paramParts[1].replace(PARAM_TRIM_RE, \"\");\n if (key == \"rel\" && _contains(relations, value)) links[value] = url;\n });\n });\n }\n\n return links;\n },\n\n /**\n Parse server response data.\n\n This default implementation assumes the response data is in one of two\n structures:\n\n [\n {}, // Your new pagination state\n [{}, ...] // An array of JSON objects\n ]\n\n Or,\n\n [{}] // An array of JSON objects\n\n The first structure is the preferred form because the pagination states\n may have been updated on the server side, sending them down again allows\n this collection to update its states. If the response has a pagination\n state object, it is checked for errors.\n\n The second structure is the\n [Backbone.Collection#parse](http://backbonejs.org/#Collection-parse)\n default.\n\n **Note:** this method has been further simplified since 1.1.7. While\n existingPageableCollection#parse implementations will continue to work,\n new code is encouraged to overridePageableCollection#parseState\n andPageableCollection#parseRecords instead.\n\n @fires PageableCollection#pageable:state:change\n\n @param {Object} resp The deserialized response data from the server.\n @param {Object} options The options for the ajax request\n\n @return {Array.} An array of model objects\n */\n parse: function (resp, options) {\n var newState = this.parseState(resp, _clone(this.queryParams), _clone(this.state), options);\n if (newState) {\n this.state = this._checkState(_extend({}, this.state, newState));\n if (!(options || {}).silent) this.trigger(\"pageable:state:change\", this.state);\n }\n return this.parseRecords(resp, options);\n },\n\n /**\n Parse server response for server pagination state updates. Not applicable\n under infinite mode.\n\n This default implementation first checks whether the response has any\n state object as documented inPageableCollection#parse. If it exists, a\n state object is returned by mapping the server state keys to this\n pageable collection instance's query parameter keys using `queryParams`.\n\n It is __NOT__ neccessary to return a full state object complete with all\n the mappings defined inPageableCollection#queryParams. Any state object\n resulted is merged with a copy of the current pageable collection state\n and checked for sanity before actually updating. Most of the time, simply\n providing a new `totalRecords` value is enough to trigger a full\n pagination state recalculation.\n\n parseState: function (resp, queryParams, state, options) {\n return {totalRecords: resp.total_entries};\n }\n\n If you want to use header fields use:\n\n parseState: function (resp, queryParams, state, options) {\n return {totalRecords: options.xhr.getResponseHeader(\"X-total\")};\n }\n\n This method __MUST__ return a new state object instead of directly\n modifying the PageableCollection#state object. The behavior of directly\n modifying PageableCollection#state is undefined.\n\n @param {Object} resp - The deserialized response data from the server.\n @param {Object} queryParams - A copy of PageableCollection#queryParams.\n @param {Object} state - A copy of PageableCollection#state.\n @param {Object} options - The options passed through from\n `parse`. (backbone >= 0.9.10 only)\n\n @return {Object} A new (partial) state object.\n */\n parseState: function (resp, queryParams, state, options) {\n if (resp && resp.length === 2 && _isObject(resp[0]) && _isArray(resp[1])) {\n\n var newState = _clone(state);\n var serverState = resp[0];\n\n _each(_pairs(_omit(queryParams, \"directions\")), function (kvp) {\n var k = kvp[0], v = kvp[1];\n var serverVal = serverState[v];\n if (!_isUndefined(serverVal) && !_.isNull(serverVal)) newState[k] = serverState[v];\n });\n\n if (serverState.order) {\n newState.order = _invert(queryParams.directions)[serverState.order] * 1;\n }\n\n return newState;\n }\n },\n\n /**\n Parse server response for an array of model objects.\n\n This default implementation first checks whether the response has any\n state object as documented inPageableCollection#parse. If it exists, the\n array of model objects is assumed to be the second element, otherwise the\n entire response is returned directly.\n\n @param {Object} resp - The deserialized response data from the server.\n @param {Object} options - The options passed through from the\n `parse`. (backbone >= 0.9.10 only)\n\n @return {Array.} An array of model objects\n */\n parseRecords: function (resp, options) {\n if (resp && resp.length === 2 && _isObject(resp[0]) && _isArray(resp[1])) {\n return resp[1];\n }\n\n return resp;\n },\n\n /**\n Fetch a page from the server in server mode, or all the pages in client\n mode. Under infinite mode, the current page is refetched by default and\n then reset.\n\n The query string is constructed by translating the current pagination\n state to your server API query parameter\n usingPageableCollection#queryParams. The current page will reset after\n fetch.\n\n @param {Object} options - Accepts all\n [Backbone.Collection#fetch](http://backbonejs.org/#Collection-fetch)\n options.\n\n @return {XMLHttpRequest}\n */\n fetch: function (options) {\n\n options = options || {};\n\n var state = this._checkState(this.state);\n\n var mode = this.mode;\n\n if (mode == \"infinite\" && !options.url) {\n options.url = this.links[state.currentPage];\n }\n\n var data = options.data || {};\n\n // dedup query params\n var url = options.url || this.url || \"\";\n if (_isFunction(url)) url = url.call(this);\n var qsi = url.indexOf(\"?\");\n if (qsi != -1) {\n _extend(data, queryStringToParams(url.slice(qsi + 1)));\n url = url.slice(0, qsi);\n }\n\n options.url = url;\n options.data = data;\n\n // pick the appropriate query param keys to map according to the mode\n var queryParams = this.mode == \"client\" ?\n _pick(this.queryParams, \"sortKey\") :\n _omit(_pick(this.queryParams, _keys(PageableProto.queryParams)),\n \"order\", \"directions\", \"totalPages\", \"totalRecords\");\n\n // map the query params to the data object used by the underlying ajax lib\n // to construct the query string\n _each(queryParams, function (v, k) {\n v = _isFunction(v) ? v.call(this) : v;\n if (state[k] != null && v != null && _.isUndefined(data[v])) {\n data[v] = state[k];\n }\n }, this);\n\n var sortKey = _isFunction(this.queryParams.sortKey) ?\n this.queryParams.sortKey.call(this) :\n this.queryParams.sortKey;\n\n var order = _isFunction(this.queryParams.order) ?\n this.queryParams.order.call(this) :\n this.queryParams.order;\n\n if (sortKey != null && state.sortKey != null &&\n order != null && state.order != null) {\n if (_isArray(state.order)) {\n data[order] = [];\n for (var i = 0; i < state.order.length; i++) {\n data[order].push(this.queryParams.directions[state.order[i]]);\n }\n }\n else {\n data[order] = this.queryParams.directions[state.order + \"\"];\n }\n }\n\n // map extra query parameters\n var extraKvps = _pairs(_omit(this.queryParams,\n _keys(PageableProto.queryParams)));\n for (var i = 0; i < extraKvps.length; i++) {\n var kvp = extraKvps[i];\n var v = kvp[1];\n v = _isFunction(v) ? v.call(this) : v;\n if (v != null) data[kvp[0]] = v;\n }\n\n if (mode != \"server\") {\n var self = this, fullCol = this.fullCollection;\n var success = options.success;\n options.success = function (col, resp, opts) {\n\n // make sure the caller's intent is obeyed\n opts = opts || {};\n if (_isUndefined(options.silent)) delete opts.silent;\n else opts.silent = options.silent;\n\n var models = col.models;\n if (mode == \"client\") fullCol.reset(models, opts);\n else {\n fullCol.add(models, _extend({at: fullCol.length},\n _extend(opts, {parse: false})));\n self.trigger(\"reset\", self, opts);\n }\n\n if (success) success(col, resp, opts);\n };\n\n // silent the first reset from backbone\n return BBColProto.fetch.call(this, _extend({}, options, {silent: true}));\n }\n\n return BBColProto.fetch.call(this, options);\n },\n\n /**\n Convenient method for making a `comparator` sorted by a model attribute\n identified by `sortKey` and ordered by `order`.\n\n Like a Backbone.Collection, a PageableCollection will maintain the\n __current page__ in sorted order on the client side if a `comparator` is\n attached to it. If the collection is in client mode, you can attach a\n comparator toPageableCollection#fullCollection to have all the pages\n reflect the global sorting order by specifying an option `full` to\n `true`. You __must__ call `sort` manually\n orPageableCollection#fullCollection.sort after calling this method to\n force a resort.\n\n While you can use this method to sort the current page in server mode,\n the sorting order may not reflect the global sorting order due to the\n additions or removals of the records on the server since the last\n fetch. If you want the most updated page in a global sorting order, it is\n recommended that you set PageableCollection#state.sortKey and optionally\n PageableCollection#state.order, and then callPageableCollection#fetch.\n\n @protected\n\n @param {string} sortKey = this.state.sortKey - See `state.sortKey`.\n @param {number} order = this.state.order - See `state.order`.\n @param {(function(Backbone.Model, string): Object) | string} sortValue -\n See PageableCollection#setSorting.\n\n @return {function(Backbone.Model, string): number}\n\n See [Backbone.Collection.comparator](http://backbonejs.org/#Collection-comparator).\n */\n _makeComparator: function (sortKey, order, sortValue) {\n var state = this.state;\n\n sortKey = sortKey || state.sortKey;\n order = order || state.order;\n\n if (!sortKey || !order) return;\n\n if (!sortValue) {\n sortValue = function (model, attr) {\n return model.get(attr);\n };\n }\n\n return function (left, right) {\n var l = sortValue(left, sortKey), r = sortValue(right, sortKey), t;\n if (order === 1) t = l, l = r, r = t;\n if (l === r) return 0;\n else if (l < r) return -1;\n return 1;\n };\n },\n\n /**\n Adjusts the sorting for this pageable collection.\n\n Given a `sortKey` and an `order`, sets `state.sortKey` and\n `state.order`. A comparator can be applied on the client side to sort in\n the order defined if `options.side` is `\"client\"`. By default the\n comparator is applied to thePageableCollection#fullCollection. Set\n `options.full` to `false` to apply a comparator to the current page under\n any mode. Setting `sortKey` to `null` removes the comparator from both\n the current page and the full collection.\n\n If a `sortValue` function is given, it will be passed the `(model,\n sortKey)` arguments and is used to extract a value from the model during\n comparison sorts. If `sortValue` is not given, `model.get(sortKey)` is\n used for sorting.\n\n @chainable\n\n @param {string} sortKey - See `state.sortKey`.\n @param {number} order=this.state.order - See `state.order`.\n @param {Object} options\n @param {string} options.side - By default, `\"client\"` if `mode` is\n `\"client\"`, `\"server\"` otherwise.\n @param {boolean} options.full = true\n @param {(function(Backbone.Model, string): Object) | string} options.sortValue\n\n @return {PageableCollection} this\n */\n setSorting: function (sortKey, order, options) {\n\n var state = this.state;\n\n state.sortKey = sortKey;\n state.order = order = order || state.order;\n\n var fullCollection = this.fullCollection;\n\n var delComp = false, delFullComp = false;\n\n if (!sortKey) delComp = delFullComp = true;\n\n var mode = this.mode;\n options = _extend({side: mode == \"client\" ? mode : \"server\", full: true},\n options);\n\n var comparator = this._makeComparator(sortKey, order, options.sortValue);\n\n var full = options.full, side = options.side;\n\n if (side == \"client\") {\n if (full) {\n if (fullCollection) fullCollection.comparator = comparator;\n delComp = true;\n }\n else {\n this.comparator = comparator;\n delFullComp = true;\n }\n }\n else if (side == \"server\" && !full) {\n this.comparator = comparator;\n }\n\n if (delComp) this.comparator = null;\n if (delFullComp && fullCollection) fullCollection.comparator = null;\n\n return this;\n }\n\n });\n\n var PageableProto = PageableCollection.prototype;\n\n return PageableCollection;\n\n}));\n\n\n/***/ }),\n/* 780 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n backgrid-filter\n http://github.com/wyuenho/backgrid\n\n Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors\n Licensed under the MIT @license.\n*/\n(function (root, factory) {\n\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(11), __webpack_require__(20), __webpack_require__(554)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports == \"object\") {\n // CommonJS\n var lunr;\n try {\n lunr = require(\"lunr\");\n } catch (e) {}\n\n module.exports = factory(\n require(\"underscore\"),\n require(\"backbone\"),\n require(\"backgrid\"),\n lunr\n );\n } else {\n // Browser\n factory(root._, root.Backbone, root.Backgrid, root.lunr);\n }\n\n}(this, function (_, Backbone, Backgrid, lunr) {\n\n \"use strict\";\n\n var exports = {};\n\n /**\n ServerSideFilter is a search form widget that submits a query to the server\n for filtering the current collection.\n\n @class Backgrid.Extension.ServerSideFilter\n */\n var ServerSideFilter = exports.ServerSideFilter = Backgrid.Extension.ServerSideFilter = Backbone.View.extend({\n\n /** @property */\n tagName: \"form\",\n\n /** @property */\n className: \"backgrid-filter form-search\",\n\n /** @property {function(Object, ?Object=): string} template */\n template: function (data) {\n return ' ×';\n },\n\n /** @property */\n events: {\n \"keyup input[type=search]\": \"showClearButtonMaybe\",\n \"click a[data-backgrid-action=clear]\": \"clear\",\n \"submit\": \"search\"\n },\n\n /** @property {string} [name='q'] Query key */\n name: \"q\",\n\n /** @property {string} [value] The search box value. */\n value: null,\n\n /**\n @property {string} [placeholder] The HTML5 placeholder to appear beneath\n the search box.\n */\n placeholder: null,\n\n /**\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {string} [options.name]\n @param {string} [options.value]\n @param {string} [options.placeholder]\n @param {function(Object): string} [options.template]\n */\n initialize: function (options) {\n ServerSideFilter.__super__.initialize.apply(this, arguments);\n this.name = options.name || this.name;\n this.value = options.value || this.value;\n this.placeholder = options.placeholder || this.placeholder;\n this.template = options.template || this.template;\n\n // Persist the query on pagination\n var collection = this.collection, self = this;\n if (Backbone.PageableCollection &&\n collection instanceof Backbone.PageableCollection &&\n collection.mode == \"server\") {\n collection.queryParams[this.name] = function () {\n return self.query() || null;\n };\n }\n },\n\n /**\n Event handler. Clear the search box and reset the internal search value.\n */\n clearSearchBox: function() {\n this.value = null;\n this.searchBox().val(null);\n this.showClearButtonMaybe();\n },\n\n /**\n Event handler. Show the clear button when the search box has text, hide\n it otherwise.\n */\n showClearButtonMaybe: function () {\n var $clearButton = this.clearButton();\n var searchTerms = this.query();\n if (searchTerms) $clearButton.show();\n else $clearButton.hide();\n },\n\n /**\n Returns the search input box.\n */\n searchBox: function () {\n return this.$el.find(\"input[type=search]\");\n },\n\n /**\n Returns the clear button.\n */\n clearButton: function () {\n return this.$el.find(\"a[data-backgrid-action=clear]\");\n },\n\n /**\n Returns the current search query.\n */\n query: function() {\n this.value = this.searchBox().val();\n return this.value;\n },\n\n /**\n Upon search form submission, this event handler constructs a query\n parameter object and pass it to Collection#fetch for server-side\n filtering.\n\n If the collection is a PageableCollection, searching will go back to the\n first page.\n */\n search: function (e) {\n if (e) e.preventDefault();\n\n var data = {};\n var query = this.query();\n if (query) data[this.name] = query;\n\n var collection = this.collection;\n\n // go back to the first page on search\n if (Backbone.PageableCollection &&\n collection instanceof Backbone.PageableCollection) {\n collection.getFirstPage({data: data, reset: true, fetch: true});\n }\n else collection.fetch({data: data, reset: true});\n },\n\n /**\n Event handler for the clear button. Clears the search box and refetch the\n collection.\n\n If the collection is a PageableCollection, clearing will go back to the\n first page.\n */\n clear: function (e) {\n if (e) e.preventDefault();\n this.clearSearchBox();\n\n var collection = this.collection;\n\n // go back to the first page on clear\n if (Backbone.PageableCollection &&\n collection instanceof Backbone.PageableCollection) {\n collection.getFirstPage({reset: true, fetch: true});\n }\n else collection.fetch({reset: true});\n },\n\n /**\n Renders a search form with a text box, optionally with a placeholder and\n a preset value if supplied during initialization.\n */\n render: function () {\n this.$el.empty().append(this.template({\n name: this.name,\n placeholder: this.placeholder,\n value: this.value\n }));\n this.showClearButtonMaybe();\n this.delegateEvents();\n return this;\n }\n\n });\n\n /**\n ClientSideFilter is a search form widget that searches a collection for\n model matches against a query on the client side. The exact matching\n algorithm can be overriden by subclasses.\n\n @class Backgrid.Extension.ClientSideFilter\n @extends Backgrid.Extension.ServerSideFilter\n */\n var ClientSideFilter = exports.ClientSideFilter = Backgrid.Extension.ClientSideFilter = ServerSideFilter.extend({\n\n /** @property */\n events: _.extend({}, ServerSideFilter.prototype.events, {\n \"click a[data-backgrid-action=clear]\": function (e) {\n e.preventDefault();\n this.clear();\n },\n \"keydown input[type=search]\": \"search\",\n \"submit\": function (e) {\n e.preventDefault();\n this.search();\n }\n }),\n\n /**\n @property {?Array.} [fields] A list of model field names to\n search for matches. If null, all of the fields will be searched.\n */\n fields: null,\n\n /**\n @property [wait=149] The time in milliseconds to wait since the last\n change to the search box's value before searching. This value can be\n adjusted depending on how often the search box is used and how large the\n search index is.\n */\n wait: 149,\n\n /**\n Debounces the #search and #clear methods and makes a copy of the given\n collection for searching.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {string} [options.placeholder]\n @param {string} [options.fields]\n @param {string} [options.wait=149]\n */\n initialize: function (options) {\n ClientSideFilter.__super__.initialize.apply(this, arguments);\n\n this.fields = options.fields || this.fields;\n this.wait = options.wait || this.wait;\n\n this._debounceMethods([\"search\", \"clear\"]);\n\n var collection = this.collection = this.collection.fullCollection || this.collection;\n var shadowCollection = this.shadowCollection = collection.clone();\n\n this.listenTo(collection, \"add\", function (model, collection, options) {\n shadowCollection.add(model, options);\n });\n this.listenTo(collection, \"remove\", function (model, collection, options) {\n shadowCollection.remove(model, options);\n });\n this.listenTo(collection, \"sort\", function (col) {\n if (!this.query()) shadowCollection.reset(col.models);\n });\n this.listenTo(collection, \"reset\", function (col, options) {\n options = _.extend({reindex: true}, options || {});\n if (options.reindex && options.from == null && options.to == null) {\n shadowCollection.reset(col.models);\n }\n });\n },\n\n _debounceMethods: function (methodNames) {\n if (_.isString(methodNames)) methodNames = [methodNames];\n\n this.undelegateEvents();\n\n for (var i = 0, l = methodNames.length; i < l; i++) {\n var methodName = methodNames[i];\n var method = this[methodName];\n this[methodName] = _.debounce(method, this.wait);\n }\n\n this.delegateEvents();\n },\n\n /**\n Constructs a Javascript regular expression object for #makeMatcher.\n\n This default implementation takes a query string and returns a Javascript\n RegExp object that matches any of the words contained in the query string\n case-insensitively. Override this method to return a different regular\n expression matcher if this behavior is not desired.\n\n @param {string} query The search query in the search box.\n @return {RegExp} A RegExp object to match against model #fields.\n */\n makeRegExp: function (query) {\n return new RegExp(query.trim().split(/\\s+/).join(\"|\"), \"i\");\n },\n\n /**\n This default implementation takes a query string and returns a matcher\n function that looks for matches in the model's #fields or all of its\n fields if #fields is null, for any of the words in the query\n case-insensitively using the regular expression object returned from\n #makeRegExp.\n\n Most of time, you'd want to override the regular expression used for\n matching. If so, please refer to the #makeRegExp documentation,\n otherwise, you can override this method to return a custom matching\n function.\n\n Subclasses overriding this method must take care to conform to the\n signature of the matcher function. The matcher function is a function\n that takes a model as paramter and returns true if the model matches a\n search, or false otherwise.\n\n In addition, when the matcher function is called, its context will be\n bound to this ClientSideFilter object so it has access to the filter's\n attributes and methods.\n\n @param {string} query The search query in the search box.\n @return {function(Backbone.Model):boolean} A matching function.\n */\n makeMatcher: function (query) {\n var regexp = this.makeRegExp(query);\n return function (model) {\n var keys = this.fields || model.keys();\n for (var i = 0, l = keys.length; i < l; i++) {\n if (regexp.test(model.get(keys[i]) + \"\")) return true;\n }\n return false;\n };\n },\n\n /**\n Takes the query from the search box, constructs a matcher with it and\n loops through collection looking for matches. Reset the given collection\n when all the matches have been found.\n\n If the collection is a PageableCollection, searching will go back to the\n first page.\n */\n search: function () {\n var matcher = _.bind(this.makeMatcher(this.query()), this);\n var col = this.collection;\n if (col.pageableCollection) col.pageableCollection.getFirstPage({silent: true});\n col.reset(this.shadowCollection.filter(matcher), {reindex: false});\n },\n\n /**\n Clears the search box and reset the collection to its original.\n\n If the collection is a PageableCollection, clearing will go back to the\n first page.\n */\n clear: function () {\n this.clearSearchBox();\n var col = this.collection;\n if (col.pageableCollection) col.pageableCollection.getFirstPage({silent: true});\n col.reset(this.shadowCollection.models, {reindex: false});\n }\n\n });\n\n /**\n LunrFilter is a ClientSideFilter that uses [lunrjs](http://lunrjs.com/) to\n index the text fields of each model for a collection, and performs\n full-text searching.\n\n @class Backgrid.Extension.LunrFilter\n @extends Backgrid.Extension.ClientSideFilter\n */\n var LunrFilter = exports.LunrFilter = Backgrid.Extension.LunrFilter = ClientSideFilter.extend({\n\n /**\n @property {string} [ref=\"id\"]`lunrjs` document reference attribute name.\n */\n ref: \"id\",\n\n /**\n @property {Object} fields A hash of `lunrjs` index field names and boost\n value. Unlike ClientSideFilter#fields, LunrFilter#fields is _required_ to\n initialize the index.\n */\n fields: null,\n\n /**\n Indexes the underlying collection on construction. The index will refresh\n when the underlying collection is reset. If any model is added, removed\n or if any indexed fields of any models has changed, the index will be\n updated.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {string} [options.placeholder]\n @param {string} [options.ref] `lunrjs` document reference attribute name.\n @param {Object} [options.fields] A hash of `lunrjs` index field names and\n boost value.\n @param {number} [options.wait]\n */\n initialize: function (options) {\n LunrFilter.__super__.initialize.apply(this, arguments);\n\n this.ref = options.ref || this.ref;\n\n var collection = this.collection = this.collection.fullCollection || this.collection;\n this.listenTo(collection, \"add\", this.addToIndex);\n this.listenTo(collection, \"remove\", this.removeFromIndex);\n this.listenTo(collection, \"reset\", this.resetIndex);\n this.listenTo(collection, \"change\", this.updateIndex);\n\n this.resetIndex(collection);\n },\n\n /**\n Reindex the collection. If `options.reindex` is `false`, this method is a\n no-op.\n\n @param {Backbone.Collection} collection\n @param {Object} [options]\n @param {boolean} [options.reindex=true]\n */\n resetIndex: function (collection, options) {\n options = _.extend({reindex: true}, options || {});\n\n if (options.reindex) {\n var self = this;\n this.index = lunr(function () {\n _.each(self.fields, function (boost, fieldName) {\n this.field(fieldName, boost);\n this.ref(self.ref);\n }, this);\n });\n\n collection.each(function (model) {\n this.addToIndex(model);\n }, this);\n }\n },\n\n /**\n Adds the given model to the index.\n\n @param {Backbone.Model} model\n */\n addToIndex: function (model) {\n var index = this.index;\n var doc = model.toJSON();\n if (index.documentStore.has(doc[this.ref])) index.update(doc);\n else index.add(doc);\n },\n\n /**\n Removes the given model from the index.\n\n @param {Backbone.Model} model\n */\n removeFromIndex: function (model) {\n var index = this.index;\n var doc = model.toJSON();\n if (index.documentStore.has(doc[this.ref])) index.remove(doc);\n },\n\n /**\n Updates the index for the given model.\n\n @param {Backbone.Model} model\n */\n updateIndex: function (model) {\n var changed = model.changedAttributes();\n if (changed && !_.isEmpty(_.intersection(_.keys(this.fields),\n _.keys(changed)))) {\n this.index.update(model.toJSON());\n }\n },\n\n /**\n Takes the query from the search box and performs a full-text search on\n the client-side. The search result is returned by resetting the\n underlying collection to the models after interrogating the index for the\n query answer.\n\n If the collection is a PageableCollection, searching will go back to the\n first page.\n */\n search: function () {\n var col = this.collection;\n if (!this.query()) {\n col.reset(this.shadowCollection.models, {reindex: false});\n return;\n }\n\n var searchResults = this.index.search(this.query());\n var models = [];\n for (var i = 0; i < searchResults.length; i++) {\n var result = searchResults[i];\n models.push(this.shadowCollection.get(result.ref));\n }\n\n if (col.pageableCollection) col.pageableCollection.getFirstPage({silent: true});\n col.reset(models, {reindex: false});\n }\n\n });\n\n return exports;\n\n}));\n\n\n/***/ }),\n/* 781 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t Backgrid = __webpack_require__(552),\n\t TeamRequestActionCellTpl = __webpack_require__(782);\n\n\treturn Backgrid.Cell.extend({\n\t\ttemplate: TeamRequestActionCellTpl,\n\n\t\tevents: {\n\t\t\t'click .approveRequestButton': 'handleApproveRequestClick',\n\t\t\t'click .rejectRequestLink': 'handleRejectRequestClick'\n\t\t},\n\n\t\thandleApproveRequestClick: function handleApproveRequestClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.updateTeamRequest('accept');\n\t\t},\n\n\t\thandleRejectRequestClick: function handleRejectRequestClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.updateTeamRequest('reject');\n\t\t},\n\n\t\thandleUpdateRequestSync: function handleUpdateRequestSync(model) {\n\t\t\tthis.model.set(model.attributes); // this.model !== model, see how Backbone.Siren.Acton.execute creates a temporary clone\n\t\t\tthis.model.off('sync:updateRequest'); // Unbind our event listener (See note in .initialize() method)\n\t\t},\n\n\t\thandleUpdateRequestError: function handleUpdateRequestError() {\n\t\t\tthis.fadeRow('in');\n\t\t\twwwApp.tipMsg('There was an error updating the team request. Please try again.');\n\t\t}\n\n\t\t/**\n *\n * @param {Backbone.Siren.Model} model\n * @param {String} status\n */\n\t\t, handleRequestStatusChange: function handleRequestStatusChange(model, status) {\n\t\t\tif (!(status == 'rejected' || status == 'accepted')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (status == 'accepted') {\n\t\t\t\twwwApp.tipMsg('Hooray! You\\'ve got a new team member!', { autoClose: true });\n\t\t\t\twwwApp.trigger('addTeamMember', model.get('teamMember'));\n\t\t\t} else {\n\t\t\t\twwwApp.tipMsg('The request has been denied', { autoClose: true });\n\t\t\t}\n\n\t\t\t// We only show \"pending\" requests\n\t\t\tmodel.collection.remove(model);\n\t\t}\n\n\t\t/**\n *\n * @param {String} status\n */\n\t\t, updateTeamRequest: function updateTeamRequest(status) {\n\t\t\tthis.fadeRow('out');\n\t\t\tthis.model.getActionByName('updateRequest').execute({ attributes: { status: status } });\n\t\t}\n\n\t\t/**\n *\n * @param {String} direction - can be \"in\" or \"out\"\n */\n\t\t, fadeRow: function fadeRow(direction) {\n\t\t\tthis.$el.parent('tr').stop().animate({ opacity: direction == 'in' ? 1 : 0.4 });\n\t\t},\n\n\t\trender: function render() {\n\t\t\tthis.$el.html(this.template.render(this.model.toJSON()));\n\t\t\tthis.delegateEvents();\n\t\t\treturn this;\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\t_.bindAll(this, 'handleUpdateRequestSync', 'handleUpdateRequestError');\n\n\t\t\tBackgrid.Cell.prototype.initialize.apply(this, $.makeArray(arguments));\n\n\t\t\t// Note: We are using `this.model.on()` instead of `this.listenTo(this.model)`\n\t\t\t// Once the model is removed from the collection, the grid will re-render and the row\n\t\t\t// for this model will be deleted. This means any events bound to this view will be lost.\n\t\t\t// To avoid this problem we bind the events to the model instead and just make sure to clean up\n\t\t\t// after ourselves (by calling .off() on the \"sync\" request) to avoid zombies. We don't want to unbind\n\t\t\t// the error handler, however.\n\t\t\tthis.model.on('sync:updateRequest', this.handleUpdateRequestSync);\n\t\t\tthis.model.on('error:updateRequest', this.handleUpdateRequestError);\n\n\t\t\tthis.listenTo(this.model, 'change:status', this.handleRequestStatusChange);\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 782 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"Approve request\");t.b(\"\\n\" + i);t.b(\"Reject request\");return t.fl(); },partials: {}, subs: { }}, \"Approve request\\nReject request\", H);return T; }();\n\n/***/ }),\n/* 783 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar moment = __webpack_require__(546),\n\t LenderCardView = __webpack_require__(577),\n\t TeamRequestCardViewTpl = __webpack_require__(784);\n\n\treturn LenderCardView.extend({\n\t\ttemplate: TeamRequestCardViewTpl,\n\n\t\tclassName: function className() {\n\t\t\treturn 'teamRequestCardView ' + LenderCardView.prototype.className;\n\t\t}\n\n\t\t// Modify some model properties\n\t\t, serializeData: function serializeData() {\n\t\t\tvar loanBecause,\n\t\t\t data = this.model.toJSON();\n\n\t\t\t// Convention is to use double underscore for calculated properties\n\t\t\tif (data.lender) {\n\t\t\t\tdata.__isPublic = true;\n\t\t\t\tdata.__memberSince = moment(data.lender.memberSince).format('MMM D, YYYY');\n\t\t\t\tdata.__lenderName = data.lender.name;\n\t\t\t\tdata.__url = wwwApp.url('lender', 'view', { publicId: data.lender.publicId });\n\n\t\t\t\tloanBecause = data.lender.profile.loanBecause;\n\t\t\t\tdata.__loanBecause = loanBecause.length > 95 ? loanBecause.trim().substr(0, 95) + '…' : loanBecause;\n\t\t\t} else {\n\t\t\t\tdata.__isPublic = false;\n\t\t\t\tdata.__lenderName = 'Anonymous';\n\t\t\t}\n\n\t\t\tdata.__imgUrl = data.__isPublic && data.lender.image && data.lender.image.id ? '/img/s100/' + data.lender.image.id + '.jpg' : '/img/entity/lender_s100.png';\n\n\t\t\treturn data;\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\toptions = options || {};\n\n\t\t\tvar self = this;\n\n\t\t\tif (!this.model && options.teamId && options.lenderId) {\n\t\t\t\twwwApp.siren.resolve('team/' + options.teamId + '/member/' + options.lenderId).done(function (teamMemberModel) {\n\t\t\t\t\tself.model = teamMemberModel;\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 784 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.whereabouts\",c,p,1),c,p,0,547,620,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(t.v(t.d(\"lender.profile.whereabouts\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"__memberSince\",c,p,1),c,p,0,672,749,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        (Joined Kiva: \");t.b(t.v(t.f(\"__memberSince\",c,p,0)));t.b(\")
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.loanBecause\",c,p,1),c,p,0,801,945,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        I loan because: \");t.b(t.v(t.d(\"lender.profile.loanBecause\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"\\n\\n
        \\n\\t\\n\\n\\t{{#lender.profile.whereabouts}}\\n\\t\\t
        {{lender.profile.whereabouts}}
        \\n\\t{{/lender.profile.whereabouts}}\\n\\n\\t{{#__memberSince}}\\n\\t\\t
        (Joined Kiva: {{__memberSince}})
        \\n\\t{{/__memberSince}}\\n\\n\\t{{#lender.profile.loanBecause}}\\n\\t\\t
        I loan because: {{lender.profile.loanBecause}}
        \\n\\t{{/lender.profile.loanBecause}}\\n
        \", H);return T; }();\n\n/***/ }),\n/* 785 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        Requests to Join (\");t.b(t.v(t.f(\"__requestsCount\",c,p,0)));t.b(\")

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.f(\"__showMoreRequests\",c,p,1),c,p,0,187,341,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\tShow more requests\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"

        Requests to Join ({{__requestsCount}})

        \\n
        \\n\\n{{#__showMoreRequests}}\\n\\t
        \\n\\t\\tShow more requests\\n\\t
        \\n{{/__showMoreRequests}}\", H);return T; }();\n\n/***/ }),\n/* 786 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, $) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\t// expose jquery to window\n\n\tglobal.$ = global.jQuery = __webpack_require__(0);\n\n\tvar $ = __webpack_require__(0),\n\t _ = __webpack_require__(11),\n\t Backbone = __webpack_require__(20),\n\t Marionette = __webpack_require__(209),\n\t Backgrid = __webpack_require__(552),\n\t TeamMembersBackgrid = __webpack_require__(787),\n\t TeamMembersViewTpl = __webpack_require__(792);\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: TeamMembersViewTpl,\n\n\t\tui: {\n\t\t\t'$teamMembersContainer': '.teamMembersContainer',\n\t\t\t'$sectionHeader': '.sectionHeader'\n\t\t},\n\n\t\tbindings: {\n\t\t\t'.numTeamMembers': {\n\t\t\t\tobserve: ['memberCount', 'searchResultsCount'],\n\t\t\t\tonGet: function onGet(values) {\n\t\t\t\t\treturn values[1] === null ? values[0] : values[1];\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .moreTeamMembersButton': 'handleShowMoreLinkClick'\n\t\t},\n\n\t\tclassName: function className() {\n\t\t\tvar baseClassName = 'TeamMembersBackgridView',\n\t\t\t givenName = this.options.name;\n\n\t\t\treturn givenName ? givenName + 'View ' + baseClassName : baseClassName;\n\t\t},\n\n\t\tisLoadingButton: function isLoadingButton($button) {\n\t\t\treturn $button.data('kvLoadingButton');\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery} $button\n * @param {Boolean} [enableLoading]\n * @returns {*}\n */\n\t\t, loadingButton: function loadingButton($button, enableLoading) {\n\t\t\tif (enableLoading === false) {\n\t\t\t\treturn $button.removeClass('loadingButton').removeData('kvLoadingButton');\n\t\t\t}\n\n\t\t\t// Default is to \"enable\"\n\t\t\treturn $button.addClass('loadingButton').data('kvLoadingButton', true);\n\t\t},\n\n\t\thandleShowMoreLinkClick: function handleShowMoreLinkClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this,\n\t\t\t $button = $(event.target);\n\n\t\t\tif (this.isLoadingButton($button)) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tthis.loadingButton($button);\n\t\t\t}\n\n\t\t\twwwApp.siren.resolve(this.teamMembersCollection.link('next')).always(function () {\n\t\t\t\tself.loadingButton($button, false);\n\t\t\t}).done(function (updatedTeamMembersCollection) {\n\t\t\t\tself.resetTeamMembersCollection(updatedTeamMembersCollection);\n\t\t\t\tself.renderShowMore();\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('There was an error fetching more loans, please try again.', 'warning');\n\t\t\t});\n\t\t},\n\n\t\tonRender: function onRender() {\n\t\t\tthis.ui.$teamMembersContainer.append(this.teamMembersBackgrid.render().el);\n\n\t\t\tif (this.options.isSearchEnabled) {\n\t\t\t\tthis.ui.$sectionHeader.addClass('searchHeader').append(this.teamMembersFilter.render().el);\n\t\t\t}\n\n\t\t\tthis.renderShowMore();\n\t\t\tthis.stickit();\n\t\t},\n\n\t\trenderShowMore: function renderShowMore() {\n\t\t\tif (this.teamMembersCollection.link('next')) {\n\t\t\t\tthis.$('.moreTeamMembersWrap').show();\n\t\t\t} else {\n\t\t\t\tthis.$('.moreTeamMembersWrap').hide();\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @todo We need a better implementation of Backbone.Siren.Collection.prototype.reset() that takes _data into account\n *\n * @param collection\n */\n\t\t, resetTeamMembersCollection: function resetTeamMembersCollection(collection) {\n\t\t\tthis.teamMembersCollection._data = collection._data;\n\t\t\tthis.teamMembersCollection.reset(collection.models);\n\t\t},\n\n\t\tinitializeBackgrid: function initializeBackgrid() {\n\t\t\tvar baseParams,\n\t\t\t self = this,\n\t\t\t options = this.options,\n\t\t\t className = options.name ? options.name + 'Backgrid' : '';\n\n\t\t\tthis.teamMembersBackgrid = new TeamMembersBackgrid({\n\t\t\t\tcollection: this.teamMembersCollection,\n\t\t\t\tclassName: className + ' teamMembersBackgrid actionListBackgrid ' + Backgrid.Grid.prototype.className,\n\t\t\t\temptyText: 'No results'\n\t\t\t});\n\n\t\t\tif (options.isSearchEnabled) {\n\t\t\t\tif (options.baseParams) {\n\t\t\t\t\tbaseParams = options.baseParams;\n\t\t\t\t}\n\n\t\t\t\tthis.teamMembersFilter = new Backgrid.Extension.ServerSideFilter({\n\t\t\t\t\tcollection: this.teamMembersCollection,\n\t\t\t\t\tname: 'q',\n\t\t\t\t\tplaceholder: 'Search by name',\n\t\t\t\t\tbaseParams: baseParams\n\t\t\t\t});\n\n\t\t\t\tthis.listenTo(this.teamMembersCollection, 'request', function (obj) {\n\t\t\t\t\t// \"request\" events can bubble from the models, only animate on events that were fired on the collection\n\t\t\t\t\tif (obj instanceof Backbone.Collection) {\n\t\t\t\t\t\tthis.teamMembersBackgrid.$el.animate({ opacity: 0.4 });\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// We assume that sync is only getting called when doing a search / cancelling a search\n\t\t\t\tthis.listenTo(this.teamMembersCollection, 'sync', function (obj, resp, options) {\n\t\t\t\t\tif (obj instanceof Backbone.Collection) {\n\t\t\t\t\t\tthis.teamMembersBackgrid.$el.animate({ opacity: 1 });\n\n\t\t\t\t\t\t// We know we're displaying search results if \"q\" is set.\n\t\t\t\t\t\tthis.model.set('searchResultsCount', options.data && options.data.q ? obj.size() : null);\n\t\t\t\t\t\tthis.renderShowMore();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.listenTo(this.teamMembersCollection, 'destroy', function () {\n\t\t\t\tthis.decMemmberCount();\n\t\t\t});\n\n\t\t\tthis.listenTo(this.teamMembersCollection, 'change', function (model) {\n\t\t\t\t// Remove any models that don't have the memberFilter properties\n\t\t\t\t_.each(this.options.memberFilter, function (val, name) {\n\t\t\t\t\tif (model.hasChanged(name) && model.get(name) != val) {\n\t\t\t\t\t\tself.removeTeamMember(model);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\tincMemberCount: function incMemberCount() {\n\t\t\treturn this.model.set('memberCount', this.model.get('memberCount') + 1);\n\t\t},\n\n\t\tdecMemmberCount: function decMemmberCount() {\n\t\t\treturn this.model.set('memberCount', Math.max(this.model.get('memberCount') - 1, 0));\n\t\t},\n\n\t\taddTeamMember: function addTeamMember(teamMemberModel) {\n\t\t\tthis.teamMembersCollection.add(teamMemberModel);\n\t\t\tthis.incMemberCount();\n\t\t},\n\n\t\tremoveTeamMember: function removeTeamMember(teamMemberModel) {\n\t\t\tthis.teamMembersCollection.remove(teamMemberModel);\n\t\t\tthis.decMemmberCount();\n\t\t}\n\n\t\t/**\n *\n * @param options\n * @param [options.title] display name\n * @param [options.name] code name (no spaces or funky characters)\n * @param [options.searchIsEnabled]\n * @param [options.baseParams]\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tthis.options = options || {};\n\n\t\t\tthis.model = new Backbone.Model({\n\t\t\t\ttitle: options.title,\n\t\t\t\tmemberCount: options.teamMembersCollection.meta('count'),\n\t\t\t\tsearchResultsCount: null\n\t\t\t});\n\n\t\t\t// We create a clone of the teamMembersCollection\n\t\t\tthis.teamMembersCollection = new Backbone.Siren.Collection();\n\t\t\tthis.resetTeamMembersCollection(options.teamMembersCollection);\n\n\t\t\tthis.initializeBackgrid();\n\t\t\tthis.render();\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(12), __webpack_require__(0)))\n\n/***/ }),\n/* 787 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar Backgrid = __webpack_require__(552),\n\t moment = __webpack_require__(546),\n\t TeamMemberActionsCell = __webpack_require__(788),\n\t TeamMemberCardView = __webpack_require__(790);\n\n\treturn Backgrid.Grid.extend({\n\t\tcolumns: [{\n\t\t\tcell: Backgrid.Cell.extend({\n\t\t\t\trender: function render() {\n\t\t\t\t\tthis.$el.html(new TeamMemberCardView({ model: this.model }).render().el);\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}),\n\t\t\teditable: false\n\t\t}, {\n\t\t\tname: 'joinTime',\n\t\t\tlabel: 'Joined this team',\n\t\t\tcell: 'date'\n\t\t\t// Custom date formatter\n\t\t\t, formatter: {\n\t\t\t\tfromRaw: function fromRaw(rawData) {\n\t\t\t\t\treturn moment(rawData).format('MMM D, YYYY');\n\t\t\t\t}\n\t\t\t},\n\t\t\teditable: false,\n\t\t\tsortable: false\n\t\t}, {\n\t\t\tcell: TeamMemberActionsCell,\n\t\t\teditable: false\n\t\t}]\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 788 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t Backgrid = __webpack_require__(552),\n\t TeamMemberActionsCellTpl = __webpack_require__(789);\n\n\treturn Backgrid.Cell.extend({\n\t\ttemplate: TeamMemberActionsCellTpl,\n\n\t\tevents: {\n\t\t\t'click .sendMessageLink': 'handleSendMessageLinkClick',\n\t\t\t'click .dismissLink': 'handleDismissLinkClick',\n\t\t\t'click .removeCaptainhoodLink': 'handleRemoveCaptainhoodLinkClick',\n\t\t\t'click .bestowCaptainhoodLink': 'handleBestowCaptainhoodLinkClick'\n\n\t\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t}, handleSendMessageLinkClick: function handleSendMessageLinkClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\t$.colorbox({ href: '/ajax/composeLenderMessage?recipient=' + this.model.get('lender').get('publicId') });\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t, handleDismissLinkClick: function handleDismissLinkClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this,\n\t\t\t lenderName = this.getLenderName();\n\n\t\t\twwwApp.confirm('Are you sure you want to remove ' + lenderName + ' from the team?', 'Yes, remove from team', 'Cancel').done(function (response) {\n\t\t\t\tif (response) {\n\t\t\t\t\tself.deleteMember();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t, handleRemoveCaptainhoodLinkClick: function handleRemoveCaptainhoodLinkClick(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this,\n\t\t\t lenderName = this.getLenderName();\n\n\t\t\twwwApp.confirm('Are you sure you want to remove captainhood from ' + lenderName + '?', 'Yes, remove captainhood', 'Cancel').done(function (response) {\n\t\t\t\tif (response) {\n\t\t\t\t\tself.updateCaptainhood(false);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n *\n * @param {jQuery.Event} event\n */\n\t\t, handleBestowCaptainhoodLinkClick: function handleBestowCaptainhoodLinkClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.updateCaptainhood(true);\n\t\t},\n\n\t\thandleDeleteMemberSync: function handleDeleteMemberSync() {\n\t\t\tvar lenderName = this.getLenderName();\n\n\t\t\t// The model may belong to multiple collections (\"current\" and \"self\").\n\t\t\t// To avoid the problem of deleting it from the wrong collection we trigger the \"destroy\" event which\n\t\t\t// all containing collections listen to.\n\t\t\tthis.model.trigger('destroy', this.model);\n\t\t\twwwApp.tipMsg(lenderName + ' has been removed from this team.', { autoClose: true });\n\t\t},\n\n\t\thandleDeleteMemberError: function handleDeleteMemberError() {\n\t\t\tvar lenderName = this.getLenderName();\n\n\t\t\tthis.fadeRow('in');\n\t\t\twwwApp.tipMsg('There was an error deleting ' + lenderName + ' from the team.', { autoClose: true });\n\t\t},\n\n\t\thandleUpdateMemberSync: function handleUpdateMemberSync(model) {\n\t\t\tif (model.get('isCaptain')) {\n\t\t\t\twwwApp.tipMsg('There\\'s a new captain in town!', { autoClose: true });\n\t\t\t} else {\n\t\t\t\twwwApp.tipMsg('Captainhood has been removed.', { autoClose: true });\n\t\t\t}\n\t\t},\n\n\t\thandleUpdateMemberError: function handleUpdateMemberError(model, jqXhr) {\n\t\t\tthis.fadeRow('in');\n\t\t\twwwApp.showApiError(jqXhr, { autoClose: true });\n\t\t},\n\n\t\tdeleteMember: function deleteMember() {\n\t\t\tthis.fadeRow('out');\n\t\t\treturn this.model.getActionByName('deleteMember').execute();\n\t\t}\n\n\t\t/**\n *\n * @param {Boolean} isCaptain\n */\n\t\t, updateCaptainhood: function updateCaptainhood(isCaptain) {\n\t\t\tthis.fadeRow('out');\n\t\t\tthis.model.getActionByName('updateMember').execute({ attributes: { isCaptain: isCaptain } });\n\t\t}\n\n\t\t/**\n *\n * @param {String} publicId\n * @returns {boolean}\n */\n\t\t, isSelf: function isSelf(publicId) {\n\t\t\treturn wwwApp.userPublicId() == publicId;\n\t\t}\n\n\t\t/**\n *\n * @param {String} direction - can be \"in\" or \"out\"\n */\n\t\t, fadeRow: function fadeRow(direction) {\n\t\t\tthis.$el.parent('tr').stop().animate({ opacity: direction == 'in' ? 1 : 0.4 });\n\t\t},\n\n\t\tgetLenderName: function getLenderName() {\n\t\t\treturn this.model.get('lender.name') || this.model.get('lender.publicId') || 'Anonymous';\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar publicId = this.model.get('lender.publicId'),\n\t\t\t isSelf = this.isSelf(publicId),\n\t\t\t data = this.model.toJSON();\n\n\t\t\tdata.__showUpdateCaptainhood = !!this.model.getActionByName('updateMember');\n\t\t\tdata.__showDismissFromTeam = this.model.getActionByName('deleteMember') && !isSelf;\n\t\t\tdata.__showSendMessageLink = wwwApp.isUserLoggedIn() && publicId && !isSelf;\n\t\t\treturn data;\n\t\t},\n\n\t\trender: function render() {\n\t\t\tthis.$el.html(this.template.render(this.serializeData()));\n\t\t\tthis.delegateEvents();\n\t\t\treturn this;\n\t\t},\n\n\t\tinitialize: function initialize() {\n\t\t\tBackgrid.Cell.prototype.initialize.apply(this, $.makeArray(arguments));\n\n\t\t\tthis.listenTo(this.model, 'sync:deleteMember', $.proxy(this.handleDeleteMemberSync, this));\n\t\t\tthis.listenTo(this.model, 'error:deleteMember', $.proxy(this.handleDeleteMemberError, this));\n\t\t\tthis.listenTo(this.model, 'sync:updateMember', $.proxy(this.handleUpdateMemberSync, this));\n\t\t\tthis.listenTo(this.model, 'error:updateMember', $.proxy(this.handleUpdateMemberError, this));\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 789 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"__showDismissFromTeam\",c,p,1),c,p,0,26,82,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\tDismiss from team\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"__showUpdateCaptainhood\",c,p,1),c,p,0,138,337,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"isCaptain\",c,p,1),c,p,0,154,223,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\tRemove captainhood\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"isCaptain\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\tBestow captainhood\");t.b(\"\\n\" + i);};});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"__showSendMessageLink\",c,p,1),c,p,0,393,450,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\tSend a message\");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#__showDismissFromTeam}}\\n\\tDismiss from team\\n{{/__showDismissFromTeam}}\\n\\n{{#__showUpdateCaptainhood}}\\n\\t{{#isCaptain}}\\n\\t\\tRemove captainhood\\n\\t{{/isCaptain}}\\n\\t{{^isCaptain}}\\n\\t\\tBestow captainhood\\n\\t{{/isCaptain}}\\n{{/__showUpdateCaptainhood}}\\n\\n{{#__showSendMessageLink}}\\n\\tSend a message\\n{{/__showSendMessageLink}}\", H);return T; }();\n\n/***/ }),\n/* 790 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar LenderCardView = __webpack_require__(577),\n\t TeamMemberCardTpl = __webpack_require__(791);\n\n\treturn LenderCardView.extend({\n\t\ttemplate: TeamMemberCardTpl,\n\n\t\tclassName: function className() {\n\t\t\treturn 'teamMemberCardView ' + LenderCardView.prototype.className;\n\t\t}\n\n\t\t// Modify some model properties\n\t\t, serializeData: function serializeData() {\n\t\t\tvar loanBecause,\n\t\t\t data = this.model.toJSON();\n\n\t\t\tif (data.lender) {\n\t\t\t\tdata.__isPublic = true;\n\t\t\t\tdata.__lenderName = data.lender.name;\n\t\t\t\tdata.__url = wwwApp.url('lender', 'view', { publicId: data.lender.publicId });\n\n\t\t\t\tloanBecause = data.lender.profile.loanBecause;\n\t\t\t\tdata.__loanBecause = loanBecause.length > 95 ? loanBecause.trim().substr(0, 95) + '…' : loanBecause;\n\t\t\t} else {\n\t\t\t\tdata.__isPublic = false;\n\t\t\t\tdata.__lenderName = 'Anonymous';\n\t\t\t}\n\n\t\t\tdata.__imgUrl = data.__isPublic && data.lender.image && data.lender.image.id ? '/img/s100/' + data.lender.image.id + '.jpg' : '/img/entity/lender_s100.png';\n\n\t\t\treturn data;\n\t\t},\n\n\t\tinitialize: function initialize(options) {\n\t\t\toptions = options || {};\n\n\t\t\tvar self = this;\n\n\t\t\tif (!this.model && options.teamId && options.lenderId) {\n\t\t\t\twwwApp.siren.resolve('team/' + options.teamId + '/member/' + options.lenderId).done(function (teamMemberModel) {\n\t\t\t\t\tself.model = teamMemberModel;\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/***/ }),\n/* 791 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.whereabouts\",c,p,1),c,p,0,547,620,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(t.v(t.d(\"lender.profile.whereabouts\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.loanBecause\",c,p,1),c,p,0,685,828,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\tI loan because:\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.t(t.f(\"__loanBecause\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"\\n\\n
        \\n\\t\\n\\n\\t{{#lender.profile.whereabouts}}\\n\\t\\t
        {{lender.profile.whereabouts}}
        \\n\\t{{/lender.profile.whereabouts}}\\n\\n\\t{{#lender.profile.loanBecause}}\\n\\t\\t
        \\n\\t\\t\\tI loan because:\\n\\t\\t\\t{{{__loanBecause}}}\\n\\t\\t
        \\n\\t{{/lender.profile.loanBecause}}\\n
        \", H);return T; }();\n\n/***/ }),\n/* 792 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(t.v(t.f(\"title\",c,p,0)));t.b(\" (\");t.b(t.v(t.f(\"memberCount\",c,p,0)));t.b(\")

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\tShow more members\");t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t

        {{title}} ({{memberCount}})

        \\n
        \\n\\n
        \\n\\n\", H);return T; }();\n\n/***/ }),\n/* 793 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0);\n\n\treturn {\n\t\tinit: function init() {\n\t\t\tvar $tapButton = $('.tap-button'),\n\t\t\t $closeIcon = $('.hp-how-it-works-wrapper .close-icon'),\n\t\t\t $howItWorksAccordion = $('[aria-controls=\"ac-how-it-works\"]'),\n\t\t\t steps = [$('.icon.step-1'), $('.icon.step-2'), $('.icon.step-3'), $('.icon.step-4')],\n\t\t\t arrows = [$('.icon.arrow-1'), $('.icon.arrow-2'), $('.icon.arrow-3'), $('.icon.arrow-4')],\n\t\t\t texts = [$('.small-step-1'), $('.small-step-2'), $('.small-step-3'), $('.small-step-4')],\n\t\t\t numSteps = steps.length,\n\t\t\t activeStep = 0,\n\t\t\t activeClass = 'active',\n\t\t\t activeTextClass = 'hide-for-large-up',\n\t\t\t hiddenTextClass = 'hide';\n\n\t\t\t// replicating jquery add|remove class() since they don't\n\t\t\t// work for svg elements\n\t\t\tfunction svgAddClass($svg, className) {\n\t\t\t\tvar currentClass = $svg.attr('class');\n\t\t\t\t$svg.attr('class', currentClass + ' ' + className);\n\t\t\t}\n\n\t\t\tfunction svgRemoveClass($svg, className) {\n\t\t\t\tvar currentClass = $svg.attr('class');\n\t\t\t\t$svg.attr('class', currentClass.replace(className, '').trim());\n\t\t\t}\n\n\t\t\tfunction advanceHighlight() {\n\t\t\t\tsvgRemoveClass(steps[activeStep], activeClass);\n\t\t\t\tsvgRemoveClass(arrows[activeStep], activeClass);\n\t\t\t\ttexts[activeStep].addClass(hiddenTextClass).removeClass(activeTextClass);\n\n\t\t\t\tactiveStep = ++activeStep % numSteps;\n\n\t\t\t\tsvgAddClass(steps[activeStep], activeClass);\n\t\t\t\tsvgAddClass(arrows[activeStep], activeClass);\n\t\t\t\ttexts[activeStep].addClass(activeTextClass).removeClass(hiddenTextClass);\n\t\t\t}\n\n\t\t\t$tapButton.on('click', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tadvanceHighlight();\n\t\t\t});\n\n\t\t\t$closeIcon.on('click', function () {\n\t\t\t\t$howItWorksAccordion.trigger('click');\n\t\t\t});\n\t\t}\n\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 794 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t kv = __webpack_require__(28);\n\n\treturn {\n\t\tinit: function init(businessId) {\n\n\t\t\tvar MAX_NUM_TAGS_ALLOWED = 5;\n\n\t\t\tfunction onLoanTagCheckboxClick() {\n\t\t\t\tvar tagId = $(this).val();\n\t\t\t\tvar checked = $(this).is(':checked');\n\t\t\t\tvar tag = $('.loan-tag-' + tagId);\n\t\t\t\ttag.attr('checked', checked);\n\t\t\t\ttag.prop('checked', checked);\n\t\t\t\tif ($('.all-tags.hide-for-touch input[type=\"checkbox\"]:checked').size() > MAX_NUM_TAGS_ALLOWED && checked) {\n\t\t\t\t\ttag.attr('checked', false);\n\t\t\t\t\ttag.prop('checked', false);\n\t\t\t\t\twwwApp.tipMsg('You can choose up to 5 tags for each loan. Thanks for tagging!', 'warning');\n\t\t\t\t} else {\n\t\t\t\t\tvar urlParams = 'checked=' + checked + '&tag_id=' + tagId + '&business_id=' + businessId + '&user_id=' + wwwApp.userPublicId();\n\t\t\t\t\t$.post(wwwApp.ajaxUrl('addOrRemoveLoanTag'), urlParams, onAjaxProcessAddOrRemoveLoanTag(tagId, checked), 'json');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onAjaxProcessAddOrRemoveLoanTag(tagId, checked) {\n\t\t\t\treturn function (ajaxResult) {\n\t\t\t\t\tif (ajaxResult.result === 1) {\n\t\t\t\t\t\tupdateTagSection(tagId, checked);\n\t\t\t\t\t} else if (ajaxResult.result === 0) {\n\t\t\t\t\t\tvar tag = $('.loan-tag-' + tagId);\n\t\t\t\t\t\ttag.attr('checked', !checked);\n\t\t\t\t\t\ttag.prop('checked', !checked);\n\t\t\t\t\t\tif (ajaxResult.user_not_logged_in) {\n\t\t\t\t\t\t\twwwApp.tipMsg('You must be logged in to add or remove tags.', 'warning');\n\t\t\t\t\t\t} else if (ajaxResult.exec.checked) {\n\t\t\t\t\t\t\twwwApp.tipMsg('Could not add tag: ' + ajaxResult.error, 'error');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twwwApp.tipMsg('Could not remove tag: ' + ajaxResult.error, 'error');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\twwwApp.tipMsg('Error: No response from server', 'error');\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction updateTagSection(tagId, checked) {\n\t\t\t\tif (checked) {\n\t\t\t\t\tvar tagName = $('#loan-tag-' + tagId).attr('name');\n\t\t\t\t\tvar selectedTags = $('.selected-tags');\n\t\t\t\t\tif (selectedTags.html().indexOf(tagName) === -1) {\n\t\t\t\t\t\tvar href = wwwApp.url('lend', 'showLendView', null, { tag: tagId });\n\t\t\t\t\t\tvar tagHtml = '' + tagName + ' | ';\n\t\t\t\t\t\t$(selectedTags).append(tagHtml);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$('.user-selected-tag-' + tagId).remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$('.tag :checkbox').click(onLoanTagCheckboxClick);\n\t\t}\n\t};\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 795 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n/*global wwwApp*/\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n 'use strict';\n\n var $ = __webpack_require__(0),\n kv = __webpack_require__(28),\n moment = __webpack_require__(546),\n commentTemplate = __webpack_require__(796);\n\n return {\n init: function init(businessId, loggedInUserRole) {\n var commentCount = $('.comments-and-updates-count');\n\n function addComment() {\n var isUserTheBorrower = loggedInUserRole === 'Borrower';\n var isUserAdmin = loggedInUserRole === 'Kiva Staff';\n var commentText = $('#comment-field').val();\n\n if (commentText.length > 5000) {\n wwwApp.tipMsg('Your comment must have less than 5000 characters. Please edit and try again.', 'error');\n } else if (commentText.length === 0) {\n wwwApp.tipMsg('You have an empty comment. Please edit and try again.', 'error');\n } else {\n $.ajax({\n url: wwwApp.apiRootV2() + '/loans/' + businessId + '/comments',\n type: 'post',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify({\n 'body': commentText\n })\n }).done(function (result) {\n\n var resultProperties = result.properties;\n var data = {\n 'commentId': resultProperties.id,\n 'commenterProfileUrl': resultProperties.authorProfileUrl,\n 'commenterImgUrl': resultProperties.authorImageUrl,\n 'commenterFirstName': resultProperties.authorName,\n 'commenterLocation': resultProperties.authorWhereabouts,\n 'commenterRole': loggedInUserRole,\n 'commentTimestamp': moment(resultProperties.date).format('MMMM Do YYYY h:mm a'),\n 'commentText': resultProperties.body.replace(/(\\n)+/g, '
        '), //replacing newlines with line breaks,\n 'isBorrower': isUserTheBorrower,\n 'isLoggedInUserAdmin': isUserAdmin\n };\n\n var newComment = $(commentTemplate.render(data));\n $('.comments').prepend(newComment);\n newComment.click(function (e) {\n e.preventDefault();\n deleteComment(resultProperties.id);\n });\n $('#ac-comments-and-updates-body').height($('#ac-comments-and-updates-body').height() + $('.comment').height() + 35);\n $('#comment-field').val('');\n commentCount.text(parseInt(commentCount.text()) + 1);\n }).fail(function (result) {\n var resultProperties = result.responseJSON.properties;\n if (resultProperties) {\n if (resultProperties.summary.isPublic) {\n wwwApp.tipMsg('Your lender profile must be set to public in order to comment. Please change your profile settings and try again.', 'error');\n } else if (resultProperties.summary.maxThreshold) {\n wwwApp.tipMsg('You have exceeded the limit of allowed comments in a day. Please wait 24 hours before commenting again.', 'error');\n } else {\n wwwApp.tipMsg('Failed to add comment. Please try again.', 'error');\n }\n } else {\n wwwApp.tipMsg('Failed to add comment. Please try again.', 'error');\n }\n });\n }\n }\n\n function deleteComment(commentId) {\n $.ajax({\n url: wwwApp.apiRootV2() + '/comments/' + commentId,\n type: 'DELETE'\n }).done(function () {\n $('#comment-' + commentId).remove();\n $('#ac-comments-and-updates-body').css('height', 'auto');\n commentCount.text(parseInt(commentCount.text()) - 1);\n }).fail(function () {\n wwwApp.tipMsg('Failed to delete comment. Please try again.', 'error');\n });\n }\n\n function subscribe() {\n $.ajax({\n url: wwwApp.apiRootV2() + '/loans/' + businessId + '/subscribe',\n type: 'PUT'\n }).done(function () {\n $('.subscribe-block').toggle();\n $('.unsubscribe-block').toggle();\n }).fail(function () {\n wwwApp.tipMsg('Failed to subscribe to commenting for this loan. Please try again.', 'error');\n });\n }\n\n function unsubscribe() {\n $.ajax({\n url: wwwApp.apiRootV2() + '/loans/' + businessId + '/subscribe',\n type: 'DELETE'\n }).done(function () {\n $('.subscribe-block').toggle();\n $('.unsubscribe-block').toggle();\n }).fail(function () {\n wwwApp.tipMsg('Failed to unsubscribe to commenting for this loan. Please try again.', 'error');\n });\n }\n\n function flagComment(commentId, description) {\n $.ajax({\n url: wwwApp.apiRootV2() + '/comments/' + commentId + '/flag',\n type: 'PUT',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify({\n 'description': description\n })\n }).done(function () {\n $('textarea#flag-description-' + commentId).val('');\n $('#flag-comment-lightbox-' + commentId).foundation('reveal', 'close');\n var $flagAnchor = $('#' + commentId);\n $flagAnchor.after('Flagged on ' + moment().format('MMMM D, YYYY') + '');\n $flagAnchor.remove();\n }).fail(function () {\n wwwApp.tipMsg('Failed to flag comment', 'error');\n });\n }\n\n $('.comment-submit').click(addComment);\n $('.comments .delete-comment,.spillover-comments .delete-comment').click(function (e) {\n e.preventDefault();\n deleteComment(e.target.id);\n });\n $('.comments .flag-comment').click(function (e) {\n e.preventDefault();\n var commentId = e.target.id;\n $('.submit-flag').click(function (e) {\n e.preventDefault();\n var description = $('textarea#flag-description-' + commentId).val();\n flagComment(commentId, description);\n });\n });\n $('.comment-subscribe').click(subscribe);\n $('.comment-unsubscribe').click(unsubscribe);\n }\n };\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 796 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
      • \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"commenterLocation\",c,p,0)));t.b(\"\\\" style=\\\"background-image:url(\");t.b(t.v(t.f(\"commenterImgUrl\",c,p,0)));t.b(\")\\\">\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"commenterFirstName\",c,p,0)));if(t.s(t.f(\"commenterRole\",c,p,1),c,p,0,702,721,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\", \");t.b(t.v(t.f(\"commenterRole\",c,p,0)));});c.pop();}t.b(\" | \");t.b(t.v(t.f(\"commentTimestamp\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"commenterFirstName\",c,p,0)));if(t.s(t.f(\"commenterRole\",c,p,1),c,p,0,885,904,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\", \");t.b(t.v(t.f(\"commenterRole\",c,p,0)));});c.pop();}t.b(\"
        \");t.b(t.v(t.f(\"commentTimestamp\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(t.t(t.f(\"commentText\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");if(t.s(t.f(\"isLoggedInUserAdmin\",c,p,1),c,p,0,1094,1158,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Delete\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"canFlag\",c,p,1),c,p,0,1198,1328,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Flag as inappropriate\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"timeFlagged\",c,p,1),c,p,0,1360,1415,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Flagged on \");t.b(t.v(t.f(\"timeFlagged\",c,p,0)));t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/10-lightbox/10-flag-comment-lightbox0\",c,p,\"\t\t\t\"));t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
      • \");return t.fl(); },partials: {\"<01-molecules/10-lightbox/10-flag-comment-lightbox0\":{name:\"01-molecules/10-lightbox/10-flag-comment-lightbox\", partials: {}, subs: { }}}, subs: { }}, \"
      • \\n {{commenterLocation}}\\\" style=\\\"background-image:url({{commenterImgUrl}})\\\">\\n
        \\n
        \\n {{commenterFirstName}}{{#commenterRole}}, {{commenterRole}}{{/commenterRole}} | {{commentTimestamp}}\\n
        \\n
        \\n {{commenterFirstName}}{{#commenterRole}}, {{commenterRole}}{{/commenterRole}}
        {{commentTimestamp}}\\n
        \\n
        {{{commentText}}}
        \\n
        \\n {{#isLoggedInUserAdmin}}Delete{{/isLoggedInUserAdmin}}\\n\\t\\t\\t{{#canFlag}}Flag as inappropriate{{/canFlag}}\\n\\t\\t\\t{{#timeFlagged}}Flagged on {{timeFlagged}}{{/timeFlagged}}\\n\\t\\t\\t{{> 01-molecules/10-lightbox/10-flag-comment-lightbox}}\\n
        \\n
        \\n
      • \", H);return T; }();\n\n/***/ }),\n/* 797 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\\n\" + i);t.b(\"\t
        Contributing lenders (\");t.b(t.v(t.f(\"lenderCount\",c,p,0)));t.b(\")
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"allLendersAnonymous\",c,p,1),c,p,0,379,505,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Lenders supporting this loan have chosen to remain anonymous.\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
          \");t.b(\"\\n\" + i);if(t.s(t.f(\"lenders\",c,p,1),c,p,0,569,639,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/03-media/02-lender-avatar0\",c,p,\"\t\t\t\t\"));t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"lendersExpanded\",c,p,1),c,p,0,712,1307,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"beyondLenderCutoffCount\",c,p,1),c,p,0,744,970,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"lendersLoading\",c,p,1),c,p,0,768,826,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner1\",c,p,\"\t\t\t\t\t\"));});c.pop();}t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"beyondLenderCutoffCount\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"numAnonymousLenders\",c,p,1),c,p,0,1059,1169,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t
        + \");t.b(t.v(t.f(\"numAnonymousLenders\",c,p,0)));t.b(\" anonymous lenders
        \");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t\t\tHide\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"lendersExpanded\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"showSpilloverMessageForLenders\",c,p,1),c,p,0,1389,1546,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\\n\" + i);t.b(\"\t
        Contributing teams (\");t.b(t.v(t.f(\"teamCount\",c,p,0)));t.b(\")
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"teamsExpanded\",c,p,1),c,p,0,2490,2846,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"beyondTeamCutoffCount\",c,p,1),c,p,0,2520,2740,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"teamsLoading\",c,p,1),c,p,0,2542,2600,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner2\",c,p,\"\t\t\t\t\t\"));});c.pop();}t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\tHide\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"teamsExpanded\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"showSpilloverMessageForTeams\",c,p,1),c,p,0,2922,3075,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {\"<01-molecules/03-media/02-lender-avatar0\":{name:\"01-molecules/03-media/02-lender-avatar\", partials: {}, subs: { }},\"<01-molecules/03-media/01-loading-spinner1\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }},\"<01-molecules/03-media/01-loading-spinner2\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }}}, subs: { }}, \"
        \\n\\n\\t{{! ------------------------- Lenders section -------------------------------- }}\\n\\n\\t
        Contributing lenders ({{lenderCount}})
        \\n {{#allLendersAnonymous}}\\n

        \\n Lenders supporting this loan have chosen to remain anonymous.\\n

        \\n {{/allLendersAnonymous}}\\n
          \\n\\t\\t{{#lenders}}\\n\\t\\t\\t
        • \\n\\t\\t\\t\\t{{> 01-molecules/03-media/02-lender-avatar }}\\n\\t\\t\\t
        • \\n\\t\\t{{/lenders}}\\n\\t
        \\n\\t
        \\n\\t\\t{{#lendersExpanded}}\\n\\t\\t\\t{{#beyondLenderCutoffCount}}\\n\\t\\t\\t\\t{{#lendersLoading}}\\n\\t\\t\\t\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t\\t\\t\\t{{/lendersLoading}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t\\t
        \\n\\t\\t\\t{{/beyondLenderCutoffCount}}\\n\\t\\t\\t{{^beyondLenderCutoffCount}}\\n\\t\\t\\t\\t{{#numAnonymousLenders}}\\n\\t\\t\\t\\t\\t
        + {{numAnonymousLenders}} anonymous lenders
        \\n\\t\\t\\t\\t{{/numAnonymousLenders}}\\n\\t\\t\\t{{/beyondLenderCutoffCount}}\\n\\t\\t\\tHide\\n\\t\\t{{/lendersExpanded}}\\n\\t\\t{{^lendersExpanded}}\\n\\t\\t\\t{{#showSpilloverMessageForLenders}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t{{/showSpilloverMessageForLenders}}\\n\\t\\t{{/lendersExpanded}}\\n\\t
        \\n\\n\\t{{! ------------------------- Teams section -------------------------------- }}\\n\\n\\t
        Contributing teams ({{teamCount}})
        \\n\\t\\n\\t
        \\n\\t\\t{{#teamsExpanded}}\\n\\t\\t\\t{{#beyondTeamCutoffCount}}\\n\\t\\t\\t\\t{{#teamsLoading}}\\n\\t\\t\\t\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t\\t\\t\\t{{/teamsLoading}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t\\t
        \\n\\t\\t\\t{{/beyondTeamCutoffCount}}\\n\\t\\t\\tHide\\n\\t\\t{{/teamsExpanded}}\\n\\t\\t{{^teamsExpanded}}\\n\\t\\t\\t{{#showSpilloverMessageForTeams}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t{{/showSpilloverMessageForTeams}}\\n\\t\\t{{/teamsExpanded}}\\n\\t
        \\n\\n
        \\n\", H);return T; }();\n\n/***/ }),\n/* 798 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(t.v(t.f(\"location\",c,p,0)));t.b(\"\\\"\");t.b(\"\\n\" + i);t.b(\"\t\");});c.pop();}t.b(\" kvtrackevent=\\\"Borrower Profile|click-lender-image|\");t.b(t.v(t.f(\"permanentName\",c,p,0)));t.b(\"\\\">\");t.b(\"\\n\" + i);if(t.s(t.f(\"initial\",c,p,1),c,p,0,344,433,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"initial\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"initial\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\");t.b(\"\\n\" + i);};t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\");t.b(t.v(t.f(\"firstName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(t.v(t.f(\"location\",c,p,0)));t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"{{location}}\\\"\\n\\t{{/displayTooltip}} kvtrackevent=\\\"Borrower Profile|click-lender-image|{{permanentName}}\\\">\\n\\t{{#initial}}\\n\\t\\t
        \\n\\t\\t\\t{{initial}}\\n\\t\\t
        \\n\\t{{/initial}}\\n\\t{{^initial}}\\n\\t\\t\\n\\t{{/initial}}\\n
        \\n{{firstName}}\\n{{location}}\\n\", H);return T; }();\n\n/***/ }),\n/* 799 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          Average annual income (USD):
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          \");t.b(t.v(t.f(\"avgAnnualIncome\",c,p,0)));t.b(\"
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          Funds lent in \");t.b(t.v(t.f(\"countryName\",c,p,0)));t.b(\":
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          \");if(t.s(t.f(\"fundsLentInCountry\",c,p,1),c,p,0,426,448,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.v(t.f(\"fundsLentInCountry\",c,p,0)));});c.pop();}if(!t.s(t.f(\"fundsLentInCountry\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t \");};t.b(\"
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);if(t.s(t.f(\"inUSD\",c,p,1),c,p,0,558,677,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          Loan transacted in USD
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          U.S. dollars
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        • \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"inUSD\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          \");t.b(t.v(t.f(\"currencyFullName\",c,p,0)));t.b(\" (\");t.b(t.v(t.f(\"currencyCode\",c,p,0)));t.b(\") = $1:
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
          \");t.b(t.v(t.f(\"exchangeRate\",c,p,0)));t.b(\"
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        • \");t.b(\"\\n\" + i);};t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          Loans currently fundraising:
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
          \");t.b(t.v(t.f(\"numLoansFundraising\",c,p,0)));t.b(\"
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t
          \\n\\t\\t\\t
        • \\n\\t\\t\\t\\t
          Average annual income (USD):
          \\n\\t\\t\\t\\t
          {{avgAnnualIncome}}
          \\n\\t\\t\\t
        • \\n\\t\\t\\t
        • \\n\\t\\t\\t\\t
          Funds lent in {{countryName}}:
          \\n\\t\\t\\t\\t
          {{#fundsLentInCountry}}{{fundsLentInCountry}}{{/fundsLentInCountry}}{{^fundsLentInCountry}}\\n\\t\\t\\t\\t\\t {{/fundsLentInCountry}}
          \\n\\t\\t\\t
        • \\n\\t\\t\\t{{#inUSD}}\\n\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t
          Loan transacted in USD
          \\n\\t\\t\\t\\t\\t
          U.S. dollars
          \\n\\t\\t\\t\\t
        • \\n\\t\\t\\t{{/inUSD}}\\n\\t\\t\\t{{^inUSD}}\\n\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t
          {{currencyFullName}} ({{currencyCode}}) = $1:
          \\n\\t\\t\\t\\t\\t
          {{exchangeRate}}
          \\n\\t\\t\\t\\t
        • \\n\\t\\t\\t{{/inUSD}}\\n\\t\\t\\t
        • \\n\\t\\t\\t\\t
          Loans currently fundraising:
          \\n\\t\\t\\t\\t
          {{numLoansFundraising}}
          \\n\\t\\t\\t
        • \\n\\t\\t
        \\n\\t
        \\n
        \\n\", H);return T; }();\n\n/***/ }),\n/* 800 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar $ = __webpack_require__(0),\n\t Marionette = __webpack_require__(209),\n\t Backbone = __webpack_require__(122),\n\t LoanCardView = __webpack_require__(801),\n\t NoResultsView = __webpack_require__(568),\n\t browser = __webpack_require__(211);\n\n\treturn Marionette.CompositeView.extend({\n\n\t\ttemplate: __webpack_require__(569),\n\n\t\temptyView: NoResultsView,\n\n\t\tchildView: LoanCardView,\n\n\t\tchildViewContainer: 'ul.loancards-list',\n\n\t\tchildEvents: {\n\t\t\tlend: '_handleLend'\n\t\t},\n\n\t\tcollection: new Backbone.Collection(),\n\n\t\tmodel: new Backbone.Model(),\n\n\t\t_handleLend: function _handleLend(loan_card, loan_id) {\n\t\t\tthis.trigger('lend', loan_id);\n\t\t},\n\n\t\t_reflow: function _reflow() {\n\t\t\t$(document).foundation('interchange', 'reflow');\n\t\t\t$(document).foundation('equalizer', 'reflow');\n\t\t\tif (!browser.msie) {\n\t\t\t\t$('.tooltip').remove();\n\t\t\t\t$(document).foundation('tooltip', 'reflow');\n\t\t\t}\n\t\t\tvar height = this.$('.loan-card').css('height');\n\t\t\tthis.children.each(function (loan_card) {\n\t\t\t\tif (loan_card instanceof LoanCardView) {\n\t\t\t\t\tloan_card.saveHeight(height);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tupdateResults: function updateResults(loans, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tthis.collection.set(loans);\n\t\t\tthis.model.set({\n\t\t\t\tdisable_previous: !enable_previous,\n\t\t\t\tdisable_next: !enable_next,\n\t\t\t\tdisable_first: !enable_first,\n\t\t\t\tdisable_last: !enable_last,\n\t\t\t\thide_paging: !enable_previous && !enable_next && !enable_first && !enable_last\n\t\t\t});\n\n\t\t\tthis.render();\n\t\t\tthis._reflow();\n\n\t\t\t// hide loading spinner as this view renders\n\t\t\t$('.loading-overlay').hide();\n\t\t},\n\n\t\tupdateBasketStatus: function updateBasketStatus(loan_id, basket_amount) {\n\t\t\tvar loan_card = this.children.findByModel(this.collection.get(loan_id));\n\t\t\tloan_card.updateBasketStatus(basket_amount);\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 801 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {var __WEBPACK_AMD_DEFINE_RESULT__;\n\n!(__WEBPACK_AMD_DEFINE_RESULT__ = (function (require) {\n\t'use strict';\n\n\tvar _ = __webpack_require__(11),\n\t $ = __webpack_require__(0),\n\t Marionette = __webpack_require__(209),\n\t numeral = __webpack_require__(73),\n\t moment = __webpack_require__(546),\n\t ImageFooterView = __webpack_require__(565),\n\t BottomBarView = __webpack_require__(566),\n\t loan_card_template = __webpack_require__(567);\n\n\treturn Marionette.ItemView.extend({\n\t\tgetTemplate: function getTemplate() {\n\t\t\treturn loan_card_template;\n\t\t},\n\n\t\ttagName: 'li',\n\n\t\t_getImageUrl: function _getImageUrl(data, spec) {\n\t\t\treturn wwwApp.imageUrl(data.image.hash, spec) + (data.reload_image ? '?v=' + moment().unix() : '');\n\t\t},\n\n\t\t_handleLend: function _handleLend() {\n\t\t\tthis.trigger('lend', this.model.get('id'));\n\t\t},\n\n\t\t_serializeExpiration: function _serializeExpiration(data) {\n\t\t\tif (data.status === 'fundRaising') {\n\t\t\t\tvar expires = moment(data.plannedExpirationDate * 1000); //correct for js timestamp in milliseconds\n\t\t\t\tvar left = expires.diff(moment());\n\n\t\t\t\tif (left < moment.duration(1, 'minute').as('ms')) {\n\t\t\t\t\tdata.expiring_soon_message = 'Ending now!';\n\t\t\t\t\tdata.is_expiring_soon = true;\n\t\t\t\t} else if (left < moment.duration(5.5, 'days').as('ms')) {\n\t\t\t\t\tdata.expiring_soon_message = 'Only ' + expires.fromNow(true) + ' left!';\n\t\t\t\t\tdata.is_expiring_soon = true;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_serializeImages: function _serializeImages(data) {\n\t\t\tdata.image.sizes = [{\n\t\t\t\tsize: 'default',\n\t\t\t\turl: this._getImageUrl(data, 'w480h300')\n\t\t\t}, {\n\t\t\t\tsize: 'retina',\n\t\t\t\turl: this._getImageUrl(data, 'w960h600')\n\t\t\t}];\n\n\t\t\tif (data.list_view) {\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'xlarge-proper',\n\t\t\t\t\turl: this._getImageUrl(data, 's100')\n\t\t\t\t});\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'xlarge-retina-proper',\n\t\t\t\t\turl: this._getImageUrl(data, 's200')\n\t\t\t\t});\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'list-view',\n\t\t\t\t\turl: this._getImageUrl(data, 's150')\n\t\t\t\t});\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'list-view-retina',\n\t\t\t\t\turl: this._getImageUrl(data, 's300')\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdata.image.edit_url = 'https://cloudinary.com/console/media_library#/dialog/image/upload/remote/' + data.image.hash;\n\t\t},\n\n\t\t_serializeLoanLength: function _serializeLoanLength(data) {\n\t\t\tif (data.show_loan_length) {\n\t\t\t\tdata.loan_length = data.lenderRepaymentTerm + ' month loan';\n\t\t\t}\n\t\t},\n\n\t\t_serializeLocation: function _serializeLocation(data) {\n\t\t\tif (data.geocode && data.geocode.country && data.geocode.country.isoCode) {\n\t\t\t\tdata.geocode.country.iso_code = data.geocode.country.isoCode.toLowerCase();\n\t\t\t}\n\n\t\t\tif (data.geocode && data.geocode.city && data.geocode.state) {\n\t\t\t\tdata.location_label = data.geocode.city + ', ' + data.geocode.state;\n\t\t\t} else {\n\t\t\t\tdata.location_label = data.geocode.country.name;\n\t\t\t}\n\t\t},\n\n\t\t_serializeMatching: function _serializeMatching(data) {\n\t\t\tdata.is_matched = !!data.isMatchable;\n\t\t\tif (data.is_matched) {\n\t\t\t\tdata.matching_text = 'Matching by ' + (data.matcherName ? data.matcherName : 'a Kiva supporter');\n\t\t\t}\n\t\t},\n\n\t\t_serializeProgress: function _serializeProgress(data) {\n\t\t\tif (data.status === 'expired') {\n\t\t\t\tdata.progress = {\n\t\t\t\t\tmessage: 'Expired',\n\t\t\t\t\tpercent: 0\n\t\t\t\t};\n\t\t\t} else if (data.is_ended) {\n\t\t\t\tdata.progress = {\n\t\t\t\t\tmessage: 'Funded',\n\t\t\t\t\tpercent: 100\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar total = parseFloat(data.loanAmount.amount);\n\t\t\t\tvar raised = parseFloat(data.loanFundraisingInfo.fundedAmount.amount);\n\t\t\t\tvar in_basket = parseFloat(data.loanFundraisingInfo.reservedAmount.amount);\n\t\t\t\tvar funded = raised + in_basket;\n\t\t\t\tvar amountLeft = total - funded < 0 ? 0 : total - funded;\n\t\t\t\tthis.model.set('amount_left', amountLeft);\n\n\t\t\t\tdata.progress = {\n\t\t\t\t\tmessage: numeral(amountLeft).format() + ' to go',\n\t\t\t\t\tpercent: funded / total * 100\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\t_serializeUrls: function _serializeUrls(data) {\n\t\t\tdata.borrower_url = wwwApp.url('businesses', 'loanView', { loanId: data.id });\n\t\t},\n\n\t\tuncapitalizeFirstLetter: function uncapitalizeFirstLetter(aString) {\n\t\t\treturn aString.charAt(0).toLowerCase() + aString.slice(1);\n\t\t},\n\n\t\t_serializeUse: function _serializeUse(data) {\n\t\t\tvar maxLength = 150;\n\t\t\tif (data.use === '') {\n\t\t\t\tdata.use = 'For the borrower\\'s privacy, this loan has been made anonymous.';\n\t\t\t} else {\n\t\t\t\tdata.use = 'A loan of ' + numeral(data.loanAmount.amount).format() + (data.status === 'fundRaising' || data.status === 'inactive' || data.status === 'reviewed' ? ' helps' : ' helped') + (data.borrowerCount > 1 ? ' a member ' : ' ') + this.uncapitalizeFirstLetter(data.use.trim());\n\t\t\t}\n\n\t\t\tif (data.use.length > maxLength) {\n\t\t\t\tdata.use = data.use.substring(0, maxLength) + '...';\n\t\t\t}\n\t\t},\n\n\t\tsaveHeight: function saveHeight(height) {\n\t\t\tthis.descHeight = height;\n\t\t},\n\n\t\tupdateBasketStatus: function updateBasketStatus(basket_amount) {\n\t\t\tthis.bottomBar.updateBasketStatus(basket_amount);\n\t\t},\n\n\t\tserializeData: function serializeData() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tif (data.show_message_card) {\n\t\t\t\treturn _.extend(_.pick(data, ['title', 'body', 'button_text', 'button_url']), { height: this.descHeight ? this.descHeight : 'auto' });\n\t\t\t}\n\n\t\t\tnumeral.defaultFormat('$0,0[.]00');\n\n\t\t\tthis._serializeExpiration(data);\n\t\t\tthis._serializeImages(data);\n\t\t\tthis._serializeLoanLength(data);\n\t\t\tthis._serializeLocation(data);\n\t\t\tthis._serializeMatching(data);\n\t\t\tthis._serializeProgress(data);\n\t\t\tthis._serializeUrls(data);\n\t\t\tthis._serializeUse(data);\n\n\t\t\tdata.height = this.descHeight ? this.descHeight : 'auto';\n\n\t\t\treturn data;\n\t\t},\n\n\t\tonRender: function onRender() {\n\n\t\t\tvar image_footer_data = _.pick(this.model.attributes, ['isMatchable', 'matcherName', 'is_favorite', 'can_favorite']);\n\n\t\t\timage_footer_data.is_loan_card_view = true;\n\n\t\t\tthis._serializeMatching(image_footer_data);\n\n\t\t\tthis.imageFooter = new ImageFooterView({\n\t\t\t\tel: this.$('.loan-image-footer'),\n\t\t\t\tdata: image_footer_data\n\t\t\t});\n\t\t\tthis.listenTo(this.imageFooter, 'toggle:favorite', this._handleFavoriteToggle);\n\n\t\t\tthis.bottomBar = new BottomBarView({\n\t\t\t\tel: this.$('.bottom-bar-region'),\n\t\t\t\tdata: _.pick(this.model.attributes, ['id', 'amount_in_basket', 'free_trial', 'is_ended', 'is_adding', 'is_lent_to', 'is_in_basket', 'amount_left'])\n\t\t\t});\n\t\t\tthis.listenTo(this.bottomBar, 'lend', this._handleLend);\n\t\t},\n\n\t\tonShow: function onShow() {\n\t\t\t// reflow foundation interchange to make it set images as background\n\t\t\t$(document).foundation('interchange', 'reflow');\n\t\t}\n\n\t\t/**\n */\n\t\t, initialize: function initialize(options) {\n\t\t\tvar loanData = this.model.get('loan');\n\n\t\t\tvar self = this;\n\t\t\t// update model moving all loan data to top tier\n\t\t\t_.forEach(loanData, function (value, key) {\n\t\t\t\tself.model.set(key, value);\n\t\t\t});\n\n\t\t\tif (this.model.get('status') !== 'fundRaising') {\n\t\t\t\tthis.model.set('is_ended', true);\n\t\t\t}\n\n\t\t\tvar user_properties = this.model.get('userProperties');\n\t\t\tif (user_properties) {\n\t\t\t\tthis.model.set({\n\t\t\t\t\tis_favorite: user_properties.favorited,\n\t\t\t\t\tis_lent_to: user_properties.lentTo\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 802 */,\n/* 803 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar numeral = __webpack_require__(73);\n\nfunction numCommas(l) {\n\treturn Math.max(0, Math.floor((l - 1) / 3));\n}\n\nfunction getFormattedIndex(newValue, index) {\n\treturn 1 + index + numCommas(newValue.length) - numCommas(newValue.length - index);\n}\n\nmodule.exports = function usdAgent(decimalRequired) {\n\treturn {\n\t\tkeypress: function keypress(el, key) {\n\t\t\t/* jshint maxcomplexity: 15 */\n\n\t\t\tvar current = el.value,\n\t\t\t cursor = typeof el.selectionStart !== 'undefined' ? el.selectionStart : current.length,\n\t\t\t cursorEnd = typeof el.selectionEnd !== 'undefined' ? el.selectionEnd : current.length,\n\t\t\t prefix = current.slice(0, cursor),\n\t\t\t suffix = current.slice(cursorEnd),\n\t\t\t newString = prefix + key + suffix,\n\t\t\t format = '$0,0[.]00';\n\n\t\t\t// only allow numbers, decimal, and dollar sign\n\t\t\tif (/[^0-9.$]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow one decimal\n\t\t\tif (key === '.' && /\\.+/.test(current)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow two characters after the decimal\n\t\t\tif (prefix.slice(-3, -2) === '.' || prefix.slice(-2, -1) === '.' && suffix.length === 1 || prefix.slice(-1) === '.' && suffix.length === 2) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// allow typing a decimal or typing immediately after a decimal\n\t\t\tif (key === '.' || prefix.slice(-1) === '.' && suffix.length === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// allow typing a dollar sign at the beginning\n\t\t\tif (key === '$' && prefix.length === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// handle special case of numeraljs removing '.00' when decimal is optional\n\t\t\tif (decimalRequired && newString.slice(-3) === '.00') {\n\t\t\t\tformat = '$0,0.00';\n\t\t\t}\n\n\t\t\t// format the new value\n\t\t\tel.value = numeral(newString).format(format);\n\n\t\t\t// put the cursor back where it was\n\t\t\tvar prefixValue = ((numeral(prefix).value() || '') + '').split('.')[0];\n\t\t\tvar newValue = (numeral(newString).value() || '') + '';\n\t\t\tvar decimalModifier = prefix.indexOf('.') > -1 ? 1 : 0;\n\t\t\tvar newCursor = getFormattedIndex(newValue, prefixValue.length + 1) + decimalModifier;\n\t\t\tel.setSelectionRange(newCursor, newCursor);\n\n\t\t\t// skip any other input\n\t\t\treturn false;\n\t\t},\n\n\t\tfocusout: function focusout(el) {\n\t\t\tif (el.value.length > 0) {\n\t\t\t\tel.value = numeral(el.value).format(decimalRequired ? '$0,0.00' : '$0,0[.]00');\n\t\t\t}\n\t\t}\n\t};\n};\n\n/***/ }),\n/* 804 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar numeral = __webpack_require__(73);\nvar moment = __webpack_require__(546);\n\nfunction setDateIfValid(el, val) {\n\t// parse out the number first, as moment will ignore and validate non-numbers and negative numbers\n\tvar value = Math.abs(numeral(val).value());\n\n\t// trick moment into thinking it's january so it will accept the 31st as a valid date\n\tvar date = moment('1 ' + value, 'M Do');\n\n\t// only set if value could be interpreted as valid\n\tif (date.isValid()) {\n\t\tel.value = date.format('Do');\n\t}\n}\n\nmodule.exports = function ordinalAgent() {\n\treturn {\n\t\tkeypress: function keypress(el, key) {\n\t\t\tvar current = el.value,\n\t\t\t cursor = typeof el.selectionStart !== 'undefined' ? el.selectionStart : current.length,\n\t\t\t cursorEnd = typeof el.selectionEnd !== 'undefined' ? el.selectionEnd : current.length,\n\t\t\t prefix = current.slice(0, cursor),\n\t\t\t suffix = current.slice(cursorEnd),\n\t\t\t newString = prefix + key + suffix;\n\n\t\t\t// only allow numbers, and the letters dDhHnNrRsStT\n\t\t\tif (/[^0-9dDhHnNrRsStT]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow numbers at the beginning\n\t\t\tif (prefix.length === 0 && /[^1-9]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow numbers after 1, 2, and 3\n\t\t\tif (/[456789]/.test(prefix) && /[0-9]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow 0, 1, or letters after 3\n\t\t\tif (prefix === '3' && /[^01a-zA-Z]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// format the new value\n\t\t\tif (newString.length > 1) {\n\t\t\t\tsetDateIfValid(el, newString);\n\t\t\t} else {\n\t\t\t\tel.value = newString;\n\t\t\t}\n\n\t\t\tvar newCursor = (prefix + key).length;\n\t\t\tel.setSelectionRange(newCursor, newCursor);\n\n\t\t\t// skip any other input\n\t\t\treturn false;\n\t\t},\n\n\t\tfocusout: function focusout(el) {\n\t\t\tif (el.value.length > 0) {\n\t\t\t\tsetDateIfValid(el, el.value);\n\t\t\t}\n\t\t}\n\t};\n};\n\n/***/ }),\n/* 805 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"distribution-rows\",c,p,1),c,p,0,77,144,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/40-portfolio/04-distribution-table-row0\",c,p,\"\t\t\t\t\"));});c.pop();}t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\");if(t.s(t.f(\"show_more\",c,p,1),c,p,0,203,262,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Show \");t.b(t.v(t.f(\"number\",c,p,0)));t.b(\" more\");});c.pop();}t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {\"<01-molecules/40-portfolio/04-distribution-table-row0\":{name:\"01-molecules/40-portfolio/04-distribution-table-row\", partials: {}, subs: { }}}, subs: { }}, \"
        \\n\\t\\n\\t\\t\\n\\t\\t\\t{{#distribution-rows}}\\n\\t\\t\\t\\t{{> 01-molecules/40-portfolio/04-distribution-table-row }}\\n\\t\\t\\t{{/distribution-rows}}\\n\\t\\t\\n\\t
        \\n\\t{{#show_more}}Show {{number}} more{{/show_more}}\\n
        \", H);return T; }();\n\n/***/ }),\n/* 806 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");if(t.s(t.f(\"url\",c,p,1),c,p,0,30,61,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");t.b(t.v(t.f(\"label\",c,p,0)));t.b(\"\");});c.pop();}if(!t.s(t.f(\"url\",c,p,1),c,p,1,0,0,\"\")){t.b(t.v(t.f(\"label\",c,p,0)));};t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"percent\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\\n\\t{{#url}}{{label}}{{/url}}{{^url}}{{label}}{{/url}}\\n\\t{{percent}}\\n\", H);return T; }();\n\n/***/ }),\n/* 807 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar H = __webpack_require__(51);\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        Loan count

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
        \\n\\t\\t\\t\\t{{!The content within this div is the only change from the copy and pasted lightbox atom. If you need to\\n\\t\\t\\t\\t make changes to this lightbox outside of this div, those changes need to be made to every lightbox file within the\\n\\t\\t\\t\\t Molecules/10-lightbox folder. }}\\n\\t\\t\\t\\t

        Loan count

        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t
        \\n\\t\\t\\t
        \\n\\t\\t
        \\n\\t
        \\n
        \", H);return T; }();\n\n/***/ })\n]));\n\n\n// WEBPACK FOOTER //\n// 0.bundle.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, MainView = require('components/BorrowerDashboard/MainView')\n\t\t, BorrowerTransactionsView = require('components/BorrowerDashboard/TransactionsView')\n\t\t, BorrowerAutoRepaymentsView = require('components/BorrowerDashboard/AutoRepaymentsView')\n\t\t, SecondaryNavView = require('components/Xb/SecondaryNavView')\n\t\t, TertiaryNavView = require('components/Xb/TertiaryNavView')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap'\n\n\t\t, regions: {\n\t\t\tsecondaryNavRegion: '.secondary-nav-region',\n\t\t\ttertiaryNavRegion: '.tertiary-nav-region',\n\t\t\tmainRegion: '.main'\n\t\t}\n\n\t\t////////////////////////////////////////////////////////////\n\t\t, setCurrentHref: function(href) {\n\t\t\tthis.secondaryNavView.setCurrentHref(href);\n\t\t\tthis.tertiaryNavView.setCurrentHref(href);\n\t\t}\n\n\t\t, showBorrowerHomeView: function () {\n\t\t\tthis.mainRegion.show(this.mainView,{preventDestroy: true});\n\t\t\tthis.setCurrentHref('/my/borrower');\n\t\t}\n\n\t\t, showBorrowerPreviousLoansView: function() {\n\t\t\tthis.mainRegion.show(this.mainView,{preventDestroy: true});\n\t\t\tthis.setCurrentHref('/my/borrower/previous-loans');\n\t\t}\n\n\t\t, showBorrowerTransactionsView: function() {\n\t\t\tthis.mainRegion.show(this.transactionsView,{preventDestroy: true});\n\t\t\tthis.setCurrentHref('/my/borrower/transactions');\n\t\t}\n\n\t\t, showBorrowerAutoRepaymentsView: function() {\n\t\t\tif (this.initOptions.auto_repayment.autoRepaymentsEnabled) {\n\t\t\t\tthis.mainRegion.show(this.autoRepaymentsView,{preventDestroy: true});\n\t\t\t\tthis.setCurrentHref('/my/borrower/auto-repayments');\n\t\t\t} else {\n\t\t\t\tthis.showBorrowerHomeView();\n\t\t\t\twwwApp.tipMsg('auto-repayments are not enabled.');\n\t\t\t}\n\t\t}\n\n\t\t/** bubble up events to the controller */\n\t\t, _bubbleNavigate: function(href) {\n\t\t\tthis.trigger('navigate',href);\n\t\t}\n\t\t, _bubbleAutoRepaymentGetStatus: function(new_status) {\n\t\t\tthis.trigger('autoRepaymentGetStatus',new_status);\n\t\t}\n\n\t\t, updateLoan: function(loan,lenderCount) {\n\t\t\tthis.mainView.updateLoan(loan,lenderCount);\n\t\t\tthis.autoRepaymentsView.updateLoan(loan,lenderCount);\n\t\t}\n\t\t, updateTransactionResults: function(transactions, total_count, enable_previous, enable_next) {\n\t\t\tthis.transactionsView.updateTransactionResults(transactions, total_count, enable_previous, enable_next);\n\t\t}\n\n\t\t, updateAutoRepaymentStatus: function(new_status) {\n\t\t\tthis.mainView.updateAutoRepaymentStatus(new_status);\n\t\t\tthis.autoRepaymentsView.updateAutoRepaymentStatus(new_status);\n\t\t}\n\n\n\t\t, initialize: function (options) {\n\t\t\tthis.initOptions = options;\n\t\t\tthis.mainView = new MainView(options);\n\t\t\tthis.transactionsView = new BorrowerTransactionsView(options);\n\t\t\tthis.autoRepaymentsView = new BorrowerAutoRepaymentsView(options);\n\n\t\t\t// setup navigation\n\t\t\tvar nav_options = {\n\t\t\t\tactive: options.active_nav_link,\n\t\t\t\tlinks: options.nav_links\n\t\t\t};\n\n\t\t\tthis.secondaryNavView = new SecondaryNavView(nav_options);\n\t\t\tthis.secondaryNavRegion.show(this.secondaryNavView);\n\n\t\t\tthis.tertiaryNavView = new TertiaryNavView(nav_options);\n\t\t\tthis.tertiaryNavRegion.show(this.tertiaryNavView);\n\n\t\t\tthis.listenTo(\n\t\t\t\tthis.autoRepaymentsView,\n\t\t\t\t'autoRepaymentGetStatus',\n\t\t\t\tthis._bubbleAutoRepaymentGetStatus\n\t\t\t);\n\n\t\t\tthis.listenTo(this.mainView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.transactionsView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.autoRepaymentsView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.secondaryNavView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.listenTo(this.tertiaryNavView, 'navigate', this._bubbleNavigate);\n\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/BorrowerDashboard/BorrowerDashboardView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, moment = require('moment')\n\t\t, uri = require('simpleUri')\n\t\t, CheckoutSteps = require('components/Checkout/CheckoutSteps')\n\t\t, BasketView = require('components/Checkout/Basket/BasketView')\n\t\t, PaymentView = require('components/Checkout/Payment/PaymentView')\n\t\t, ThanksView = require('components/Checkout/Thanks/ThanksView')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap'\n\n\t\t, regions: {\n\t\t\tcheckoutSteps: '#checkoutSteps'\n\t\t\t, main: '#checkoutWrap'\n\t\t}\n\n\t\t// method called from controller\n\t\t, setRegionView: function(page) {\n\t\t\tswitch (page) {\n\n\t\t\t\tcase 'payment':\n\t\t\t\t\tif (!this.paymentView) {\n\t\t\t\t\t\tthis.paymentView = new PaymentView({ store: this.store });\n\t\t\t\t\t}\n\t\t\t\t\tthis.showChildView('main', this.paymentView, {preventDestroy: true});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'thanks':\n\t\t\t\t\tif (!this.thanksView) {\n\t\t\t\t\t\tthis.thanksView = new ThanksView({ store: this.store });\n\t\t\t\t\t}\n\t\t\t\t\tthis.showChildView('main', this.thanksView, {preventDestroy: true});\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (!this.basketView) {\n\t\t\t\t\t\tthis.basketView = new BasketView({ store: this.store });\n\t\t\t\t\t}\n\t\t\t\t\tthis.showChildView('main', this.basketView, {preventDestroy: true, forceShow: true});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t, updateUrl: function (page) {\n\t\t\tvar paths = {\n\t\t\t\tbasket: '/basket'\n\t\t\t\t, payment: '/basket/payment'\n\t\t\t\t, thanks: '/thanks'\n\t\t\t};\n\n\t\t\tvar path = paths[page];\n\n\t\t\tif (path && uri().path !== path) {\n\t\t\t\tBackbone.history.navigate(path);\n\t\t\t}\n\t\t}\n\n\t\t, initialize: function (options) {\n\t\t\tthis.store = options.store;\n\n\t\t\t// configure moment to show minutes for relative time up to 2 hours / 120 minutes\n\t\t\tmoment.relativeTimeThreshold('m', 120);\n\n\t\t\tvar self = this;\n\t\t\tthis.store.subscribe(['page'], function (state) {\n\t\t\t\t// update view based on subscribed page value\n\t\t\t\tself.setRegionView(state.page);\n\t\t\t\tself.updateUrl(state.page);\n\t\t\t});\n\n\t\t\t// Setup Checkout Steps\n\t\t\tthis.showChildView('checkoutSteps', new CheckoutSteps({ store: this.store }));\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Checkout/CheckoutView.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t\t, moment = require('moment')\n\t\t, Marionette = require('marionette')\n\t\t, ControlView = require('components/Lend/ControlView')\n\t\t, ResultsView = require('components/Lend/ResultsView')\n\t\t, AllCountriesLentView = require('components/Lend/AllCountriesLentView')\n\t\t, FiltersView = require('components/Lend/FiltersView')\n\t\t, lightboxTemplate = require('hgn!patterns/01-molecules/10-lightbox/06-dynamic-help-text-lightbox')\n\t\t, numeral = require('numeral')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.mainWrapper'\n\n\t\t, regions: {\n\t\t\tresultsRegion: '.results-region'\n\t\t}\n\n\t\t, events: {\n\t\t\t'click .filter-clear-button': '_clearFilterValuesWithTrigger',\n\t\t\t'click .exit-off-canvas.hide-for-large-up': '_scrollToTop'\n\t\t}\n\n\n\t\t, clearCategory: function() {\n\t\t\tthis.$('.off-canvas-wrap')\n\t\t\t\t.removeClass('hide-filters-for-xxlarge-up')\n\t\t\t\t.addClass('show-filters-for-xxlarge-up');\n\t\t\tthis.controlView.clearCategory();\n\t\t}\n\n\n\t\t, showAllCountriesLentMessage: function() {\n\t\t\tthis.resultsRegion.show(this.allCountriesLentView);\n\t\t}\n\n\n\t\t, toggleFilterLinks: function (action) {\n\t\t\tthis.controlView.toggleFilterLinks(action);\n\t\t\tthis.filtersView.toggleFilterLinks(action);\n\t\t}\n\n\n\t\t, updateCategory: function(name, description) {\n\t\t\tthis.$('.off-canvas-wrap')\n\t\t\t\t.removeClass('move-right')\n\t\t\t\t.removeClass('show-filters-for-xxlarge-up')\n\t\t\t\t.addClass('hide-filters-for-xxlarge-up');\n\t\t\tthis.controlView.updateCategory(name, description);\n\t\t}\n\n\t\t\n\t\t, updateFacets: function (facets) {\n\t\t\tthis.filtersView.updateFacets(facets);\n\t\t}\n\n\n\t\t, updateFilters: function (filters) {\n\t\t\tthis.filtersView.updateFilters(filters);\n\t\t}\n\n\t\t, updateFiltersList: function (filters) {\n\t\t\tthis.controlView.updateFiltersList(filters);\n\t\t}\n\n\n\t\t, updateLoanBasketStatus: function (loan_id, amount) {\n\t\t\tthis.resultsView.updateBasketStatus(loan_id, amount);\n\t\t}\n\n\n\t\t, updateLoanCount: function(count) {\n\t\t\tthis.controlView.updateLoanCount(count);\n\t\t\tthis.$('.results-overlay-text .count').html(numeral(count).format('0,0'));\n\t\t}\n\n\n\t\t, updateLoanFavoriteStatus: function(loan_id, is_favorite) {\n\t\t\tthis.resultsView.updateFavoriteStatus(loan_id, is_favorite);\n\t\t}\n\n\n\t\t, updateLoading: function(is_loading) {\n\t\t\tif(is_loading) {\n\t\t\t\tthis.$('.off-canvas-wrap').addClass('loading');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$('.off-canvas-wrap').removeClass('loading');\n\t\t\t}\n\t\t}\n\n\n\t\t, updateResults: function (loans, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tif (this.resultsRegion.currentView != this.resultsView) {\n\t\t\t\tthis.resultsRegion.show(this.resultsView);\n\t\t\t}\n\n\t\t\tthis.resultsView.updateResults(loans, enable_previous, enable_next, enable_first, enable_last);\n\t\t}\n\n\n\t\t, updateResultsViewType: function(is_list_view) {\n\t\t\tthis._setResultsViewType(is_list_view);\n\t\t\tthis.controlView.updateViewType(is_list_view);\n\t\t\tthis.resultsView.updateViewType(is_list_view);\n\t\t}\n\n\n\t\t, updateSort: function (value) {\n\t\t\tthis.controlView.updateSort(value);\n\t\t}\n\n\n\t\t, _addSaveSearchHandlers: function () {\n\t\t\tvar self = this;\n\t\t\tvar triggerSaveSearch = function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tself._saveSearch();\n\t\t\t};\n\t\t\t$('.submit-save-search').click(triggerSaveSearch);\n\t\t\t$(document).on('close.fndtn.reveal', '[data-reveal]', function () {\n\t\t\t\t$('.submit-save-search').unbind('click', triggerSaveSearch);\n\t\t\t\tself.filtersView._clearSaveSearchLightbox();\n\t\t\t});\n\t\t}\n\n\n\t\t, _clearFilterValuesWithTrigger: function (e) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleFilterClear();\n\t\t}\n\n\t\t, clearFilterValues: function(){\n\t\t\tthis.filtersView.clearFilterValues();\n\t\t}\n\n\n\t\t, _configureMoment: function () {\n\t\t\tmoment.relativeTimeThreshold('m', 120);\n\t\t\tmoment.relativeTimeThreshold('h', 48);\n\n\t\t\tmoment.updateLocale('en', {\n\t\t\t\trelativeTime: {\n\t\t\t\t\tfuture: 'in %s'\n\t\t\t\t\t, past: '%s ago'\n\t\t\t\t\t, s: '%d seconds'\n\t\t\t\t\t, m: '1 minute'\n\t\t\t\t\t, mm: '%d minutes'\n\t\t\t\t\t, h: '1 hour'\n\t\t\t\t\t, hh: '%d hours'\n\t\t\t\t\t, d: '1 day'\n\t\t\t\t\t, dd: '%d days'\n\t\t\t\t\t, M: '1 month'\n\t\t\t\t\t, MM: '%d months'\n\t\t\t\t\t, y: '1 year'\n\t\t\t\t\t, yy: '%d years'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\n\t\t, _handleChangeView: function(view) {\n\t\t\tthis.trigger('change-results-view', view);\n\t\t}\n\n\n\t\t, _handleFavorite: function (loan_id) {\n\t\t\tthis.trigger('favorite', loan_id);\n\t\t}\n\n\n\t\t, _handleFilterAdd: function (data) {\n\t\t\tthis.trigger('filter-add', data);\n\t\t}\n\n\n\t\t, _handleFilterChange: function (data) {\n\t\t\tthis.trigger('filter-change', data);\n\t\t}\n\n\n\t\t, _handleFilterClear: function () {\n\t\t\tthis.trigger('filter-clear');\n\t\t}\n\n\n\t\t, _handleFilterUnset: function (data) {\n\t\t\tthis.trigger('filter-unset', data);\n\t\t}\n\n\n\t\t, _handleLeaveCategory: function() {\n\t\t\tthis.trigger('leave-category');\n\t\t}\n\n\n\t\t, _handleLend: function(loan_id) {\n\t\t\tthis.trigger('lend', loan_id);\n\t\t}\n\n\n\t\t, _handleMcLightbox: function(mc_url) {\n\t\t\tthis._showMessageCatalogLightbox(mc_url);\n\t\t}\n\n\n\t\t, _handleSfLightbox: function(solution_id) {\n\t\t\tthis._showSalesForceLightbox(solution_id);\n\t\t}\n\n\n\t\t, _handleNext: function () {\n\t\t\tthis.trigger('next');\n\t\t}\n\n\n\t\t, _handlePrevious: function () {\n\t\t\tthis.trigger('previous');\n\t\t}\n\n\t\t, _handleFirst: function () {\n\t\t\tthis.trigger('first');\n\t\t}\n\n\t\t, _handleLast: function () {\n\t\t\tthis.trigger('last');\n\t\t}\n\n\t\t, _handleUnfavorite: function (loan_id) {\n\t\t\tthis.trigger('unfavorite', loan_id);\n\t\t}\n\n\n\t\t, _saveSearch: function () {\n\t\t\tthis.trigger('save-search');\n\t\t}\n\n\t\t, _scrollToTop: function() {\n\t\t\twindow.scrollTo(0, 0);\n\t\t}\n\n\t\t, _setCountriesUnlent: function () {\n\t\t\tthis.trigger('set-countries-unlent');\n\t\t}\n\n\n\t\t, _setResultsViewType: function(is_list_view) {\n\t\t\tif(is_list_view) {\n\t\t\t\tthis.$('.off-canvas-wrap').addClass('list-view');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$('.off-canvas-wrap').removeClass('list-view');\n\t\t\t}\n\t\t}\n\n\n\n\t\t, _showMessageCatalogLightbox: function(mc_url) {\n\t\t\t$.getJSON(wwwApp.ajaxUrl('mc/'+mc_url))\n\t\t\t\t.done(function(data) {\n\t\t\t\t\t$(lightboxTemplate.render({descriptionTitle: data.term_title, descriptionText: data.term_definition})).foundation('reveal', 'open');\n\t\t\t\t});\n\t\t}\n\n\n\t\t, _showSalesForceLightbox: function(solution_id) {\n\t\t\t$.get(wwwApp.ajaxUrl('ajaxProxy', {href: 'https://na84.salesforce.com/_ui/selfservice/pkb/PublicKnowledgeSolution/d?orgId=00D500000006svl&id='+solution_id}))\n\t\t\t\t.done(function(response) {\n\t\t\t\t\tresponse = response.replace(/<\\/?(span|font|blockquote|img|iframe|script).*?>|style=\".*?\"/g, '');\n\n\t\t\t\t\tvar title = $('td .solutionTitleDetail', response).html();\n\t\t\t\t\tvar text = $('td .htmlDetailElementDiv', response).html();\n\n\t\t\t\t\t$(lightboxTemplate.render({descriptionTitle: title, descriptionText: text})).foundation('reveal', 'open');\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\t/* jshint maxstatements: 29 */\n\t\t\tthis._configureMoment();\n\t\t\tthis._setResultsViewType(options.is_list_view);\n\n\t\t\tthis.controlView = new ControlView(options);\n\t\t\tthis.resultsView = new ResultsView(options);\n\t\t\tthis.filtersView = new FiltersView(options);\n\t\t\tthis.allCountriesLentView = new AllCountriesLentView();\n\n\t\t\tthis.listenTo(this.resultsView, 'lend', this._handleLend);\n\t\t\tthis.listenTo(this.resultsView, 'favorite', this._handleFavorite);\n\t\t\tthis.listenTo(this.resultsView, 'unfavorite', this._handleUnfavorite);\n\t\t\tthis.listenTo(this.resultsView, 'previous', this._handlePrevious);\n\t\t\tthis.listenTo(this.resultsView, 'next', this._handleNext);\n\t\t\tthis.listenTo(this.resultsView, 'first', this._handleFirst);\n\t\t\tthis.listenTo(this.resultsView, 'last', this._handleLast);\n\t\t\tthis.listenTo(this.resultsView, 'filter-clear', this._handleFilterClear);\n\t\t\tthis.listenTo(this.allCountriesLentView, 'filter-clear', this._handleFilterClear);\n\n\t\t\tthis.listenTo(this.filtersView, 'add', this._handleFilterAdd);\n\t\t\tthis.listenTo(this.filtersView, 'change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.filtersView, 'unset', this._handleFilterUnset);\n\t\t\tthis.listenTo(this.filtersView, 'save-search-handlers', this._addSaveSearchHandlers);\n\t\t\tthis.listenTo(this.filtersView, 'set-countries-unlent', this._setCountriesUnlent);\n\t\t\tthis.listenTo(this.filtersView, 'mc-lightbox', this._handleMcLightbox);\n\t\t\tthis.listenTo(this.filtersView, 'sf-lightbox', this._handleSfLightbox);\n\n\t\t\tthis.listenTo(this.controlView, 'change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.controlView, 'unset', this._handleFilterUnset);\n\t\t\tthis.listenTo(this.controlView, 'save-search-handlers', this._addSaveSearchHandlers);\n\t\t\tthis.listenTo(this.controlView, 'leave-category', this._handleLeaveCategory);\n\t\t\tthis.listenTo(this.controlView, 'change-view', this._handleChangeView);\n\n\t\t\t$(document)\n\t\t\t\t.on('open.fndtn.offcanvas', '[data-offcanvas]', function() {\n\t\t\t\t\t$('#mobile-basket-button').addClass('off-screen');\n\t\t\t\t})\n\n\t\t\t\t.on('close.fndtn.offcanvas', '[data-offcanvas]', function() {\n\t\t\t\t\t$('#mobile-basket-button').removeClass('off-screen');\n\t\t\t\t});\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Lend/LendView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t, MainView = require('components/Messages/MainView')\n\t\t, SecondaryNavView = require('components/Xb/SecondaryNavView')\n\t\t, TertiaryNavView = require('components/Xb/TertiaryNavView')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap'\n\n\t\t, regions: {\n\t\t\tsecondaryNavRegion: '.secondary-nav-region',\n\t\t\ttertiaryNavRegion: '.tertiary-nav-region',\n\t\t\tmainRegion: '.main'\n\t\t}\n\n\t\t, closeLightboxes: function() {\n\t\t\t$(document).foundation('reveal','close');\n\t\t}\n\n\t\t, setLoading: function(loading) {\n\t\t\tthis.mainView.setLoading(loading);\n\t\t\tthis.mainRegion.show(this.mainView, {forceShow: true});\n\t\t}\n\n\t\t, updateNavigation: function(path) {\n\t\t\tthis.secondaryNavView.setCurrentHref(path);\n\t\t\tthis.tertiaryNavView.setCurrentHref(path);\n\t\t}\n\n\t\t, updateResults: function(state) {\n\t\t\tthis.mainView.update(state);\n\t\t\tthis.mainRegion.show(this.mainView, {forceShow: true});\n\t\t}\n\n\t\t, _bubbleDelete: function(message_id, is_only_message) {\n\t\t\tthis.trigger('delete', message_id, is_only_message);\n\t\t}\n\n\t\t, _bubbleNavigate: function(href) {\n\t\t\tthis.trigger('navigate', href);\n\t\t}\n\n\t\t, _bubblePageChange: function(page) {\n\t\t\tthis.trigger('page-change', page);\n\t\t}\n\n\t\t, _bubbleSend: function(data) {\n\t\t\tthis.trigger('send', data);\n\t\t}\n\n\t\t, initialize: function (options) {\n\t\t\tvar nav_options = {\n\t\t\t\tactive: options.active_link,\n\t\t\t\tlinks: options.links\n\t\t\t};\n\n\t\t\tthis.secondaryNavView = new SecondaryNavView(nav_options);\n\t\t\tthis.listenTo(this.secondaryNavView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.secondaryNavRegion.show(this.secondaryNavView);\n\n\t\t\tthis.tertiaryNavView = new TertiaryNavView(nav_options);\n\t\t\tthis.listenTo(this.tertiaryNavView, 'navigate', this._bubbleNavigate);\n\t\t\tthis.tertiaryNavRegion.show(this.tertiaryNavView);\n\n\t\t\tthis.mainView = new MainView({user_has_lent: options.user_has_lent});\n\t\t\tthis.listenTo(this.mainView, 'delete', this._bubbleDelete);\n\t\t\tthis.listenTo(this.mainView, 'page-change', this._bubblePageChange);\n\t\t\tthis.listenTo(this.mainView, 'send', this._bubbleSend);\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Messages/MessagesView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, _ = require('underscore')\n\t\t, LoansView = require('components/Portfolio/LoansView')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.pageWrap'\n\n\t\t, resetTeam: function(loan_id) {\n\t\t\tthis.loansView.resetTeam(loan_id);\n\t\t}\n\n\t\t, setCountries: function(countries) {\n\t\t\tthis.loansView.setCountries(countries);\n\t\t}\n\n\t\t, setLoans: function(loans, loan_count, current_page, num_pages) {\n\t\t\tthis.loansView.setLoans(loans, loan_count, current_page, num_pages);\n\t\t}\n\n\t\t, setLoading: function(loading) {\n\t\t\tthis.loansView.setLoading(loading);\n\t\t}\n\n\t\t, setPartners: function(partners) {\n\t\t\tthis.loansView.setPartners(partners);\n\t\t}\n\n\t\t, _bubbleTeamAssign: function(loan_id, team_id) {\n\t\t\tthis.trigger('team-assign', loan_id, team_id);\n\t\t}\n\n\t\t, _bubbleFilterChange : function(name, value) {\n\t\t\tthis.trigger('filter-change', name, value);\n\t\t}\n\n\t\t, _bubbleFilterClear : function() {\n\t\t\tthis.trigger('filter-clear');\n\t\t}\n\n\t\t, _bubbleExportLoanData: function() {\n\t\t\tthis.trigger('export-loan-data');\n\t\t}\n\n\t\t, _bubblePageChange: function(page) {\n\t\t\tthis.trigger('page-change', page);\n\t\t}\n\n\t\t, initialize: function (options) {\n\t\t\tthis.loansView = new LoansView(_.extend(options, {el: '.loans-section'}));\n\t\t\tthis.loansView.render();\n\n\t\t\tthis.listenTo(this.loansView, 'team-assign', this._bubbleTeamAssign);\n\t\t\tthis.listenTo(this.loansView, 'filter-change', this._bubbleFilterChange);\n\t\t\tthis.listenTo(this.loansView, 'filter-clear', this._bubbleFilterClear);\n\t\t\tthis.listenTo(this.loansView, 'export-loan-data', this._bubbleExportLoanData);\n\t\t\tthis.listenTo(this.loansView, 'page-change', this._bubblePageChange);\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Portfolio/PortfolioView.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t, Backbone = require('backbone')\n\t, uri = require('simpleUri')\n\t, Dropdown = require('dropdown');\n\n\treturn Backbone.View.extend({\n\n\t\tel: '.Account_AccountNavSubView'\n\n\t\t, events: {\n\t\t\t'click a': 'handleLinkClick'\n\t\t}\n\n\n\t\t, handleLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar href = event.target.href;\n\t\t\tvar actionName = wwwApp.router.appRoutes[uri(href).path.slice(1)];\n\n\t\t\t// Internal, client-side redirect if the action exists on the current router\n\t\t\tif (actionName) {\n\t\t\t\twwwApp.redirect('settings', actionName);\n\t\t\t} else {\n\t\t\t\t// External, request the new page from the server\n\t\t\t\turi(href).load();\n\t\t\t}\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Model} model\n\t\t * @param {Array} breadcrumbs\n\t\t */\n\t\t, handleBreadcrumbChange: function (model, breadcrumbs) {\n\t\t\tif ($.isArray(breadcrumbs)) {\n\t\t\t\tthis.dropdown.urHere(breadcrumbs.pop());\n\t\t\t}\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\tthis.dropdown = new Dropdown(this.$('.dropdownNav'));\n\n\t\t\tthis.listenTo(wwwApp.conf, 'change:breadcrumb', this.handleBreadcrumbChange);\n\t\t}\n\t});\n\n});\n\n\n// WEBPACK FOOTER //\n// ./views/views/Account/AccountNavSubView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette');\n\n\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.settingsBody'\n\n\t\t, regions: {\n\t\t\tsidebarRegion: '.sidebarRegion'\n\t\t\t, mainContentRegion: '.mainContentRegion'\n\t\t}\n\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/views/Settings/SettingsView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, TeamActivityViewStache = require('hgn!./TeamActivityView.mustache')\n\t\t, TeamActivitiesFeedView = require('components/Team/TeamActivity/TeamActivityFeedView')\n\t\t, TeamActivityMyTeamsView = require('components/Team/TeamActivity/TeamActivityMyTeamsView');\n\n\n\treturn Marionette.LayoutView.extend({\n\t\tregions: {\n\t\t\tfeedRegion: '.teamActivityFeedRegion'\n\t\t\t, asideRegion: '.teamActivityAsideRegion'\n\t\t}\n\n\n\t\t, template: TeamActivityViewStache\n\n\n\t\t, serializeData: function () {\n\t\t\treturn {\n\t\t\t\thasTeams: this.myTeamsCollection.size()\n\t\t\t\t, teamCollageImgSrc: wwwApp.staticUrl('views/Team/img/team-collage.jpg')\n\t\t\t\t, exploreTeamsHref: wwwApp.url('ui', 'teams')\n\t\t\t};\n\t\t}\n\n\n\t\t, onRender: function () {\n\t\t\tif (this.myTeamsCollection && this.myTeamsCollection.size()) {\n\t\t\t\tthis.renderTeamActivityMyTeamsView();\n\t\t\t}\n\n\t\t\tif (this.activitiesCollection && this.activitiesCollection.size()) {\n\t\t\t\tthis.renderTeamActivitiesFeedView();\n\t\t\t}\n\t\t}\n\n\n\t\t, renderTeamActivityMyTeamsView: function () {\n\t\t\tvar teamActivityMyTeamsView = new TeamActivityMyTeamsView({\n\t\t\t\tcollection: this.myTeamsCollection\n\t\t\t});\n\n\t\t\tthis.asideRegion.show(teamActivityMyTeamsView);\n\t\t}\n\n\n\t\t, renderTeamActivitiesFeedView: function () {\n\t\t\tvar teamActivitiesFeedView = new TeamActivitiesFeedView({\n\t\t\t\tcollection: this.activitiesCollection\n\t\t\t});\n\n\t\t\tthis.feedRegion.show(teamActivitiesFeedView);\n\t\t}\n\n\n\t\t, initialize: function (options) {\n\t\t\tthis.myTeamsCollection = options.myTeamsCollection;\n\t\t\tthis.activitiesCollection = options.activitiesCollection;\n\t\t}\n\n\n\t\t//\n\t\t///**\n\t\t// *\n\t\t// * @param {Backbone.Siren.Collection} myTeamsCollection\n\t\t// */\n\t\t//, handleMyTeamsRequestDone: function (myTeamsCollection) {\n\t\t//\tthis.myTeamsCollection = myTeamsCollection;\n\t\t//\tif (myTeamsCollection && myTeamsCollection.size()) {\n\t\t//\t\tthis.renderTeamActivityMyTeamsView();\n\t\t//\t}\n\t\t//}\n\t\t//\n\t\t//\n\t\t///**\n\t\t// *\n\t\t// * @param {Backbone.Siren.Collection} activitiesCollection\n\t\t// */\n\t\t//, handleActivitiesRequestDone: function (activitiesCollection) {\n\t\t//\tthis.activitiesCollection = activitiesCollection;\n\t\t//\tif (activitiesCollection && activitiesCollection.size()) {\n\t\t//\t\tthis.renderTeamActivitiesFeedView();\n\t\t//\t}\n\t\t//}\n\t\t//\n\t\t//\n\t\t//, initialize: function (options) {\n\t\t//\t_.bindAll(this,\n\t\t//\t\t'handleMyTeamsRequestDone'\n\t\t//\t\t, 'handleActivitiesRequestDone'\n\t\t//\t);\n\t\t//\n\t\t//\toptions.myTeamsRequest.done(this.handleMyTeamsRequestDone);\n\t\t//\toptions.activitiesRequest.done(this.handleActivitiesRequestDone);\n\t\t//}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Team/TeamActivityView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, ResultsView = require('components/Trustee/ResultsView')\n\t\t, FiltersView = require('components/Trustee/FiltersView')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.mainWrapper'\n\n\t\t, template: require('hgn!patterns/02-organisms/06-trustees/03-trustee-listing')\n\n\t\t, regions: {\n\t\t\tresultsRegion: '.trustee-results-region',\n\t\t\tfiltersRegion: '.trustee-filters-region'\n\t\t}\n\n\t\t, updateResults: function(trustees, total_count, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tif (!this.resultsRegion.hasView()) {\n\t\t\t\tthis.resultsRegion.show(this.resultsView);\n\t\t\t}\n\t\t\tthis.resultsView.updateResults(trustees, total_count, enable_previous, enable_next, enable_first, enable_last);\n\t\t}\n\t\t, updateFilters: function(filters) {\n\t\t\t// no need to check for view presence, because .show is done in initialize, not a network callback.\n\t\t\tthis.filtersView.updateFilters(filters);\n\t\t}\n\t\t, _bubbleFilterChange : function(attrName, attrValue) {\n\t\t\t// console.log(['filter-change',attrName,attrValue]);\n\t\t\tthis.trigger('filter-change',attrName,attrValue);\n\t\t}\n\t\t, _bubblePrevious : function() {\n\t\t\tthis.trigger('result-previous');\n\t\t}\n\t\t, _bubbleNext : function() {\n\t\t\tthis.trigger('result-next');\n\t\t}\n\t\t, _bubbleFirst : function() {\n\t\t\tthis.trigger('result-first');\n\t\t}\n\t\t, _bubbleLast : function() {\n\t\t\tthis.trigger('result-last');\n\t\t}\n\t\t, serializeData: function() {\n\t\t\treturn this.initOptions.moduleData.context;\n\t\t}\n\t\t, initialize: function (options) {\n\n\t\t\tthis.initOptions = options;\n\n\t\t\tthis.resultsView = new ResultsView();\n\t\t\tthis.filtersView = new FiltersView();\n\n\t\t\tthis.listenTo(this.resultsView, 'previous', this._bubblePrevious);\n\t\t\tthis.listenTo(this.resultsView, 'next', this._bubbleNext);\n\t\t\tthis.listenTo(this.resultsView, 'first', this._bubbleFirst);\n\t\t\tthis.listenTo(this.resultsView, 'last', this._bubbleLast);\n\n\t\t\tthis.listenTo(this.filtersView, 'filter-change', this._bubbleFilterChange);\n\n\t\t\tthis.render();\n\t\t\tthis.filtersRegion.show(this.filtersView);\n\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Trustee/TrusteeListingView.js","/*tombstone inserted 2018-08-08*/ try { /*global tombstone*/ tombstone('/sites/www_kiva/client/src/views/views/Account/AccountView.js'); } catch(e) {}\ndefine(function (require) {\n\t'use strict';\n\n\n\tvar Backbone = require('backbone')\n\t, Dropdown = require('dropdown');\n\n\n\treturn Backbone.View.extend({\n\t\tinitialize: function () {\n\t\t\tthis.dropdown = new Dropdown('#topSecondaryNav');\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/views/Account/AccountView.js","define(function (require){\n\t'use strict';\n\n\tvar $ = require('jquery');\n\n\tfunction initLoanConditionsSubView() {\n\t\t$('.siteHeader').hide();\n\t\tif (($('.policyExceptionText').text()) && ($('.restrictedText').text())) {\n\t\t\t$('.policyExceptionBar').css('top', '0px');\n\t\t\t$('.restrictedLoanBar').css('top', '20px');\n\t\t\t$('.loanInfoContainer').css('top', '40px');\n\t\t\t$('.loanEditorBar').css('top', '145px');\n\t\t} else if ($('.policyExceptionText').text()) {\n\t\t\t$('.policyExceptionBar').css('top', '0px');\n\t\t\t$('.loanInfoContainer').css('top', '20px');\n\t\t\t$('.loanEditorBar').css('top', '125px');\n\t\t} else if ($('.restrictedLoanText').text()) {\n\t\t\t$('.restrictedLoanBar').css('top', '0px');\n\t\t\t$('.loanInfoContainer').css('top', '20px');\n\t\t\t$('.loanEditorBar').css('top', '125px');\n\t\t} else {\n\t\t\t$('.loanInfoContainer').css('top', '0px');\n\t\t\t$('.loanEditorBar').css('top', '105px');\n\t\t}\n\n\t}\n\n\treturn {\n\t\tinit: initLoanConditionsSubView\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// /kiva/httpdocs/views/Loan/LoanConditionsSubView.js","/*global wwwApp*/\n/* jshint maxstatements: 68 */\n/* jshint maxcomplexity: 16 */\ndefine(function (require){\n\t'use strict';\n\n\tvar $ = require('kvjQuery');\n\t//It's not best practices to use viewData as a class gobal, but its better than the window global Loan_LoanEditorBarSubView\n\tvar viewData;\n\n\t// set cursor position e.g., $('#id').setCursorPosition(0);\n\t$.fn.setCursorPosition = function (pos) {\n\t\tthis.each(function (index, elem) {\n\t\t\tif (elem.setSelectionRange && $(elem).is(':visible')) {\n\t\t\t\telem.focus();\n\t\t\t\telem.setSelectionRange(pos, pos);\n\t\t\t} else if (elem.createTextRange) {\n\t\t\t\tvar range = elem.createTextRange();\n\t\t\t\trange.collapse(true);\n\t\t\t\trange.moveEnd('character', pos);\n\t\t\t\trange.moveStart('character', pos);\n\t\t\t\trange.select();\n\t\t\t}\n\t\t});\n\t\treturn this;\n\t};\n\n\tfunction showEditBoxes() {\n\t\tvar exposeExcerptHtml = $('.loanExposeExcerptOverlayWrapper').html();\n\t\tvar exposeDescriptionHtml = $('.loanExposeDescriptionOverlayWrapper').html();\n\t\t$('.loan-use').before(exposeExcerptHtml);\n\t\tif (viewData.language == 'English') {\n\t\t\t$('.loan-description').before(exposeDescriptionHtml);\n\t\t\t$('.loan-description').addClass('editorOverlay');\n\t\t} else {\n\t\t\t$('#ac-translation-body').before(exposeDescriptionHtml);\n\t\t\t$('#ac-translation-body').addClass('editorOverlay');\n\t\t}\n\t\t$('.loan-use').addClass('editorOverlay');\n\t\t$('.loanExpose').show();\n\t\tif($('.loan-story .ac-title').attr('aria-expanded') === 'false') {\n\t\t\t$('.loan-story h2').click();\n\t\t}\n\t\tif($('.loan-description').html()) {\n\t\t\t$('.loan-description').html($('.loan-description').html().trim());\n\t\t}\n\t}\n\n\tfunction hideEditBoxes() {\n\t\t$('.loanExpose').hide();\n\t\t$('#ac-translation-body').show();\n\t}\n\n\tfunction toggleExposeOverlay() {\n\t\t$('.loanExposeOverlay').toggle();\n\t\t$('.loan-use').toggleClass('editorOverlay');\n\t\tif (viewData.language == 'English') {\n\t\t\t$('.loan-description').toggleClass('editorOverlay');\n\t\t} else {\n\t\t\t$('#ac-translation-body').toggleClass('editorOverlay');\n\t\t\t$('#ac-translation-body').css('display', 'block');\n\t\t}\n\t\tif ($('.overlayToggleLink a').html() == 'hide overlay') {\n\t\t\t$('.overlayToggleLink a').html('show overlay');\n\t\t\t$('.businessFig img').removeClass('editorOverlay');\n\t\t} else {\n\t\t\t$('.overlayToggleLink a').html('hide overlay');\n\t\t\t$('.businessFig img').addClass('editorOverlay');\n\t\t}\n\t}\n\n\tfunction handleEditorClicked() {\n\t\tvar html = $(this).html();\n\t\tviewData.timer = window.setInterval(handleSave, 60000);\n\t\thtml = html.replace(/
        /gm, '\\n').trim();\n\t\t$(this).html(html);\n\t\tvar text = $(this).text().trim();\n\t\t$('.loanExpose,.editorOverlay,#ac-previous-loan-details-body').addClass('moveToBack');\n\t\tif ($(this).is('#ac-translation-body') || $(this).hasClass('loan-description')) {\n\t\t\tviewData.field = 'body';\n\t\t\t$('.loanExpose, .loan-description, #ac-translation-body').hide();\n\t\t\t$('.loanEditBox').show();\n\t\t\tif($.trim('.bodyEnglishText')) {\n\t\t\t\t$('.bodyText').text(text);\n\t\t\t}\n\t\t} else if ($(this).hasClass('loan-use')) {\n\t\t\t$('.loanExpose, .loan-use').hide();\n\t\t\t$('.useEditBox').show();\n\t\t\ttext = text.replace(viewData.loan_use_text, '');\n\t\t\tif($.trim('.useText')) {\n\t\t\t\t$('.useText').text(text);\n\t\t\t}\n\t\t\tviewData.field = 'field_loan_use';\n\t\t}\n\t\t$('.minMaxButton').click(minMax);\n\t\t$('.cancelClose').click(cancelClose);\n\t\t$('.editorSave').click(handleSaveClicked);\n\t\t$('.editorEnglishText').keyup(characterCount);\n\t\t$('.editorEnglishText').setCursorPosition(0);\n\t\t$('.loan-story .ac-title').css('height', 'auto');\n\t\t$('#ac-loan-story-body').css('height', 'auto');\n\t}\n\n\tfunction handleSaveClicked() {\n\t\t// before we do anything let's reset the timer\n\t\tclearInterval(viewData.timer);\n\t\tviewData.timer = window.setInterval(handleSave, 60000);\n\n\t\thandleSave();\n\t\tif($(this).hasClass('editorClose')) {\n\t\t\tcancelClose();\n\t\t}\n\t}\n\n\tfunction handleSave() {\n\t\tvar text;\n\t\tvar field = viewData.field;\n\t\t$('.lastSaved').addClass('bold');\n\t\t$('.lastSaved').text('Saving...').slideDown('fast');\n\t\tdisableNextStepButton();\n\t\tif (field == 'body') {\n\t\t\ttext = $('.bodyText').val().trim();\n\t\t\tif (viewData.language == 'English') {\n\t\t\t\t$('.loan-description').text(text);\n\t\t\t} else {\n\t\t\t\t$('#ac-translation-body').text(text);\n\t\t\t}\n\t\t} else if (field == 'field_loan_use') {\n\t\t\ttext = $('.useText').val().trim();\n\t\t\t$('.loan-use').html('

        ' + viewData.loan_use_text + ' ' + text + '

        ');\n\t\t}\n\t\t// send text to the cms along with business id\n\t\tsendToCMS(field, text);\n\t}\n\n\tfunction handleIssueAutoSave() {\n\t\tlocalStorage.setItem('issue_text_' + viewData.id , $('.issueCommentText').val());\n\t\tlocalStorage.setItem('issue_code_' + viewData.id, $('[name=reportIssue]').val());\n\t}\n\n\tfunction handleReportIssueSelected() {\n\t\tvar issue;\n\t\tif (!$(this).hasClass('issueLink')) {\n\t\t\tissue = viewData.issues[$(this).val()];\n\t\t} else {\n\t\t\tissue = $(this).text();\n\t\t}\n\t\tif ($(this).val() === '0') {\n\t\t\t$('.nextStepLink button').html('Submit without Issue');\n\t\t} else {\n\t\t\t$('#selectIssue').foundation('reveal','open');\n\t\t\tvar localIssueText = localStorage.getItem('issue_text_' + viewData.id);\n\t\t\tif ($(this).val() != 'Other' && viewData.issue_text === '' && !localIssueText) {\n\t\t\t\t$('.issueComments').hide();\n\t\t\t\t$('.addIssueComments').show();\n\t\t\t} else {\n\t\t\t\t$('.issueComments').show();\n\t\t\t\t$('.addIssueComments').hide();\n\t\t\t}\n\t\t\tif (localIssueText) {\n\t\t\t\t$('.issueCommentText').val(localIssueText);\n\t\t\t} else if (viewData.issue_text !== '') {\n\t\t\t\t$('.issueCommentText').val(viewData.issue_text);\n\t\t\t}\n\t\t\t$('.issueName').text($(this).val());\n\t\t\t$('.issueDesc').text(issue);\n\t\t\t$('.reportIssueButton').click(issue, submitReportIssueClosure(true));\n\t\t}\n\t}\n\n\tfunction commentReportIssue(e) {\n\t\te.preventDefault();\n\t\t$('.addIssueComments').hide();\n\t\t$('.issueComments').show();\n\t}\n\n\tfunction submitReportIssueClosure(changeSubmitButton) {\n\t\treturn function (event) {\n\t\t\tsubmitReportIssue(event,changeSubmitButton);\n\t\t};\n\t}\n\n\tfunction submitReportIssue(event, changeSubmitButton) {\n\t\tvar issue = event.data;\n\t\tviewData.issue_text = $('.issueCommentText').val();\n\t\tif (changeSubmitButton) {\n\t\t\t$('.nextStepLink button').html('Submit with Issue');\n\t\t}\n\t\t$('.deleteIssueButton').show();\n\t\t$('.reportIssue a.issueLink').remove();\n\t\t$('.reportIssue').append('' + issue + '');\n\t\t$('.reportIssue select').hide();\n\t\thandleIssueAutoSave();\n\t\t$('.reportIssue .issueLink').click(handleReportIssueSelected);\n\t}\n\n\tfunction cancelReportIssue() {\n\t\tvar localIssueText = localStorage.getItem('issue_text_' + viewData.id);\n\t\tvar issueText = viewData.issue_text;\n\n\t\tif ((issueText === null || issueText === undefined) && (localIssueText === null || localIssueText === undefined)) {\n\t\t\t$('.reportIssue select').show();\n\t\t\t$('.reportIssue select').val(0);\n\t\t}\n\t}\n\n\tfunction deleteReportIssue() {\n\t\t$('.issueCommentText').val(null);\n\t\tviewData.issue_text = null;\n\t\t$('.reportIssue select').show();\n\t\t$('.reportIssue select').val(0);\n\t\t$('.nextStepLink button').html('Submit without Issue');\n\t\t$('.reportIssue a.issueLink').remove();\n\t\t$('.deleteIssueButton').hide();\n\t\tlocalStorage.clear();\n\t}\n\n\tfunction sendToCMS(field, text) {\n\t\t// @todo make this a library function instead\n\t\tvar fields = {\n\t\t\t'nid': viewData.nid,\n\t\t\t'type': 'business',\n\t\t\t'language': 'en',\n\t\t\t'hash': viewData.hash,\n\t\t\t'author': viewData.username,\n\t\t\t'nl2br': true,\n\t\t\t'fields': {\n\t\t\t\t'field_business_id': viewData.id\n\t\t\t}\n\t\t};\n\t\tfields.fields[field] = text;\n\t\tvar urlParams = $.param(fields);\n\t\t$.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: wwwApp.ajaxUrl('updateCmsContent'),\n\t\t\tdata: urlParams,\n\t\t\tdataType: 'json'\n\t\t}).done(handleResponse);\n\t}\n\n\tfunction handleResponse(data) {\n\t\tvar meridiem = 'AM';\n\t\tif (data === true) {\n\t\t\tvar d = new Date();\n\t\t\tvar hours = d.getHours();\n\t\t\tvar minutes = d.getMinutes();\n\t\t\tif (hours > 12) {\n\t\t\t\thours = hours - 12;\n\t\t\t\tmeridiem = 'PM';\n\t\t\t}\n\t\t\tif (minutes < 10) {\n\t\t\t\tminutes = '0' + minutes;\n\t\t\t}\n\t\t\t$('.lastSaved').text('Last Saved: ' + hours + ':' + minutes + ' ' + meridiem);\n\t\t\t$('.lastSaved').removeClass('error smaller bold');\n\t\t\tenableNextStepButton();\n\t\t} else if (data === false || data === null) {\n\t\t\t$('.lastSaved').text('Currently unable to save. For safe keeping we recommend copying any changes to another document');\n\t\t\t$('.lastSaved').addClass('error smaller');\n\t\t} else {\n\t\t\t$('.lastSaved').text(data);\n\t\t\t$('.lastSaved').addClass('error smaller');\n\t\t\t$('.lastSaved').css('width','250px');\n\t\t}\n\t}\n\n\tfunction goToNextStep() {\n\t\tvar issue_code = $('.reportIssue select').val(), issue_param = '', issue_text = '', assignment = '', training_business_id = '', foreign = viewData.language != 'English', ouse = viewData.original_loan_use.trim(), odesc = viewData.original_description.trim(), use, desc;\n\n\t\tif (viewData.step == 2) {\n\t\t\tuse = $('.loan-use').html().trim();\n\t\t\tif (foreign) {\n\t\t\t\tdesc = $('#ac-translation-body').html().trim();\n\t\t\t} else {\n\t\t\t\tdesc = $('.loan-description').html().trim();\n\t\t\t}\n\t\t\tif (!use || !desc || (foreign && odesc == desc) || (foreign && ouse == use)) {\n\t\t\t\t$('#noChangeWarning').foundation('reveal','open');\n\t\t\t\t$('.cancelClose').click(cancelClose);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Check to make sure user didnt leave and come back\n\t\t// In which case we still show there to be an issue but it's not set\n\t\tif ($('.reportIssue .issueLink').text()) {\n\t\t\tif (!issue_code) {\n\t\t\t\tissue_code = localStorage.getItem('issue_code_' + viewData.id);\n\t\t\t}\n\t\t\tissue_text = localStorage.getItem('issue_text_' + viewData.id);\n\t\t}\n\n\t\tif (issue_code && issue_code !== '0') {\n\t\t\tissue_param = '&issue_code=' + issue_code;\n\t\t\tissue_text = issue_text || viewData.issue_text;\n\t\t\tif (issue_text) {\n\t\t\t\tissue_param = issue_param + '&issue_text=' + encodeURIComponent(issue_text);\n\t\t\t}\n\t\t}\n\t\tif (viewData.assignment) {\n\t\t\tassignment = '&assignment=' + viewData.assignment;\n\t\t}\n\t\tif (viewData.training_business_id) {\n\t\t\ttraining_business_id = '&training_business_id=' + viewData.training_business_id;\n\t\t}\n\t\tvar nextStep = viewData.step + 1;\n\t\twindow.location.href = viewData.root_http + 'lend-classic/' + viewData.id + '?step=' + nextStep + issue_param + assignment + training_business_id;\n\t}\n\n\tfunction showSubmittedBox() {\n\t\t$('#loanSubmitted').foundation('reveal','open');\n\t\t$('.returnToAssignment').click(returnToAssignment);\n\t\t$('.grabALoan').click(grabALoan);\n\t}\n\n\tfunction handleExcerptOverlayClicked() {\n\t\t$('.loan-use').click();\n\t}\n\n\tfunction handleDescriptionOverlayClicked() {\n\t\tif (viewData.language == 'English') {\n\t\t\t$('.loan-description').click();\n\t\t} else {\n\t\t\t$('#ac-translation-body').click();\n\t\t}\n\t}\n\n\tfunction changeLoanLanguage() {\n\t\t$('#changeLanguage').foundation('reveal','open');\n\t\t$('.cancelClose').click(cancelClose);\n\t\t$('.submitChangeLanguage').click(submitChangeLoanLanguage);\n\t}\n\n\tfunction submitChangeLoanLanguage() {\n\t\tvar language = $('.changeLanguage').val();\n\t\tvar language_name = $('.changeLanguage option:selected').text();\n\t\tvar fields = {\n\t\t\t'language': language,\n\t\t\t'id': viewData.id\n\t\t};\n\t\tvar urlParams = $.param(fields);\n\t\t$.post(wwwApp.ajaxUrl('updateLoanLanguage'), urlParams, null, 'json');\n\t\t$('.editorLoanLanguage').text(language_name);\n\t\t$(this).closest('.reveal-modal').foundation('reveal','close');\n\t\treturnToAssignment();\n\t}\n\n\tfunction changeSectorActivity() {\n\t\tvar activity;\n\t\tactivity = $('[name=\"changeActivity\"]').val();\n\t\t$('[name=\"changeSector\"]').change(changeSector);\n\t\t$('[name=\"changeSector\"]').change();\n\t\t$('[name=\"changeActivity\"]').val(activity);\n\t\t$('.submitChangeSectorActivity').click(submitChangeSectorActivity);\n\n\t\t$('#sectors').foundation('reveal', 'open');\n\t}\n\n\tfunction changeSector() {\n\t\tvar sector = $(this).val();\n\t\tvar activities = $('[name=\"changeActivity\"]');\n\t\tactivities.empty();\n\t\t$.each(viewData.sector_to_activity[sector], function (key, value) {\n\t\t\tactivities.append($('').attr('value', value).text(key));\n\t\t});\n\t}\n\n\tfunction submitChangeSectorActivity() {\n\t\tvar sector = $('[name=\"changeSector\"]').val();\n\t\tvar activity = $('[name=\"changeActivity\"]').val();\n\t\tvar fields = {\n\t\t\t'sector': sector,\n\t\t\t'activity': activity,\n\t\t\t'id': viewData.id\n\t\t};\n\n\t\t//We need to pass along more fields to update the cms for training loans\n\t\tif (viewData.training_business_id) {\n\t\t\tfields = Object.assign(fields, {\n\t\t\t\t'training_business_id': viewData.training_business_id,\n\t\t\t\t'nid': viewData.nid,\n\t\t\t\t'tnid': viewData.tnid,\n\t\t\t\t'language_iso': viewData.language_iso\n\t\t\t});\n\t\t}\n\n\t\tvar urlParams = $.param(fields);\n\t\t$.post(wwwApp.ajaxUrl('updateSectorActivity'), urlParams, null, 'json');\n\t\t$('.typeName').html(viewData.activities[activity]);\n\t\t$('#sectors').foundation('reveal', 'close');\n\t}\n\n\tfunction cancelClose() {\n\t\t$(this).closest('.reveal-modal').foundation('reveal','close');\n\t\t$('.minMaxButton').unbind();\n\t\t$('.loanEditBox,.useEditBox').hide();\n\t\t$('.editorOverlay').show();\n\t\t$('.loanExpose').show();\n\t\t$('body').removeClass('noScroll');\n\t\t$('.loanExpose,.editorOverlay,#ac-previous-loan-details-body').removeClass('moveToBack');\n\t\t//These may have been hidden by the editor click, doesn't hurt to show them again\n\t\tif (viewData.step == 2) {\n\t\t\t$('.loanExpose, .loan-use').show();\n\t\t\t$('.loanExpose, .loan-description, #ac-translation-body').show();\n\t\t}\n\t\tclearInterval(viewData.timer);\n\t}\n\n\tfunction postGreatPhotoAndLikedLoan() {\n\t\t// TODO: Consider converting this function to a promise so that other actions can take place once these ajax calls complete\n\t\tvar urlParams;\n\t\tvar fields = {\n\t\t\t'checked': true,\n\t\t\t'business_id': viewData.id,\n\t\t\t'user_id': viewData.user_id\n\t\t};\n\t\tif ($('.loanGreatPhoto').is(':checked')) {\n\t\t\tfields.tag_id = 1;\n\t\t\turlParams = $.param(fields);\n\t\t\t$.post(wwwApp.ajaxUrl('addOrRemoveLoanTag'), urlParams, null, 'json');\n\t\t}\n\t\tif ($('.loanLiked').is(':checked')) {\n\t\t\tfields.tag_id = 2;\n\t\t\turlParams = $.param(fields);\n\t\t\t$.post(wwwApp.ajaxUrl('addOrRemoveLoanTag'), urlParams, null, 'json');\n\t\t}\n\t}\n\n\tfunction returnToAssignment() {\n\t\tconsole.log('return to assignment called');\n\t\t// Post Photo and/or Liked loan\n\t\tpostGreatPhotoAndLikedLoan();\n\t\t// Redirect to dashboard\n\t\twindow.setTimeout(function() {window.location.href = viewData.root_http + 'viva';}, 1500);\n\t}\n\n\tfunction grabALoan() {\n\t\t// Post Photo and/or Liked loan\n\t\tpostGreatPhotoAndLikedLoan();\n\n\t\tvar language_iso = (viewData && viewData.language_iso) ? viewData.language_iso : null;\n\t\t// Grab A loan for Review\n\t\t$.ajax({\n\t\t\turl: wwwApp.ajaxUrl('takeLoanForReview'),\n\t\t\tdataType: 'json',\n\t\t\ttype: 'GET',\n\t\t\tdata: {language_iso: language_iso},\n\t\t\tsuccess: function (result) {\n\t\t\t\t// navigate to new loan or back to dashboard if no loans are available\n\t\t\t\tif (result) {\n\t\t\t\t\tkv.tipMsg('Redirecting to your next loan.', 'info');\n\t\t\t\t\twindow.setTimeout(function() {window.location.href = result.www_url;}, 1500);\n\t\t\t\t} else {\n\t\t\t\t\tkv.tipMsg('Thank you for using Viva! We\\'re fresh out of loans for you right now. Please try again soon!', 'warning');\n\t\t\t\t\twindow.setTimeout(function() {window.location.href = '/viva';}, 3000);\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: function () {\n\t\t\t\tkv.tipMsg('Thank you for using Viva! We\\'re fresh out of loans for you right now. Please try again soon!', 'warning');\n\t\t\t\twindow.setTimeout(function() {window.location.href = '/viva';}, 3000);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction showSiteMenu() {\n\t\t$('.siteMenu').toggle();\n\t}\n\n\tfunction helpTip(){\n\t\tvar position_options = {\n\t\t\tmy: 'right bottom',\n\t\t\tat: 'right bottom',\n\t\t\toffset: '0 0',\n\t\t\tcollision: 'flip none'\n\t\t};\n\n\t\t$('.exceptionTip').each(function() {\n\t\t\t$(this).qtip({\n\t\t\t\tcontent: $(this).next('div:hidden').html(),\n\t\t\t\tposition: position_options\n\t\t\t});\n\t\t});\n\n\t\t$('.restrictedTip').qtip({\n\t\t\tcontent: $('.restrictedDescription').html(),\n\t\t\tposition: position_options\n\t\t});\n\n\t\t$('.relistedTip').qtip({\n\t\t\tcontent: $('.relistedText').html(),\n\t\t\tposition: position_options\n\t\t});\n\n\t\t$('.groupNamesTip').qtip({\n\t\t\tcontent: $('.groupNamesText').html(),\n\t\t\tposition: position_options\n\t\t});\n\t}\n\n\tfunction minMax() {\n\t\tif ($('.loanEditBox').hasClass('maxBox')) {\n\t\t\tminimizeLightbox();\n\t\t} else {\n\t\t\tmaximizeLightbox();\n\t\t}\n\t}\n\n\tfunction enableNextStepButton() {\n\t\t$('.nextStepButton').prop('disabled', false);\n\t}\n\n\tfunction disableNextStepButton() {\n\t\t$('.nextStepButton').prop('disabled', true);\n\t}\n\n\tfunction initLoanEditorBarSubView(data) {\n\t\t/* jshint maxstatements: 75 */\n\t\t/* jshint maxcomplexity: 20 */\n\t\tviewData = data || {};\n\n\t\tif (viewData.error) {\n\t\t\twwwApp.tipMsg(viewData.error, 'error');\n\t\t}\n\n\t\t//We allow step 3 even if not inactive (allowed statuses are controlled earlier)\n\t\tif (viewData.step === 3) {\n\t\t\tshowSubmittedBox();\n\t\t}\n\t\t//But don't show the rest of the display\n\t\tif (viewData.status != 'inactive') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (viewData.loan_use) {\n\t\t\tvar lastChar = viewData.loan_use.substr(-1);\n\t\t\tif (lastChar != '.') {\n\t\t\t\tviewData.loan_use = viewData.loan_use + '.';\n\t\t\t}\n\t\t\tvar loanuse_html = '

        ' + viewData.loan_use_text + ' ' + viewData.loan_use + '

        ';\n\t\t\t$('.loan-use').html(loanuse_html);\n\t\t}\n\t\t$('.loan-use').css('visibility', 'visible');\n\n\t\tif (viewData.description) {\n\t\t\tif (viewData.language == 'English') {\n\t\t\t\t$('.loan-description').html(viewData.description);\n\t\t\t} else {\n\t\t\t\t$('#ac-translation-body').html(viewData.description);\n\t\t\t\t$('.loan-description').hide();\n\t\t\t}\n\t\t}\n\t\t$('.loan-description').css('visibility', 'visible');\n\t\t$('#ac-translation-body').css('visibility', 'visible');\n\n\t\t//Disable editor button after click (page refreshes so no need to re-enable)\n\t\t$('.nextStepButton').click(disableNextStepButton);\n\t\t// uncomment below if we want to add an editor\n\t\t//$('.loan-use').addClass('cke_editable cke_editable_inline cke_contents_ltr');\n\t\t//$('#ac-translation-body').addClass('cke_editable cke_editable_inline cke_contents_ltr');\n\t\t$('.overlayToggleLink').click(toggleExposeOverlay);\n\t\t$('.nextStepLink').click(goToNextStep);\n\t\t$('.cancelClose').click(cancelClose);\n\t\t$('.reportIssue select').change(handleReportIssueSelected);\n\t\t$('.editorLoanLanguage').click(changeLoanLanguage);\n\t\t$('.editSectorActivity').click(changeSectorActivity);\n\n\t\t$('.addIssueComments').click(commentReportIssue);\n\t\t$('.deleteIssueButton').click(deleteReportIssue);\n\t\t$('.cancelIssueButton').click(cancelReportIssue);\n\n\t\t$('.reportIssueButton, .deleteIssueButton, .cancelIssueButton').click(function() {\n\t\t\t$('#selectIssue').foundation('reveal','close');\n\t\t});\n\n\t\t$('#ac-translation-body h1').remove();\n\n\t\t// move borrowers list, if it exists, as first child of story body\n\t\tif ($('#ac-loan-story-body p.borrowers-list').length ) {\n\t\t\t$('#ac-loan-story-body p.borrowers-list').prependTo('#ac-loan-story-body');\n\t\t}\n\n\t\t$('#prevLoanDetails a').attr('target', '_blank');\n\t\tif (!viewData.step || viewData.step === 1) {\n\t\t\tshowEditBoxes();\n\t\t\t$('.businessFig img').addClass('editorOverlay');\n\t\t\t$('.loanExposeOverlay').show();\n\t\t} else {\n\t\t\thideEditBoxes();\n\t\t}\n\t\tif (viewData.step < 3) {\n\t\t\t$('.translatedBy').hide();\n\t\t\t$('.loan-use').click(handleEditorClicked);\n\t\t\t$('.loan-description').click(handleEditorClicked);\n\t\t\t$('.loanExposeExcerptOverlay').click(handleExcerptOverlayClicked);\n\t\t\t$('.loanExposeDescriptionOverlay').click(handleDescriptionOverlayClicked);\n\t\t\t$('#ac-translation-body').click(handleEditorClicked);\n\t\t\t$('#loanTags').hide(); // maybe not necessary but may confuse volunteers\n\t\t\t$('.loan-description').addClass('pre');\n\t\t\t$('#ac-translation-body').addClass('pre');\n\n\t\t\tif (localStorage.getItem('issue_code_' + viewData.id)) {\n\t\t\t\t$('.reportIssue select').val(localStorage.getItem('issue_code_' + viewData.id));\n\t\t\t}\n\t\t}\n\t\tif (viewData.step === 2) {\n\t\t\tif (localStorage.getItem('issue_code_' + viewData.id)) {\n\t\t\t\tif (localStorage.getItem('issue_text_' + viewData.id)) {\n\t\t\t\t\t$('.dialogContentWrapper .loanIssueNote .issueComments .issueComment .issueCommentText').val(localStorage.getItem('issue_text_' + viewData.id));\n\t\t\t\t}\n\t\t\t\tsubmitReportIssue({'data': localStorage.getItem('issue_code_' + viewData.id)}, true);\n\t\t\t}\n\t\t}\n\n\t\thelpTip();\n\t\t$(window).scroll(helpTip);\n\n\t\t// Site menu init\n\t\tvar menuDropdown = $('.menuDropdown')\n\t\t\t, siteMenu = $('.siteMenu')\n\t\t\t, navImg = $('.navImg');\n\t\tmenuDropdown.click(showSiteMenu);\n\t\tmenuDropdown.hoverIntent({\n\t\t\tover: function () {\n\t\t\t\tsiteMenu.slideDown('fast');\n\t\t\t\tnavImg.addClass('hovered');\n\t\t\t}\n\t\t\t, out: function () {\n\t\t\t\tsiteMenu.slideUp('fast');\n\t\t\t\tnavImg.removeClass('hovered');\n\t\t\t}\n\t\t\t, timeout: 500\n\t\t});\n\n\t\tvar loan_edit_html = $('.loanEdit').html();\n\t\tvar loan_use_html = $('.useEdit').html();\n\t\t$('#ac-loan-story-body').append('
        ' + loan_edit_html + '
        ');\n\t\t$('
        ' + loan_use_html + '
        ').insertAfter('.loan-use');\n\t\t$('.loanEdit').remove();\n\t\t$('.useEdit').remove();\n\t\t$('#ac-translation-body').attr('aria-hidden', false);\n\t\t// open the accordion for more loan info by default\n\t\t$('.more-loan-info div').attr('aria-expanded', true);\n\t\t$('.more-loan-info').attr('aria-hidden', false);\n\t\t$('#ac-more-loan-info-body').css('height', '311px');\n\t}\n\n\tfunction maximizeLightbox() {\n\t\t$('.loanEditBox').removeClass('minBox');\n\t\t$('.loanEditBox').addClass('maxBox');\n\t\t$('body').addClass('noScroll');\n\t}\n\n\tfunction minimizeLightbox() {\n\t\t$('.loanEditBox').removeClass('maxBox');\n\t\t$('.loanEditBox').addClass('minBox');\n\t\t$('body').removeClass('noScroll');\n\t}\n\n\tfunction characterCount() {\n\t\tvar text_max = 100;\n\t\tvar text_length = $('.editorEnglishText').val().length;\n\t\tvar text_remaining = text_max - text_length;\n\n\t\t$('#textareaFeedback').html(text_remaining + ' characters remaining');\n\n\t\tif (text_remaining <= 0) {\n\t\t\t$('#textareaFeedback').html(text_remaining + ' characters remaining' + '
        ' +\n\t\t\t\t' Heads up: This text may be shortened on some parts of the Kiva website due to space limitations, but not ' +\n\t\t\t\t\"to worry—all of it will show up on the borrower page. Remember, don't remove any information.\"); // jshint ignore:line\n\t\t}\n\t}\n\n\treturn {\n\t\tinit: initLoanEditorBarSubView\n\t};\n\n});\n\n\n\n// WEBPACK FOOTER //\n// /kiva/httpdocs/views/Loan/LoanEditorBarSubView.js","define(function (require){\n\t'use strict';\n\n\tvar $ = require('jquery');\n\n\tfunction showNeedHelp() {\n\t\t$('.editorHelp').toggle();\n\t\t$(document).mouseup(function (e) {\n\t\t\tvar container = $('.editorHelp');\n\t\t\t// if the target of the click isn't the container or descendant...\n\t\t\tif (!container.is(e.target) && container.has(e.target).length === 0) {\n\t\t\t\tcontainer.hide();\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction init() {\n\t\t$('.editorNeedHelp').click(showNeedHelp);\n\t\t$('.entityTip').qtip({\n\t\t\tcontent: $('.entityTipText').html()\n\t\t});\n\t}\n\n\treturn {\n\t\tinit: init\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// /kiva/httpdocs/views/Loan/LoanInfoBarSubView.js","define(function (require) {\n 'use strict';\n\n var $ = require('jquery');\n\n return {\n init: function (data) {\n // Track experiment version\n $('.kvExperimentView').each(function () {\n var $el = $(this);\n var property = $el.attr('data-kv-experiment-property');\n var value = $el.attr('data-kv-experiment-value');\n\n if (property.indexOf('PortfolioMessaging.CallToAction') > -1 && value) {\n wwwApp.kvTrack.isReady.done(function () {\n // Will be either a-control, b-impactCTA, c-giftBondingCTA, or d-giftValuesCTA \n // Use the first character for tracking (e.g. 'a')\n var version = value.charAt(0);\n wwwApp.kvTrack.trackEvent('portfolio', 'EXP-ACK-306-May2022', version, undefined, true);\n });\n }\n });\n }\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Portfolio/CTASubView.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/BorrowerDashboardController')\n\t\t, Router: require('../routers/BorrowerDashboardRouter')\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/BorrowerDashboardModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/CheckoutController')\n\t\t, Router: require('../routers/CheckoutRouter')\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/CheckoutModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/LendController')\n\t\t, Router: require('../routers/LendRouter')\n\t};\n});\n\n\n// WEBPACK FOOTER //\n// ./modules/LendModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/MessagesController')\n\t\t, Router: require('../routers/MessagesRouter')\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/MessagesModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/PortfolioController')\n\t\t, Router: require('../routers/PortfolioRouter')\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/PortfolioModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/SettingsController')\n\t\t, Router: require('../routers/SettingsRouter')\n\t};\n});\n\n\n// WEBPACK FOOTER //\n// ./modules/SettingsModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/TeamActivityController')\n\t\t, Router: require('../routers/TeamActivityRouter')\n\t};\n});\n\n\n// WEBPACK FOOTER //\n// ./modules/TeamActivityModule.js","/**\n * Modules serve 1 main purpose:\n *\n * 1 - a convenient place to bring together your router + controller in one place\n *\n * Module files could easily be removed and we could just load the router file directly, however\n * I'm holding off from that for now and considering it a possible future optimization.\n *\n * All module.php files MUST go in the /ClientModule folder. This keeps module view.php files seperate from other view.php files\n * and avoids confusion.\n *\n * Modules should be seperate because they don't in themselves display a view, instead, they load the router/controllers which in turn\n * display the views.\n *\n * What if we want to render the view on the server side, but use the router only for changing subviews?\n * - Then you create a module, and give it a tpl file like any View. In other words, treat the Module just like you would a standard view.\n * - I think this keeps things nice and simple\n *\n */\n\ndefine(function (require) {\n\t'use strict';\n\n\t// Triggering events / routes / methods on the controller should be done via the application\n\t// thus, the application proxies these calls to the appropriate controller. Views and modules should not need to know\n\t// whether a controller exists\n\n\treturn {\n\t\tController: require('../controllers/TrusteeController')\n\t\t, Router: require('../routers/TrusteeRouter')\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./modules/TrusteeModule.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t, _ = require('underscore')\n\t, Marionette = require('marionette')\n\t, TeamMembersViewTpl = require('hgn!./TeamMembersView.mustache')\n\t, TeamRequestsBackgridView = require('components/Team/TeamRequest/TeamRequestsBackgridView')\n\t, TeamMembersBackgridView = require('components/Team/TeamMember/TeamMembersBackgridView');\n\n\n\treturn Marionette.LayoutView.extend({\n\t\ttemplate: TeamMembersViewTpl\n\n\t\t, el: '.mainContent'\n\n\n\t\t, regions: {\n\t\t\tteamRequestsRegion: '.teamRequestsRegion'\n\t\t\t, teamCaptainsRegion: '.teamCaptainsRegion'\n\t\t\t, teamNonCaptainsRegion: '.teamNonCaptainsRegion'\n\t\t}\n\n\n\t\t, ui: {\n\t\t\t$lenderCardPlaceholder: '.lenderCardPlaceholderWrap'\n\t\t}\n\n\n\t\t/**\n\t\t * Adds a team member to the team members collection and increments the total number of lenders on the team\n\t\t *\n\t\t * @param {Backbone.Siren.Model} teamMemberModel\n\t\t */\n\t\t, addTeamMember: function (teamMemberModel) {\n\t\t\tvar self = this;\n\n\t\t\tthis.teamMembersPromise.done(function () {\n\t\t\t\tif (teamMemberModel.get('isCaptain')) {\n\t\t\t\t\tself.addCaptain(teamMemberModel);\n\t\t\t\t} else {\n\t\t\t\t\tself.addNonCaptain(teamMemberModel);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.teamRequest.done(function (teamModel) {\n\t\t\t\tteamModel.set('lenderCount', teamModel.get('lenderCount') + 1);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Decrements the total number of lenders on the team\n\t\t *\n\t\t */\n\t\t, decLenderCount: function () {\n\t\t\tthis.teamRequest.done(function (teamModel) {\n\t\t\t\tteamModel.set('lenderCount', teamModel.get('lenderCount') - 1);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Adds a team member to the non-captains collection\n\t\t *\n\t\t * @param {Backbone.Siren.Model} teamMemberModel\n\t\t */\n\t\t, addNonCaptain: function (teamMemberModel) {\n\t\t\tvar self = this;\n\n\t\t\tthis.renderTeamNonCaptainsPromise.done(function () {\n\t\t\t\tself.teamNonCaptainsRegion.currentView.addTeamMember(teamMemberModel);\n\n\t\t\t\t// Show the region in case it was previously hidden.\n\t\t\t\tself.teamNonCaptainsRegion.$el.show();\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Adds a team member to the captains collection\n\t\t *\n\t\t * @param {Backbone.Siren.Model} teamMemberModel\n\t\t */\n\t\t, addCaptain: function (teamMemberModel) {\n\t\t\tvar self = this;\n\n\t\t\tthis.renderTeamCaptainsPromise.done(function () {\n\t\t\t\tself.teamCaptainsRegion.currentView.addTeamMember(teamMemberModel);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Is the logged in user a member of the given team?\n\t\t *\n\t\t * @param teamCollection\n\t\t * @returns {Boolean}\n\t\t */\n\t\t, loggedInUserIsTeamMember: function (teamCollection) {\n\t\t\treturn !!teamCollection.link('me');\n\t\t}\n\n\n\t\t/**\n\t\t * A generic jqXhr error handler\n\t\t *\n\t\t * @param error\n\t\t */\n\t\t, handleGenericFail: function (error, jqXhr) {\n\t\t\tif (jqXhr.status === 0) {\n\t\t\t\t// status is the http status code.\n\t\t\t\t// 0 means the request was cancelled. The user probably refreshed the page.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twwwApp.tipMsg('There was an error. Please refresh and try again', {type: 'info', autoClose: true});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Siren.Model} teamModel\n\t\t */\n\t\t, handleResolveTeamDone: function (teamModel) {\n\t\t\tthis.teamModel = teamModel;\n\n\t\t\tthis.listenTo(teamModel, 'change:lenderCount', function (model, val) {\n\t\t\t\tif (val < 0) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\n\t\t\t\t$('.numMembersTabbedNavItem').html(val);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Siren.Collection} teamNonCaptainsCollection\n\t\t */\n\t\t, handleResolveTeamNonCaptainsDone: function (teamNonCaptainsCollection) {\n\t\t\tthis.teamNonCaptainsCollection = teamNonCaptainsCollection;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Siren.Collection} teamRequestsCollection\n\t\t */\n\t\t, handleResolveTeamRequestsDone: function (teamRequestsCollection) {\n\t\t\tthis.teamRequestsCollection = teamRequestsCollection;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Siren.Collection} teamMembersCollection\n\t\t */\n\t\t, handleTeamMembersDone: function (teamMembersCollection) {\n\t\t\tthis.listenTo(teamMembersCollection, 'destroy', function () {\n\t\t\t\tthis.decLenderCount();\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Siren.Collection} teamCaptainsCollection\n\t\t */\n\t\t, handleResolveTeamCaptainsDone: function (teamCaptainsCollection) {\n\t\t\tthis.teamCaptainsCollection = teamCaptainsCollection;\n\n\t\t\t// Also keep a reference to the entire teamMembersCollection\n\t\t\tthis.teamMembersPromise.resolve(wwwApp.siren.store.get(teamCaptainsCollection.url()));\n\t\t}\n\n\n\t\t/**\n\t\t * Renders the team requests View\n\t\t */\n\t\t, renderTeamRequests: function () {\n\t\t\tvar self = this;\n\n\t\t\t// Make sure the tables render in order from top to bottom for a better ux.\n\t\t\t// First, render the teamRequests\n\t\t\treturn this.teamRequestsDataReady\n\t\t\t\t.done(function () {\n\t\t\t\t\tvar teamRequestsBackgridView;\n\n\t\t\t\t\tif (self.teamRequestsCollection && self.teamRequestsCollection.size() > 0) {\n\t\t\t\t\t\tteamRequestsBackgridView = new TeamRequestsBackgridView({\n\t\t\t\t\t\t\tteamRequestsCollection: self.teamRequestsCollection\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tself.teamRequestsRegion.show(teamRequestsBackgridView);\n\n\t\t\t\t\t\t// Hide the team requests grid.\n\t\t\t\t\t\tself.listenTo(teamRequestsBackgridView.teamRequestsCollection, 'remove', function () {\n\t\t\t\t\t\t\tif (teamRequestsBackgridView.teamRequestsCollection.isEmpty()) {\n\t\t\t\t\t\t\t\tself.teamRequestsRegion.$el.hide();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.teamRequestsRegion._ensureElement();\n\t\t\t\t\t\tself.teamRequestsRegion.$el.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Renders the team captains View\n\t\t *\n\t\t */\n\t\t, renderTeamCaptains: function () {\n\t\t\tvar self = this;\n\n\t\t\treturn this.teamCaptainsDataReady\n\t\t\t\t.then(function () {\n\t\t\t\t\tvar teamCaptainsCollection = self.teamCaptainsCollection\n\t\t\t\t\t, teamCaptainsBackgridView = new TeamMembersBackgridView({\n\t\t\t\t\t\ttitle: 'Captains'\n\t\t\t\t\t\t, teamMembersCollection: teamCaptainsCollection\n\t\t\t\t\t\t, name: 'teamCaptains'\n\t\t\t\t\t\t, isSearchEnabled: false\n\t\t\t\t\t\t, baseParams: {is_captain: 'yes'}\n\t\t\t\t\t\t, memberFilter: {\n\t\t\t\t\t\t\tisCaptain: true\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tself.teamCaptainsRegion.show(teamCaptainsBackgridView);\n\n\t\t\t\t\tself.listenTo(teamCaptainsBackgridView.teamMembersCollection, 'change:isCaptain', function (teamMemberModel, isCaptain) {\n\t\t\t\t\t\t// The individual backgrid view takes care of removing the teamMemberModel from the old collection\n\t\t\t\t\t\t// We just need to add it to the new one...\n\t\t\t\t\t\tif (! isCaptain) {\n\t\t\t\t\t\t\tthis.addNonCaptain(teamMemberModel);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Render the \"non-captains\" View\n\t\t *\n\t\t */\n\t\t, renderTeamNonCaptains: function () {\n\t\t\tvar self = this;\n\n\t\t\t// Last, render the teamNonCaptains\n\t\t\treturn this.teamNonCaptainsDataReady\n\t\t\t\t.then(function () {\n\t\t\t\t\tvar teamNonCaptainsCollection = self.teamNonCaptainsCollection\n\t\t\t\t\t, teamNonCaptainsBackgridView = new TeamMembersBackgridView({\n\t\t\t\t\t\ttitle: 'Members'\n\t\t\t\t\t\t, teamMembersCollection: teamNonCaptainsCollection\n\t\t\t\t\t\t, name: 'teamNonCaptains'\n\t\t\t\t\t\t, isSearchEnabled: true\n\t\t\t\t\t\t, baseParams: {is_captain: 'no'}\n\t\t\t\t\t\t, memberFilter: {\n\t\t\t\t\t\t\tisCaptain: false\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// Hide the region if there are no nonCaptains\n\t\t\t\t\tif (self.teamNonCaptainsCollection.isEmpty()) {\n\t\t\t\t\t\tself.teamNonCaptainsRegion._ensureElement();\n\t\t\t\t\t\tself.teamNonCaptainsRegion.$el.hide();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add the view and have it ready in case we add nonCaptains later...\n\t\t\t\t\tself.teamNonCaptainsRegion.show(teamNonCaptainsBackgridView);\n\n\t\t\t\t\tself.listenTo(teamNonCaptainsBackgridView.teamMembersCollection, 'change:isCaptain', function (teamMemberModel, isCaptain) {\n\t\t\t\t\t\t// The individual backgrid view takes care of removing the teamMemberModel from the old collection\n\t\t\t\t\t\t// We just need to add it to the new one...\n\t\t\t\t\t\tif (isCaptain) {\n\t\t\t\t\t\t\tthis.addCaptain(teamMemberModel);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// Hide/show the team non-captains grid.\n\t\t\t\t\tself.listenTo(teamNonCaptainsBackgridView.teamMembersCollection, 'remove add', function () {\n\t\t\t\t\t\tif (teamNonCaptainsBackgridView.teamMembersCollection.isEmpty()) {\n\t\t\t\t\t\t\tself.teamNonCaptainsRegion.$el.hide();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.teamNonCaptainsRegion.$el.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Resolves the team model for the current team.\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\t, resolveTeam: function () {\n\t\t\treturn wwwApp.siren.resolve('team/' + this.model.get('team_id'));\n\t\t}\n\n\n\t\t/**\n\t\t * Resolves the team requests collection, if there is one.\n\t\t *\n\t\t * @param {Backbone.Siren.Model} teamModel\n\t\t */\n\t\t, resolveTeamRequests: function (teamModel) {\n\t\t\tvar teamRequests;\n\n\t\t\tif (teamModel) {\n\t\t\t\tteamRequests = teamModel.get('teamRequests');\n\t\t\t}\n\n\t\t\tif (teamRequests) {\n\t\t\t\treturn teamRequests.resolve();\n\t\t\t} else {\n\t\t\t\treturn new $.Deferred().resolve(null);\n\t\t\t}\n\t\t}\n\n\n\t\t/**\n\t\t * Resolves the team captains collection for the current team.\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\t, resolveTeamCaptains: function () {\n\t\t\treturn wwwApp.siren.resolve('team/' + this.model.get('team_id') + '/members?is_captain=yes');\n\t\t}\n\n\n\t\t/**\n\t\t * Resolves the non-captains collection for the current team.\n\t\t *\n\t\t * @returns {Promise}\n\t\t */\n\t\t, resolveTeamNonCaptains: function () {\n\t\t\treturn wwwApp.siren.resolve('team/' + this.model.get('team_id') + '/members?is_captain=no');\n\t\t}\n\n\n\t\t/**\n\t\t * Resolves the various endpoints that we need for rendering.\n\t\t *\n\t\t */\n\t\t, resolveEntities: function () {\n\t\t\tthis.teamRequest = this.resolveTeam()\n\t\t\t\t.done(this.handleResolveTeamDone)\n\t\t\t\t.fail(this.handleGenericFail);\n\n\t\t\tthis.teamCaptainsRequest = this.resolveTeamCaptains()\n\t\t\t\t.done(this.handleResolveTeamCaptainsDone)\n\t\t\t\t.fail(this.handleGenericFail);\n\n\t\t\tthis.teamNonCaptainsRequest = this.resolveTeamNonCaptains()\n\t\t\t\t.done(this.handleResolveTeamNonCaptainsDone)\n\t\t\t\t.fail(this.handleGenericFail);\n\n\t\t\t// Create our own deferred for the teamMembers collection\n\t\t\tthis.teamMembersPromise = new $.Deferred();\n\t\t\tthis.teamMembersPromise.done(this.handleTeamMembersDone);\n\n\t\t\tthis.teamRequestsRequest = this.teamRequest\n\t\t\t\t.then(this.resolveTeamRequests)\n\t\t\t\t\t.done(this.handleResolveTeamRequestsDone)\n\t\t\t\t\t.fail(this.handleGenericFail);\n\n\t\t\t// Set ready states for each section\n\t\t\tthis.teamRequestsDataReady = $.when(this.teamRequest, this.teamRequestsRequest);\n\t\t\tthis.teamCaptainsDataReady = $.when(this.teamRequest, this.teamRequestsRequest, this.teamCaptainsRequest);\n\t\t\tthis.teamNonCaptainsDataReady = $.when(this.teamRequest, this.teamRequestsRequest, this.teamCaptainsRequest, this.teamNonCaptainsRequest);\n\t\t}\n\n\n\t\t/**\n\t\t * A callback. Automatically called after the view has rendered.\n\t\t *\n\t\t * @returns {Backbone.View}\n\t\t */\n\t\t, onRender: function () {\n\t\t\tthis.renderTeamRequests();\n\t\t\tthis.renderTeamCaptainsPromise = this.renderTeamCaptains();\n\t\t\tthis.renderTeamNonCaptainsPromise = this.renderTeamNonCaptains();\n\t\t\treturn this;\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\t_.bindAll(this\n\t\t\t\t, 'renderTeamRequests'\n\t\t\t\t, 'renderTeamCaptains'\n\t\t\t\t, 'renderTeamNonCaptains'\n\t\t\t\t, 'resolveTeamRequests'\n\t\t\t\t, 'handleResolveTeamDone'\n\t\t\t\t, 'handleResolveTeamRequestsDone'\n\t\t\t\t, 'handleResolveTeamCaptainsDone'\n\t\t\t\t, 'handleResolveTeamNonCaptainsDone'\n\t\t\t\t, 'handleTeamMembersDone'\n\t\t\t\t, 'addNonCaptain'\n\t\t\t\t, 'addTeamMember'\n\t\t\t);\n\n\t\t\t// Use wreqr.EventAggregator to listen on events that were fired on the application\n\t\t\twwwApp.on('addTeamMember', this.addTeamMember);\n\t\t\twwwApp.on('removeTeamMember', this.decLenderCount);\n\n\t\t\tthis.resolveEntities();\n\t\t\tthis.render();\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/views/Community/Team/TeamMembersView.js","/*tombstone inserted 2018-08-08*/ try { /*global tombstone*/ tombstone('/sites/www_kiva/client/src/views/views/Portfolio/CollectionView.js'); } catch(e) {}\ndefine(function(require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t, AccountView = require('views/Account/AccountView');\n\n\n\treturn AccountView.extend({\n\t\tevents: {\n\t\t\t'click .showMore a': 'handleShowMoreClick'\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, handleShowMoreClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.showMore($(event.target));\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Element} $el\n\t\t */\n\t\t, showMore: function ($el) {\n\t\t\t$el.parent().prev().children().slideDown('fast');\n\t\t\t$el.hide();\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\tAccountView.prototype.initialize.apply(this, $.makeArray(arguments));\n\n\t\t\tthis.$('.collection').each(function(index, el){\n\t\t\t\tvar $el = $(el);\n\n\t\t\t\tif ($el.children().length > 12) {\n\t\t\t\t\t$el.after('');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/views/Portfolio/CollectionView.js","/*global google */\n\ndefine(function (require) {\n\t'use strict';\n\n\trequire('slick');\n\n\tvar $ = require('jquery')\n\t\t, _ = require('underscore')\n\t\t, numeral = require('numeral')\n\t\t, Backbone = require('backbone')\n\t\t, basketHelper = require('basketHelper')\n\t\t, HowItWorksSubView = require('components/HowItWorks/HowItWorks')\n\t\t, LoanEditorBarSubView = require('views/Xb/Loan/LoanEditorBarSubView')\n\t\t, LoanConditionsSubView = require('views/Xb/Loan/LoanConditionsSubView')\n\t\t, LoanInfoBarSubView = require('views/Xb/Loan/LoanInfoBarSubView')\n\t\t, LoanTags = require('components/Loan/LoanTags')\n\t\t, LoanComments = require('components/Loan/LoanComments')\n\t\t, LoanFavorites = require('components/Loan/LoanFavorites')\n\t\t, LendersTeams = require('hgn!patterns/01-molecules/15-loan-sections/07-lenders-teams')\n\t\t, LenderAvatar = require('hgn!patterns/01-molecules/03-media/02-lender-avatar')\n\t\t, LoadingSpinner = require('hgn!patterns/01-molecules/03-media/01-loading-spinner')\n\t\t, MapsTemplate = require('hgn!patterns/01-molecules/15-loan-sections/22-country-info')\n\t\t, $script = require('scriptjs')\n\t\t;\n\n\treturn Backbone.View.extend({\n\n\t\tevents: {\n\t\t\t'change .ac-input': 'onAcInputChange',\n\t\t\t'click .favorite-link': 'onFavoriteLinkClick',\n\t\t\t'click .proceed-to-checkout-button': 'onCheckoutClick',\n\t\t\t'click .mobile-proceed-to-checkout': 'onCheckoutClick',\n\t\t\t'click #checkout-button': 'onCheckoutClick',\n\t\t\t'click #basket-button': 'onCheckoutClick',\n\t\t\t'click .lend-action .lend-button': 'onLendButtonClick',\n\t\t\t'click .mobile-lend-action .lend-button': 'onLendButtonClick',\n\t\t\t'click .browse-more-loans a': 'onBrowseMoreLoansClick',\n\t\t\t'click .loan-amount-button ~ ul li': 'onDesktopLoanAmountChange',\n\t\t\t'change .lend-values-select': 'onMobileLoanAmountChange',\n\t\t\t'click .lend-values-select': 'setWindowPosition',\n\t\t\t'click #lend-button-amount-selector': 'onLendDropdownClick',\n\t\t\t'click [data-kv-accordion]': '_accordionClickHandler'\n\t\t}\n\n\n\t\t, setWindowPosition: function () {\n\t\t\tthis.windowPosition = $(window).scrollTop();\n\t\t}\n\n\n\t\t, onBrowseMoreLoansClick: function (e) {\n\t\t\te.preventDefault();\n\t\t\t// if coming from a non-kiva domain or from a teams page, go to /categories\n\t\t\t// copypasta - this is pretty much a repeat of the a.find-another-loan handler in _handleLoanAddedToBasket()\n\t\t\t// note: the regex matches kiva domains that start with www or dev-vm-01, so as to include, say, www.dev.kiva.org while excluding admin.dev.kiva.org\n\t\t\tif (document.referrer.length === 0 || /^(?!https?:\\/\\/(www|dev-vm-01).*\\.kiva\\.org\\/).+|kiva\\.org\\/team/.test(document.referrer)) {\n\t\t\t\twindow.location.href = '/categories';\n\t\t\t} else {\n\t\t\t\twindow.history.back();\n\t\t\t}\n\t\t}\n\n\n\t\t, onLendDropdownClick: function(event){\n\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'Modify loan amount', $('#search-box').val());\n\t\t\t});\n\t\t}\n\n\t\t, onLendButtonClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this;\n\t\t\tif (self.showIneligible) {\n\t\t\t\tself._openIneligibleDecisionLightbox();\n\t\t\t} else if (self.showFreeTrialIneligible) {\n\t\t\t\tself._openFreeTrialIneligibleDecisionLightbox();\n\t\t\t} else {\n\t\t\t\tself._proceedWithLending();\n\t\t\t}\n\t\t}\n\n\t\t, _proceedWithLending: function () {\n\t\t\tvar self = this;\n\t\t\t$('.lend-button-wrapper').hide();\n\t\t\t$('.adding-to-basket').show();\n\t\t\t$('.mobile-lend-action-default .basket-buttons').hide();\n\t\t\t$('.mobile-adding-to-basket').show();\n\n\t\t\t//todo: Nice to have: replace this with a component view similar to components/Lend/FavoriteButtonView.js\n\t\t\tif (self.currentLoanAmountValue === 'free') {\n\t\t\t\tbasketHelper.lendFreeTrialShare(this.businessId);\n\t\t\t} else {\n\t\t\t\tbasketHelper.addLoanToBasket(this.businessId, self.currentLoanAmountValue).done(function (result) {\n\t\t\t\t\tself._handleLoanAddedToBasket(result);\n\t\t\t\t}).fail(self._handleLoanAddedToBasketFailure);\n\t\t\t}\n\t\t}\n\n\t\t, _handleLoanAddedToBasket: function (result) {\n\t\t\tif (result.success) {\n\t\t\t\t$('.mobile-adding-to-basket').hide();\n\t\t\t\t$('.adding-to-basket').hide();\n\t\t\t\t$('#already-supported-message').hide();\n\t\t\t\t$('.browse-more-loans').show();\n\t\t\t\t$('.proceed-to-checkout-button').show();\n\t\t\t\t$('.mobile-proceed-to-checkout').show();\n\t\t\t\t$('#mobile-basket-button').css('height', '90px');\n\t\t\t\t$('#mobile-basket-button').css('z-index', '10001');\n\n\t\t\t\tbasketHelper.updateBasketCount(result.basket_item_count);\n\t\t\t} else {\n\t\t\t\tthis._handleLoanAddedToBasketFailure();\n\t\t\t}\n\t\t}\n\n\t\t, _handleLoanAddedToBasketFailure: function () {\n\t\t\t$('.mobile-adding-to-basket').hide();\n\t\t\t$('.adding-to-basket').hide();\n\t\t\t$('.lend-button-wrapper').show();\n\t\t\t$('.mobile-lend-action-default').show();\n\t\t}\n\n\t\t, onCheckoutClick: function (e) {\n\t\t\te.preventDefault();\n\t\t\twindow.location.href = '/basket';\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, onAcInputChange: function (event) {\n\t\t\tthis.toggleSectionDisplay(event.target);\n\t\t}\n\n\t\t, onDesktopLoanAmountChange: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = this;\n\t\t\tvar lendAmount = e.target.innerHTML;\n\t\t\tself.newLoanAmountValue = lendAmount.replace('$', '');\n\t\t\t// 25_hard_coded\n\t\t\tif (self.newLoanAmountValue !== 'Free 25' && self.currentLoanAmountValue === 'free') {\n\t\t\t\tself._openFreeTrialDecisionLightbox();\n\t\t\t\tself._setLightboxHandlers();\n\t\t\t} else {\n\t\t\t\tself._updateLoanAmount();\n\t\t\t}\n\t\t}\n\n\t\t, _setLightboxHandlers: function () {\n\t\t\tvar self = this;\n\n\t\t\tthis.freeTrialDecisionLightbox.find('.main-option').bind('click', {self: self}, self.onFreeTrialDecline);\n\t\t\tthis.freeTrialDecisionLightbox.find('.alternative-option').bind('click', {self: self}, self.onFreeTrialAgree);\n\t\t\tthis.freeTrialDecisionLightbox.find('.close-reveal-modal').bind('click', {self: self}, self.onFreeTrialAgree);\n\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.find('.main-option').bind('click', {self: self}, self.onFreeTrialLendAnyway);\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.find('.alternative-option').bind('click', {self: self}, self.onFindFreeTrialEligibleLoans);\n\n\t\t\tthis.ineligibleDecisionLightbox.find('.main-option').bind('click', {self: self}, self.onLendAnyway);\n\t\t\tthis.ineligibleDecisionLightbox.find('.alternative-option').bind('click', {self: self}, self.onFindEligibleLoans);\n\n\t\t\t$(document).bind('keyup', {self: self}, self._escapeKeyUp);\n\t\t}\n\n\t\t, _escapeKeyUp: function (e) {\n\t\t\tif (e.keyCode == 27) { // esc\n\t\t\t\te.data.self.onFreeTrialDecline(e);\n\t\t\t}\n\t\t}\n\n\n\t\t, _accordionClickHandler: function(e) {\n\t\t\t// Apply following logic for expanded accordions\n\t\t\tif ($(e.currentTarget).attr('aria-expanded') === 'true'){\n\t\t\t\t// innertext is not standard and shouldn't be used in production, this just a workaround:\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText\n\t\t\t\tvar sectionHeading = e.currentTarget.innerText || '';\n\n\t\t\t\tif (sectionHeading.indexOf('Group\\'s story') > -1){\n\t\t\t\t\tsectionHeading = 'Story';\n\t\t\t\t}\n\n\t\t\t\t// track section openings\n\t\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Borrower Profile','click-expand section', e.currentTarget.innerText);\n\t\t\t\t});\n\n\t\t\t\tif ($(e.currentTarget).attr('aria-controls') === 'ac-translation-body') {\n\t\t\t\t\t$(e.currentTarget).html('Hide original language description.');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($(e.currentTarget).attr('aria-controls') === 'ac-translation-body') {\n\t\t\t\t\t$(e.currentTarget).html('View original language description.');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t, _removeLightboxHandlers: function () {\n\t\t\tvar self = this;\n\t\t\t$(document).unbind('keyup', self._escapeKeyUp);\n\t\t\tthis.freeTrialDecisionLightbox.find('.close-reveal-modal').unbind('click', self.onFreeTrialDecline);\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.find('.close-reveal-modal').unbind('click', self.onFreeTrialLendAnyway);\n\t\t\tthis.ineligibleDecisionLightbox.find('.close-reveal-modal').unbind('click', self.onLendAnyway);\n\t\t}\n\n\t\t, onFreeTrialAgree: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\t// 25_hard_coded\n\t\t\tself.newLoanAmountValue = 'Free 25';\n\t\t\tself._updateLoanAmount();\n\t\t\tself._closeFreeTrialDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t}\n\n\t\t, onFreeTrialDecline: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._updateLoanAmount();\n\t\t\tself._closeFreeTrialDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t}\n\n\t\t, onFreeTrialLendAnyway: function(e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._updateLoanAmount();\n\t\t\tself._closeFreeTrialIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\tself._proceedWithLending();\n\t\t}\n\n\t\t, onLendAnyway: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._closeIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\tself._proceedWithLending();\n\t\t}\n\n\t\t, onFindFreeTrialEligibleLoans: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._closeFreeTrialIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\twindow.location.href = '/lend';\n\t\t}\n\n\t\t, onFindEligibleLoans: function (e) {\n\t\t\te.preventDefault();\n\t\t\tvar self = e.data.self;\n\t\t\tself._closeIneligibleDecisionLightbox();\n\t\t\tself._removeLightboxHandlers();\n\t\t\twindow.location.href = '/lend/freeCreditEligible';\n\t\t}\n\n\t\t, _updateLoanAmount: function () {\n\t\t\tvar self = this;\n\t\t\tvar mobileSelectButton = $('.lend-values-select');\n\t\t\tvar desktopSelectButton = $('.lend-values-button button .loan-amount-text');\n\t\t\t// 25_hard_coded\n\t\t\tif (self.newLoanAmountValue === 'Free 25') {\n\t\t\t\tself.currentLoanAmountValue = 'free';\n\t\t\t\tmobileSelectButton.val(self.currentLoanAmountValue);\n\t\t\t\t// 25_hard_coded\n\t\t\t\tdesktopSelectButton.text('Free $25');\n\t\t\t} else {\n\t\t\t\tself.currentLoanAmountValue = self.newLoanAmountValue;\n\t\t\t\tmobileSelectButton.val(self.currentLoanAmountValue);\n\t\t\t\tdesktopSelectButton.text('$' + self.currentLoanAmountValue);\n\t\t\t}\n\t\t}\n\n\t\t, onMobileLoanAmountChange: function (e) {\n\t\t\tif (this.windowPosition) {\n\t\t\t\t$(window).scrollTop(this.windowPosition);\n\t\t\t} else {\n\t\t\t\t$(window).scrollTop(0);\n\t\t\t}\n\t\t\tvar self = this;\n\t\t\tself.newLoanAmountValue = $(e.currentTarget).val();\n\t\t\tif (self.newLoanAmountValue !== 'free' && self.currentLoanAmountValue === 'free') {\n\t\t\t\tself._openFreeTrialDecisionLightbox();\n\t\t\t} else {\n\t\t\t\tself._updateLoanAmount();\n\t\t\t}\n\t\t}\n\n\t\t, _openFreeTrialDecisionLightbox: function () {\n\t\t\tthis.freeTrialDecisionLightbox.foundation('reveal', 'open');\n\t\t\tthis._setLightboxHandlers();\n\t\t}\n\n\t\t, _closeFreeTrialDecisionLightbox: function () {\n\t\t\tthis.freeTrialDecisionLightbox.foundation('reveal', 'close');\n\t\t}\n\n\t\t, _openIneligibleDecisionLightbox: function () {\n\t\t\tthis.ineligibleDecisionLightbox.foundation('reveal', 'open');\n\t\t\tthis._setLightboxHandlers();\n\t\t}\n\n\t\t, _closeIneligibleDecisionLightbox: function () {\n\t\t\tthis.ineligibleDecisionLightbox.foundation('reveal', 'close');\n\t\t}\n\n\t\t, _openFreeTrialIneligibleDecisionLightbox: function () {\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.foundation('reveal', 'open');\n\t\t\tthis._setLightboxHandlers();\n\t\t}\n\n\t\t, _closeFreeTrialIneligibleDecisionLightbox: function () {\n\t\t\tthis.freeTrialIneligibleDecisionLightbox.foundation('reveal', 'close');\n\t\t}\n\n\t\t, onFavoriteLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.setFavorite(event.target);\n\t\t}\n\n\n\t\t, setFavorite: function (targetElement) {\n\t\t\tvar LoanView = this;\n\t\t\tvar untag = LoanView.isFavorite;\n\t\t\tLoanFavorites.favoriteLoan(this.businessId, untag)\n\t\t\t\t.done(function (result) {\n\t\t\t\t\t// Ideally we wouldn't have to handle this up here, but our backend error handling kinda sucks balls\n\t\t\t\t\tif (result !== 'SUCCESS') {\n\t\t\t\t\t\twwwApp.tipMsg('Could not Favorite your loan. Please try again.', 'error');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tLoanView.toggleFavorite(targetElement);\n\t\t\t\t\t\tLoanView.isFavorite = !untag;\n\t\t\t\t\t}\n\t\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('Could not Favorite your loan. Ensure you are connected to the Internet.', 'error');\n\t\t\t});\n\t\t}\n\n\t\t, toggleFavorite: function (element) {\n\t\t\t$(element).toggleClass('is-favorite');\n\t\t}\n\n\n\t\t, toggleSectionDisplay: function (el) {\n\t\t\t$(el).nextAll('article:first').slideToggle('slow');\n\t\t}\n\n\n\t\t, setSlickMargins: function () {\n\t\t\t/* jshint maxstatements: 23 */\n\t\t\tvar $slickActive = $('.slick-active');\n\t\t\tvar slickWidth = $slickActive.width();\n\t\t\tvar imageWidth = $($slickActive.children()[0]).width();\n\t\t\tvar margin = (slickWidth - imageWidth) / 2;\n\t\t\tvar rightMargin = margin;\n\t\t\tif (imageWidth % 2 === 0){\n\t\t\t\trightMargin = margin - 1;\n\t\t\t}\n\t\t\tvar $loanMessage = $('.loan-message');\n\t\t\tvar $loanImageFooter = $('.loan-image-footer');\n\t\t\tvar $prevArrow = $('.carousel-prev');\n\t\t\tvar $nextArrow = $('.carousel-next');\n\t\t\t$loanImageFooter.css('margin-right', rightMargin);\n\t\t\t$loanImageFooter.css('margin-left', margin);\n\t\t\t$loanMessage.css('right', rightMargin);\n\t\t\t$prevArrow.css('left', margin);\n\t\t\t$nextArrow.css('right', rightMargin);\n\n\t\t\t// Update Margins based on slide type\n\t\t\tif ($slickActive.find('.fluid-width-video-wrapper').length) {\n\t\t\t\t$loanImageFooter.css('margin-top', '40px');\n\t\t\t} else {\n\t\t\t\t$loanImageFooter.css('margin-top', '0');\n\t\t\t}\n\n\t\t\t$loanMessage.css('visibility', 'visible');\n\t\t\t$prevArrow.css('visibility', 'visible');\n\t\t\t$nextArrow.css('visibility', 'visible');\n\t\t}\n\n\t\t, hideSlickElements: function () {\n\t\t\tvar $loanMessage = $('.loan-message');\n\t\t\tvar $prevArrow = $('.carousel-prev');\n\t\t\tvar $nextArrow = $('.carousel-next');\n\t\t\t$loanMessage.css('visibility', 'hidden');\n\t\t\t$prevArrow.css('visibility', 'hidden');\n\t\t\t$nextArrow.css('visibility', 'hidden');\n\t\t}\n\n\n\t\t, initSlick: function () {\n\t\t\tvar self = this;\n\t\t\tvar $slickCarousel = $('.loan-figure-carousel');\n\t\t\tvar $loanImageFooter = $('.loan-image-footer');\n\t\t\t$loanImageFooter.css('position', 'relative');\n\t\t\t$loanImageFooter.css('transition', 'margin 0.3s ease-in-out');\n\n\t\t\t$slickCarousel.on('init', function (slick) {\n\t\t\t\tvar loanFigure = $('.loan-figure');\n\n\t\t\t\tvar $images = loanFigure.find('.loan-image-wrap');\n\t\t\t\tvar $slickList = loanFigure.find('.slick-list');\n\t\t\t\t$slickList.css('height', 'auto');\n\t\t\t\t$images.css('transition', 'opacity 2s ease-in-out');\n\t\t\t\t$images.css('position', 'relative');\n\t\t\t\t$images.css('opacity', 1);\n\n\t\t\t\tself.setSlickMargins();\n\t\t\t\t$('.loan-image-footer').show();\n\t\t\t\tloanFigure.css({\n\t\t\t\t\t'padding-bottom': '',\n\t\t\t\t\t'background': 'none'\n\t\t\t\t});\n\t\t\t}).slick({\n\t\t\t\tmobileFirst: true\n\t\t\t\t, prevArrow: '.carousel-prev'\n\t\t\t\t, nextArrow: '.carousel-next'\n\t\t\t\t, adaptiveHeight: true\n\t\t\t\t, lazyLoad: 'ondemand'\n\t\t\t\t, speed: 1000\n\t\t\t});\n\n\t\t\t$slickCarousel.on('beforeChange', function () {\n\t\t\t\tself.hideSlickElements();\n\t\t\t});\n\n\t\t\t$slickCarousel.on('afterChange', function (event, slick, currentSlide) {\n\t\t\t\tself.setSlickMargins();\n\t\t\t});\n\t\t}\n\n\t\t, initRepaymentSchedule: function() {\n\t\t\t$('[data-reveal-id=\"repayment-schedule-tables\"]').click();\n\t\t}\n\n\t\t, initVars: function(self, options) {\n\t\t\tthis.businessId = options.model.get('business_id');\n\t\t\tthis.loggedInUserRole = options.model.get('logged_in_user_role');\n\t\t\tthis.isFavorite = options.model.get('is_favorite');\n\t\t\tthis.showIneligible = options.model.get('show_ineligible');\n\t\t\tthis.showFreeTrialIneligible = options.model.get('show_free_trial_ineligible');\n\t\t\tthis.countryMapInfo = options.model.get('country_map_info');\n\t\t\tthis.isDirectLoan = options.model.get('is_direct_loan');\n\t\t\tthis.freeTrialDecisionLightbox = $('#free-trial-decision-lightbox');\n\t\t\tthis.ineligibleDecisionLightbox = $('#ineligible-decision-lightbox');\n\t\t\tthis.freeTrialIneligibleDecisionLightbox = $('#free-trial-ineligible-decision-lightbox');\n\t\t\tthis.currentLoanAmountValue = $('.lend-values-select').val();\n\t\t}\n\n\n\t\t, handleCommentsAnchorLink: function() {\n\t\t\t// open comments accordion if anchor link in URL\n\t\t\tif (window.location.hash.indexOf('loanComments') > 0) {\n\t\t\t\tthis.showComments(1500);\n\t\t\t}\n\t\t}\n\n\t\t, showComments: function(delay) {\n\t\t\tvar commentsSection = document.getElementsByClassName('comments-and-updates-title')[0];\n\n\t\t\tif (commentsSection) {\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\tcommentsSection.scrollIntoView();\n\t\t\t\t\tif ($('.comments-and-updates-title').attr('aria-expanded') === 'false') {\n\t\t\t\t\t\t$('.comments-and-updates h2').click();\n\t\t\t\t\t}\n\t\t\t\t}, delay);\n\t\t\t}\n\t\t}\n\n\t\t, getLendersAndTeamsContext: function(options) {\n\t\t\t// expecting: lenderCount, lenders, numAnonymousLenders, teamCount, teams, spilloverCutoff\n\n\t\t\tvar allLendersAnonymous = false;\n\t\t\tvar lenderCount = numeral(options.lenderCount).format('0,0');\n\t\t\tvar lenderAnonymousCount = numeral(options.numAnonymousLenders).format('0,0');\n\n\t\t\tif (lenderCount > 0 && (lenderCount - lenderAnonymousCount === 0)) {\n\t\t\t\tallLendersAnonymous = true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tlenderCount: numeral(options.lenderCount).format('0,0'),\n\t\t\t\tlendersExpanded: options.lendersExpanded,\n\t\t\t\tlendersLoading: options.lendersLoading,\n\t\t\t\tlenders: options.lendersExpanded ? options.lenders : options.lenders.slice(0, options.spilloverCutoff),\n\t\t\t\tnumAnonymousLenders: numeral(options.numAnonymousLenders).format('0,0'),\n\t\t\t\tbeyondLenderCutoffCount: (options.lenderCount - options.numAnonymousLenders) > options.lenders.length,\n\t\t\t\tshowSpilloverMessageForLenders: options.lenderCount > options.spilloverCutoff,\n\n\t\t\t\tteamCount: numeral(options.teamCount).format('0,0'),\n\t\t\t\tteamsExpanded: options.teamsExpanded,\n\t\t\t\tteamsLoading: options.teamsLoading,\n\t\t\t\tteams: options.teamsExpanded ? options.teams : options.teams.slice(0, options.spilloverCutoff),\n\t\t\t\tbeyondTeamCutoffCount: options.teamCount > options.teams.length,\n\t\t\t\tshowSpilloverMessageForTeams: options.teamCount > options.spilloverCutoff,\n\t\t\t\tallLendersAnonymous: allLendersAnonymous,\n\t\t\t\tbp_hide_loan_details_exp: this.model.get('bp_hide_loan_details_exp') === 'b'\n\t\t\t};\n\t\t}\n\n\n\t\t, attachLendersAndTeamsEventHandlers: function() {\n\t\t\tvar self = this;\n\n\t\t\t$('.show-more-lenders').click(function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif(self.lendersAndTeams.lendersLoading) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar total = self.lendersAndTeams.lenderCount - self.lendersAndTeams.numAnonymousLenders;\n\t\t\t\tvar fetched = self.lendersAndTeams.lenders.length;\n\t\t\t\tvar limit = self.lendersAndTeams.lendersPerFetch;\n\n\t\t\t\tif(fetched < total) {\n\t\t\t\t\t$.getJSON('/ajax/getLendersForLoan', {\n\t\t\t\t\t\tloan_id: self.businessId,\n\t\t\t\t\t\toffset: fetched,\n\t\t\t\t\t\tlimit: limit\n\t\t\t\t\t}).done(function (lenders) {\n\t\t\t\t\t\tself.lendersAndTeams.lenders = self.lendersAndTeams.lenders.concat(lenders);\n\t\t\t\t\t\tself.lendersAndTeams.lendersLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t}).fail(function (jqxhr, status, error) {\n\t\t\t\t\t\tself.lendersAndTeams.lendersLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t\tthrow new Error(error);\n\t\t\t\t\t});\n\n\t\t\t\t\t$('.show-more-lenders').before(LoadingSpinner.render());\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('.show-all-lenders').click(function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.lendersExpanded = true;\n\t\t\t\tself.renderLendersAndTeams();\n\t\t\t});\n\n\t\t\t$('.hide-more-lenders').click(function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.lendersExpanded = false;\n\t\t\t\tself.renderLendersAndTeams();\n\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.lenders-title').offset().top\n\t\t\t\t}, 1000);\n\t\t\t});\n\n\t\t\t$('.show-more-teams').click(function(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif(self.lendersAndTeams.teamsLoading) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar total = self.lendersAndTeams.teamCount;\n\t\t\t\tvar fetched = self.lendersAndTeams.teams.length;\n\t\t\t\tvar limit = self.lendersAndTeams.teamsPerFetch;\n\n\t\t\t\tif(fetched < total) {\n\t\t\t\t\t$.getJSON('/ajax/getTeamsForLoan', {\n\t\t\t\t\t\tloan_id: self.businessId,\n\t\t\t\t\t\toffset: fetched,\n\t\t\t\t\t\tlimit: limit\n\t\t\t\t\t}).done(function (teams) {\n\t\t\t\t\t\tself.lendersAndTeams.teams = self.lendersAndTeams.teams.concat(teams);\n\t\t\t\t\t\tself.lendersAndTeams.teamsLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t}).fail(function (jqxhr, status, error) {\n\t\t\t\t\t\tself.lendersAndTeams.teamsLoading = false;\n\t\t\t\t\t\tself.renderLendersAndTeams();\n\t\t\t\t\t\tthrow new Error(error);\n\t\t\t\t\t});\n\n\t\t\t\t\t$('.show-more-teams').before(LoadingSpinner.render());\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$('.show-all-teams').click(function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.teamsExpanded = true;\n\t\t\t\tself.renderLendersAndTeams();\n\t\t\t});\n\n\t\t\t$('.hide-more-teams').click(function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.lendersAndTeams.teamsExpanded = false;\n\t\t\t\tself.renderLendersAndTeams();\n\n\t\t\t\t$('html, body').animate({\n\t\t\t\t\tscrollTop: $('.teams-title').offset().top\n\t\t\t\t}, 1000);\n\t\t\t});\n\t\t}\n\n\n\t\t, renderLendersAndTeams: function() {\n\t\t\tvar context = this.getLendersAndTeamsContext(this.lendersAndTeams);\n\n\t\t\t$('#lenders-teams').html(\n\t\t\t\t$('#lenders-teams .ac-title')[0].outerHTML +\n\t\t\t\tLendersTeams.render(context, {\n\t\t\t\t\t'01-molecules/03-media/02-lender-avatar': LenderAvatar,\n\t\t\t\t\t'01-molecules/03-media/01-loading-spinner': LoadingSpinner\n\t\t\t\t})\n\t\t\t);\n\n\t\t\t$(document).foundation('tooltip', 'reflow');\n\n\t\t\tif(window.kvAccordion && window.kvAccordion.reflow) {\n\t\t\t\twindow.kvAccordion.reflow();\n\t\t\t}\n\n\t\t\tthis.attachLendersAndTeamsEventHandlers();\n\t\t}\n\n\n\t\t/**\n\t\t * Load templates into slots on the webpage\n\t\t */\n\t\t, handleLazyTemplateLoading: function(context) {\n\t\t\t$('#country-section').append( MapsTemplate.render(context.model.get('country_info_context')) );\n\n\t\t\tvar lendersTeamsContext = context.model.get('lenders_teams_context');\n\t\t\tif(_.size(lendersTeamsContext) > 0) {\n\t\t\t\tthis.lendersAndTeams = $.extend(lendersTeamsContext, {\n\t\t\t\t\tlendersExpanded: false,\n\t\t\t\t\tteamsExpanded: false,\n\t\t\t\t\tlenders: lendersTeamsContext.lenders || [],\n\t\t\t\t\tteams: lendersTeamsContext.teams || []\n\t\t\t\t});\n\n\t\t\t\tthis.renderLendersAndTeams();\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * adjust panel states if direct, small screen, or state saved\n\t\t */\n\t\t, handlePanelStates: function() {\n\t\t\tvar storedPanelStates = wwwApp.localStorage.get('borrowerPanelStates')\n\t\t\t\t, expandCountryPanel = false\n\t\t\t\t, expandMoreInfoPanel = false;\n\n\t\t\t// default changes for direct loans on large screens\n\t\t\t// GROW-523 Borrower profile hide loan details exp\n\t\t\t// check that user is not in experiment to show default menus\n\t\t\tif (window.Foundation.utils.is_large_up() && this.model.get('bp_hide_loan_details_exp') !== 'b') {\n\t\t\t\tif (this.isDirectLoan) {\n\t\t\t\t\texpandMoreInfoPanel = true;\n\t\t\t\t} else {\n\t\t\t\t\texpandCountryPanel = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (storedPanelStates) {\n\t\t\t\tfor (var panel in storedPanelStates) {\n\n\t\t\t\t\tif (panel === 'ac-more-loan-info-body') {\n\t\t\t\t\t\t// only present in array if should be expanded\n\t\t\t\t\t\texpandMoreInfoPanel = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (panel === 'ac-country-info-body') {\n\t\t\t\t\t\t// only present in array if should be expanded\n\t\t\t\t\t\texpandCountryPanel = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t$('[aria-controls=\"' + panel + '\"]').click();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (expandMoreInfoPanel) {\n\t\t\t\t$('.more-loan-info h2').click();\n\t\t\t}\n\n\t\t\tif (expandCountryPanel) {\n\t\t\t\t$('.country-info h2').click();\n\t\t\t}\n\t\t}\n\n\t\t, initializeInContextEditor: function (options) {\n\t\t\tif(options.model.get('show_in_context_editor')) {\n\t\t\t\tLoanEditorBarSubView.init(window.Loan_LoanEditorBarSubView);\n\t\t\t\tLoanInfoBarSubView.init(window.Loan_LoanInfoBarSubView);\n\t\t\t\tLoanConditionsSubView.init(window.Loan_LoanConditionsSubView);\n\t\t\t}\n\t\t}\n\n\t\t, analyticsHideStory: function (options) {\n\t\t\tif (options.model.get('bp_exp_version')) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'EXP-CASH-166-Nov2018', options.model.get('bp_exp_version'), undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Store Loan Id in localStorage for use in Recently Viewed\n\t\t */\n\t\t, storeRecentlyViewedLoan: function() {\n\t\t\tvar recentLoanData = wwwApp.localStorage.get('recentlyViewedLoans') || [];\n\n\t\t\t// Check for id in array\n\t\t\tif (_.contains(recentLoanData, this.businessId)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Push loan onto the beginning of array\n\t\t\trecentLoanData.unshift(this.businessId);\n\n\t\t\t// Update localStorage with limit of 12 ids\n\t\t\twwwApp.localStorage.set('recentlyViewedLoans', recentLoanData.slice(0, 12));\n\t\t}\n\n\t\t, trackBetaExperiment: function (version) {\n\t\t\tif (version) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Borrower Profile', 'legacy bp visit', version.toLowerCase(), undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t, trackLoanStatus: function (status) {\n\t\t\tif (status) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'borrower profile status', status.toLowerCase(), undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t, trackProfileRedirect: function (version) {\n\t\t\t// Tracking event for the control version of the funded borrower profile experiment.\n\t\t\tif (version) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Lending', 'EXP-CASH-847-Jun2019', version, undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t, trackHideLoanDetails: function (version) {\n\t\t\tif (version) {\n\t\t\t\twwwApp.kvTrack.isReady.done(function () {\n\t\t\t\t\twwwApp.kvTrack.trackEvent('Borrower Profile', 'EXP-GROW-523-Apr2021', version, undefined, true);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t, initialize: function (options) {\n\t\t\t/* jshint maxstatements: 25 */\n\t\t\tvar self = this;\n\t\t\tself.handleLazyTemplateLoading(options);\n\t\t\tself.initVars(self, options);\n\t\t\tif (this.isFavorite) {\n\t\t\t\tself.toggleFavorite('.favorite-link');\n\t\t\t}\n\t\t\tself.initSlick();\n\t\t\t$(window).resize(function () {\n\t\t\t\tself.setSlickMargins();\n\t\t\t});\n\t\t\tLoanFavorites.init();\n\t\t\tHowItWorksSubView.init();\n\t\t\tLoanTags.init(self.businessId);\n\t\t\tLoanComments.init(self.businessId, self.loggedInUserRole);\n\t\t\t$('#mobile-basket-button').css('height', 0);\n\n\t\t\tif(Backbone.history.getHash() == 'repaymentSchedule') {\n\t\t\t\tself.initRepaymentSchedule();\n\t\t\t}\n\n\t\t\tself.handlePanelStates();\n\n\t\t\tthis.handleCommentsAnchorLink();\n\n\t\t\t$('#my-kiva-dropdown a[href$=\"loanComments\"]').click(function() {\n\t\t\t\tself.showComments(100);\n\t\t\t});\n\n\t\t\tthis.initializeInContextEditor(options);\n\n\t\t\tself.storeRecentlyViewedLoan();\n\n\t\t\t// GROW-655\n\t\t\tthis.trackBetaExperiment(options.model.get('lend_beta_bp_exp_version'));\n\n\t\t\t// CASH-660\n\t\t\tthis.trackLoanStatus(options.model.get('is_fundraising'));\n\n\t\t\t// CASH-166 Experiment Analytics\n\t\t\tthis.analyticsHideStory(options);\n\n\t\t\t// GROW-523 Experiment hide loan details on borrower profiles\n\t\t\tthis.trackHideLoanDetails(options.model.get('bp_hide_loan_details_exp'));\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Loan/LoanView.js","/* global console, wwwApp, snowplow */\n\ndefine(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t\t, moment = require('moment')\n\t\t, Marionette = require('marionette')\n\t\t, basketHelper = require('lib/basketHelper/basketHelper')\n\t\t, ResultsView = require('components/LoansNearMe/LoansNearMeResultsView')\n\t\t, numeral = require('numeral')\n\t\t;\n\n\treturn Marionette.LayoutView.extend({\n\t\tel: '.mainWrapper'\n\n\t\t, regions: {\n\t\t\tresultsRegion: '.results-region'\n\t\t}\n\n\t\t, updateResults: function (loans, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tthis.resultsView.updateResults(loans, enable_previous, enable_next, enable_first, enable_last);\n\t\t}\n\n\t\t, _configureMoment: function () {\n\t\t\tmoment.relativeTimeThreshold('m', 120);\n\t\t\tmoment.relativeTimeThreshold('h', 48);\n\n\t\t\tmoment.updateLocale('en', {\n\t\t\t\trelativeTime: {\n\t\t\t\t\tfuture: 'in %s'\n\t\t\t\t\t, past: '%s ago'\n\t\t\t\t\t, s: '%d seconds'\n\t\t\t\t\t, m: '1 minute'\n\t\t\t\t\t, mm: '%d minutes'\n\t\t\t\t\t, h: '1 hour'\n\t\t\t\t\t, hh: '%d hours'\n\t\t\t\t\t, d: '1 day'\n\t\t\t\t\t, dd: '%d days'\n\t\t\t\t\t, M: '1 month'\n\t\t\t\t\t, MM: '%d months'\n\t\t\t\t\t, y: '1 year'\n\t\t\t\t\t, yy: '%d years'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t, _handleLend: function(loan_id) {\n\t\t\tif (this.free_trial) {\n\t\t\t\tbasketHelper.lendFreeTrialShare(loan_id);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar self = this;\n\t\t\t\t// 25_hard_coded share_table\n\t\t\t\tbasketHelper.addLoanToBasket(loan_id, 25).done(function (result) {\n\t\t\t\t\tself._handleLoanAddedToBasket(result);\n\t\t\t\t}).fail(function () {\n\t\t\t\t\tself._handleLoanAddedToBasketFailure(loan_id);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t, updateLoanBasketStatus: function (loan_id, amount) {\n\t\t\tthis.resultsView.updateBasketStatus(loan_id, amount);\n\t\t}\n\n\t\t// 25_hard_coded share_table\n\t\t, _handleLoanAddedToBasket: function (result) {\n\t\t\tif (result.success) {\n\t\t\t\tthis.updateLoanBasketStatus(parseInt(result.business_id), 25);\n\t\t\t} else {\n\t\t\t\tthis._handleLoanAddedToBasketFailure(result.business_id);\n\t\t\t}\n\t\t}\n\n\t\t, _handleLoanAddedToBasketFailure: function (loan_id) {\n\t\t\tthis.view.updateLoanBasketStatus(parseInt(loan_id), 0);\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\t/* jshint maxstatements: 29 */\n\t\t\tvar loans_shown = this.model.get('num_loans') > 0\n\t\t\t\t? 'Loans Shown'\n\t\t\t\t: 'NO Loans Shown';\n\t\t\tvar miles = this.model.get('miles');\n\n\t\t\tthis._configureMoment();\n\n\t\t\tthis.resultsView = new ResultsView();\n\n\t\t\tthis.listenTo(this.resultsView, 'lend', this._handleLend);\n\n\t\t\t// update loans in js view\n\t\t\tthis.updateResults(this.model.get('loans'), false, false, false, false);\n\n\t\t\tif (typeof wwwApp !== 'undefined'){\n\t\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\t\twwwApp.kvTrack.trackEvent(\n\t\t\t\t\t\t'Lending',\n\t\t\t\t\t\tloans_shown,\n\t\t\t\t\t\t'Loans Near Me',\n\t\t\t\t\t\tmiles,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.showChildView('resultsRegion', this.resultsView);\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/LoansNearMe/LoansNearMeView.js","/* global paypal, Foundation */\n'use strict';\n\nvar _ = require('underscore');\nvar $ = require('jquery');\nvar autoCorrecter = require('lib/autoCorrecter/autoCorrecter');\nvar numeral = require('numeral');\nvar $script = require('scriptjs');\n\n$script('https://www.paypalobjects.com/api/checkout.js', 'paypal-checkout');\n\n/*\n * Set the appropriate inteface type based on string passed to function\n * @param: String 'paypal' or 'standard'\n */\nfunction toggleInterface(interfaceType) {\n\tvar $addCredit = $('.add-credit')\n\t\t, $addCreditForm = $addCredit.find('.add-credit-form')\n\t\t, $addCreditButton = $addCreditForm.find('#continue-button')\n\t\t, $monthlyField = $addCreditForm.find('.monthly-deposit-field')\n\t\t, $paypalButton = $('#paypal-button')\n\t\t, $cancelPaypalButton = $('#paypal-cancel')\n\t\t, $amountField = $addCreditForm.find('.amount-to-deposit-field input')\n\t\t, $addCreditPending = $addCredit.find('.add-credit-pending')\n\t\t, $addCreditThanks = $addCredit.find('.add-credit-thanks');\n\n\tswitch (interfaceType) {\n\t\tcase 'paypal':\n\t\t\t$addCreditThanks.hide();\n\t\t\t$addCreditPending.hide();\n\t\t\t$monthlyField.hide();\n\t\t\t$amountField.prop('disabled', true);\n\t\t\t$addCreditButton.hide();\n\t\t\tif ($paypalButton.length) {\n\t\t\t\t$paypalButton.show();\n\t\t\t\t$cancelPaypalButton.show();\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'pending':\n\t\t\t$addCreditForm.hide();\n\t\t\t$addCreditThanks.hide();\n\t\t\t$addCreditPending.show();\n\t\t\tbreak;\n\t\tcase 'thanks':\n\t\t\t$addCreditForm.hide();\n\t\t\t$addCreditThanks.show();\n\t\t\t$addCreditPending.hide();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t$addCreditForm.show();\n\t\t\t$addCreditThanks.hide();\n\t\t\t$addCreditPending.hide();\n\t\t\t$monthlyField.show();\n\t\t\t$amountField.prop('disabled', false);\n\t\t\t$addCreditButton.show();\n\t\t\t$paypalButton.hide();\n\t\t\t$cancelPaypalButton.hide();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * send successful add credit event for google analytics\n */\nfunction trackAddCredit(result) {\n\tvar total = 0;\n\t// update total with amount of credit added in cents, event values don't allow floats\n\ttry {\n\t\ttotal = Math.round(result.value.PAYMENTINFO_0_AMT * 100);\n\t} catch (e) {}\n\twwwApp.kvTrack.trackEvent('Lending', 'Add Credit', 'Add Credit Page', total);\n}\n\n/**\n * Update Interface, Redirect + Handle Errors that result from doExpressCheckout ajax call\n * @param result\n */\nfunction handleDoExpressCheckoutError(result, token) {\n\t// Determine Error Code\n\tvar errorObject, errorCode, errorMessage;\n\tif (result.value.length && result.value[0].length) {\n\t\terrorObject = result.value[0][0];\n\t\terrorCode = (errorObject.L_ERRORCODE) ? errorObject.L_ERRORCODE : 'NO_CODE';\n\t\terrorMessage = (errorObject.L_SHORTMESSAGE) ? errorObject.L_SHORTMESSAGE : 'There was an error processing your payment. Please try again.';\n\t}\n\n\t// Show Tip Message\n\twwwApp.tipMsg(errorMessage + ' - Error Code: ' + errorCode, 'error');\n\t// Reset UI\n\ttoggleInterface();\n}\n\n/**\n * Update transaction details\n */\nfunction updateTransactionDetails(result) {\n\tvar $addCreditThanks = $('.add-credit-thanks')\n\t\t, paypalAmt;\n\n\ttry {\n\t\tpaypalAmt = numeral(result.value.PAYMENTINFO_0_AMT);\n\t\t$addCreditThanks.find('.amount-paid').html(paypalAmt.format('$0.00'));\n\t} catch (e) {}\n}\n\nfunction onDoPaymentSuccess(result) {\n\tvar pp_txn_id = result.value.PAYMENTINFO_0_TRANSACTIONID;\n\tvar kiva_pp_id = result.value.PAYMENTINFO_0_SECUREMERCHANTACCOUNTID;\n\tvar token = result.value.TOKEN;\n\t// Payment type needed to detect non-instant payment types like echeck\n\tvar pp_payment_type = result.value.PAYMENTINFO_0_PAYMENTTYPE;\n\tvar pp_payment_status = result.value.PAYMENTINFO_0_PAYMENTSTATUS;\n\tvar custom = result.custom;\n\tif (pp_txn_id) {\n\t\t// Record deposit on Kiva side. Regardless of success/failure, we show thanks message to user.\n\t\t$.post('/ajax/handleExpressCheckout', {\n\t\t\ttoken: token\n\t\t\t, txn_id: pp_txn_id\n\t\t\t, custom: custom\n\t\t\t, kiva_pp_id: kiva_pp_id\n\t\t\t, payment_type: pp_payment_type\n\t\t\t, payment_status: pp_payment_status\n\t\t});\n\t}\n}\n\n/**\n * render the paypal button using code from checkout.js\n * @param expressCheckoutEnv should be 'sandbox' or 'production'\n */\nfunction renderPaypalButton(expressCheckoutEnv) {\n\n\t// Inject paypal button div\n\t$('.add-credit').find('form')\n\t\t.append('Cancel')\n\t\t.append('
        ');\n\n\n\t$('#paypal-cancel').click(function (e) {\n\t\te.preventDefault();\n\t\ttoggleInterface();\n\t});\n\n\tvar CREATE_PAYMENT_URL = '/ajax/setExpressCheckout'; // used to get initial token\n\tvar EXECUTE_PAYMENT_URL = '/ajax/doExpressCheckoutPayment'; // used to finalize transaction\n\n\t// Execute Render Function\n\tpaypal.Button.render({\n\n\t\tenv: expressCheckoutEnv, // Specify 'sandbox' for the test environment, 'production' otherwise\n\n\t\tpayment: function (resolve, reject) {\n\n\t\t\tvar amount = numeral($('.amount-to-deposit-field input').val()).value();\n\t\t\tconsole.log(CREATE_PAYMENT_URL, {'amount': amount});\n\t\t\tpaypal.request.post(CREATE_PAYMENT_URL, {'amount': amount})\n\t\t\t\t.then(function (result) {\n\t\t\t\t\tconsole.log(CREATE_PAYMENT_URL, 'done, result is', result);\n\t\t\t\t\tresolve(result.token);\n\t\t\t\t})\n\t\t\t\t.catch(function (err) {\n\t\t\t\t\tconsole.log(CREATE_PAYMENT_URL, 'error caught, err is ', err);\n\t\t\t\t});\n\n\t\t},\n\n\t\tonAuthorize: function (data, actions) {\n\n\t\t\ttoggleInterface('pending');\n\n\t\t\tvar amount = numeral($('.amount-to-deposit-field input').val()).value();\n\t\t\tconsole.log(EXECUTE_PAYMENT_URL, {\n\t\t\t\t'token': data.paymentToken,\n\t\t\t\t'payer_id': data.payerID,\n\t\t\t\t'amount': amount,\n\t\t\t\t'cancel_url': {'page': 'account', 'action': 'deposit'},\n\t\t\t\t'___data' : data\n\t\t\t});\n\n\t\t\tpaypal.request.post(EXECUTE_PAYMENT_URL, {\n\t\t\t\t'token': data.paymentToken,\n\t\t\t\t'payer_id': data.payerID,\n\t\t\t\t'cancel_url': {'page': 'account', 'action': 'deposit'},\n\t\t\t\t'amount': amount\n\t\t\t})\n\t\t\t\t.then(function (result) {\n\t\t\t\t\tconsole.log(EXECUTE_PAYMENT_URL, 'done, result is', result);\n\t\t\t\t\tconsole.log(EXECUTE_PAYMENT_URL, 'tokens in/out', data.paymentToken, result.value.TOKEN);\n\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\t// update transaction amount dynamic value\n\t\t\t\t\t\tupdateTransactionDetails(result);\n\t\t\t\t\t\ttoggleInterface('thanks');\n\t\t\t\t\t\tonDoPaymentSuccess(result);\n\n\t\t\t\t\t\t// Fire tracking on successful transaction\n\t\t\t\t\t\ttrackAddCredit(result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleDoExpressCheckoutError(result, data.paymentToken);\n\t\t\t\t\t}\n\n\t\t\t\t})\n\t\t\t\t.catch(function (err) {\n\t\t\t\t\tconsole.log(EXECUTE_PAYMENT_URL, 'error', err);\n\t\t\t\t\t// reset interface\n\t\t\t\t\ttoggleInterface();\n\t\t\t\t});\n\t\t\t// Execute the payment here, when the buyer approves the transaction\n\t\t\t// if we were doing client-side with REST then could do following:\n\t\t\t/*\n\t\t\t return actions.payment.execute().then(function(result) {\n\t\t\t console.log('result is : ' + result);\n\t\t\t alert('made it');\n\t\t\t });*/\n\t\t},\n\t\tonCancel: function (data, actions) {\n\t\t\tconsole.log('onCancel', {'data': data, 'actions': actions});\n\t\t\ttoggleInterface();\n\t\t},\n\n\t\tonError: function (err) {\n\t\t\tconsole.log('onError', err);\n\t\t},\n\n\t\tstyle: {\n\t\t\tcolor: 'blue',\n\t\t\tshape: 'rect',\n\t\t\tsize: Foundation.utils.is_medium_up() ? 'large' : 'responsive'\n\t\t}\n\t}, '#paypal-button');\n}\n\n\nmodule.exports = {\n\tinit: function (data) {\n\n\t\tvar expressCheckoutEnv = data.context.env || 'sandbox'; // default\n\n\t\tvar $deposit = $('.amount-to-deposit-field input');\n\n\t\tautoCorrecter.usd($deposit);\n\n\t\t// Abide Form Validation - Runs on Submit (clicking Continue)\n\t\t$('.add-credit form').on('valid.fndtn.abide', function () {\n\t\t\t// clear tip message if present\n\t\t\twwwApp.closeTipMsg();\n\n\t\t\t// Initialize or Show Paypal Express checkout button\n\t\t\ttoggleInterface('paypal');\n\t\t\t$script.ready('paypal-checkout', function() {\n\t\t\t\tif (!$('#paypal-button').length) {\n\t\t\t\t\trenderPaypalButton(expressCheckoutEnv);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Portfolio/DepositView.js","/* global paypal, Foundation */\n'use strict';\n\nvar _ = require('underscore')\n\t, $ = require('jquery')\n\t, lightboxTemplate = require('hgn!patterns/01-molecules/10-lightbox/06-dynamic-help-text-lightbox')\n\t, $script = require('scriptjs')\n\t;\n\n// expose jquery to window\nglobal.$ = global.jQuery = require('jquery');\n// load datatables from cdn\n$script('https://cdn.datatables.net/1.9.0/js/jquery.dataTables.min.js', 'jquery-dataTables');\n\nfunction _showSalesForceLightbox(solution_id) {\n\t$.get(wwwApp.ajaxUrl('ajaxProxy', {href: 'http://na84.salesforce.com/_ui/selfservice/pkb/PublicKnowledgeSolution/d?orgId=00D500000006svl&id=50150000000Rs0m'}))\n\t\t.done(function(response) {\n\t\t\tresponse = response.replace(/<\\/?(span|font|blockquote|img|iframe|script).*?>|style=\".*?\"/g, '');\n\n\t\t\tvar title = $('td .solutionTitleDetail', response).html();\n\t\t\tvar text = $('td .htmlDetailElementDiv', response).html();\n\n\t\t\t$(lightboxTemplate.render({descriptionTitle: title, descriptionText: text})).foundation('reveal', 'open');\n\t\t});\n}\n\nmodule.exports = {\n\tinit: function (viewData) {\n\n\t\tvar year = viewData.year ? '/'+viewData.year : '';\n\n\t\t$('.how-kiva-uses-donations').on('click', function(event) {\n\t\t\tevent.preventDefault();\n\t\t\t_showSalesForceLightbox();\n\t\t});\n\n\t\t// execute dataTables script when ready\n\t\t$script.ready('jquery-dataTables', function() {\n\t\t\t$('#donationsTable').dataTable({\n\t\t\t\t'bAutoWidth': false,\n\t\t\t\t'bFilter': false,\n\t\t\t\t'bSort': false,\n\t\t\t\t'bLengthChange': false,\n\t\t\t\t'bPaginate': true,\n\t\t\t\t'iDisplayLength': viewData.perPage,\n\t\t\t\t'sPaginationType': 'full_numbers',\n\t\t\t\t'bProcessing': true,\n\t\t\t\t'bServerSide': true,\n\t\t\t\t'sAjaxSource': wwwApp.conf.get('rootHttp') + 'portfolio/donations/data' + year,\n\t\t\t\t'fnDrawCallback': function () {\n\t\t\t\t\tif ($('.dataTables_paginate .paginate_button').length <= 4) { // first,prev,,next,last\n\t\t\t\t\t\t$('.dataTables_paginate').hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Portfolio/DonationsView.js","/* global google, wwwApp */\ndefine(function (require) {\n\t'use strict';\n\t/* jshint maxstatements: 26 */\n\n\t// dependencies\n\tvar $ = require('jquery');\n\tvar _ = require('underscore');\n\tvar browser = require('bowser');\n\tvar numeral = require('numeral');\n\tvar $script = require('scriptjs');\n\tvar table_template = require('hgn!patterns/02-organisms/40-portfolio/08-distribution-table');\n\tvar table_row_template = require('hgn!patterns/01-molecules/40-portfolio/04-distribution-table-row');\n\tvar graph_lightbox_template = require('hgn!patterns/01-molecules/10-lightbox/12-dynamic-loan-count-graph-lightbox');\n\tvar CTASubView = require('./CTASubView');\n\n\t$script('https://www.gstatic.com/charts/loader.js', 'google-charts');\n\n\t// shared references\n\tvar google_loader\n\t\t, loan_map\n\t\t, loan_map_data_table\n\t\t, distribution_data = {}\n\t\t, distribution_charts = {}\n\t\t, loan_count_data_table\n\t\t;\n\n\tfunction confirmLoginSuccess() {\n\t\tif(document.referrer.indexOf('/login') && wwwApp.conf.get('logged_in')) {\n\t\t\twwwApp.kvTrack.isReady.done(function(){\n\t\t\t\twwwApp.kvTrack.trackEvent('Login', 'successful-login', 'landing-portfolio', undefined, true);\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction displayInactivitySettingsLightbox() {\n\t\t$('#inactive-account-settings-modal').foundation('reveal', 'open');\n\n\t\t$('#inactivity_form').submit(function(event) {\n\t\t\tevent.preventDefault();\n\t\t\t$.ajax({\n\t\t\t\turl: wwwApp.staticUrl('portfolio/updateActivitySettings')\n\t\t\t\t, type: 'POST'\n\t\t\t\t, dataType: 'json'\n\t\t\t\t, data: {\n\t\t\t\t\tinactivity_setting: $('input[name=\"inactivity_setting\"]:checked').val(),\n\t\t\t\t\tpaypal_email_address:$('input[name=\"paypal_email_address\"]').val()\n\t\t\t\t}\n\t\t\t\t, success: function (result) {\n\t\t\t\t\t$('#inactive-account-settings-modal').foundation('reveal', 'close');\n\n\t\t\t\t\tif (result.success) {\n\t\t\t\t\t\twwwApp.tipMsg('Thank you! We have updated your settings.');\n\t\t\t\t\t} else {\n\t\t\t\t\t\twwwApp.tipMsg(result.errMsg, 'error');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t, error: function () {\n\t\t\t\t\t$('#inactive-account-settings-modal').foundation('reveal', 'close');\n\t\t\t\t\twwwApp.tipMsg('There was an error. Please try again.', 'error');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction drawLoanCountGraph() {\n\t\tvar options = {\n\t\t\tcolors: ['#4faf4e'],\n\t\t\tchartArea: {\n\t\t\t\tleft: '10%',\n\t\t\t\ttop: '5%',\n\t\t\t\twidth: '85%',\n\t\t\t\theight: '85%'\n\t\t\t},\n\t\t\thAxis: {\n\t\t\t\tformat: 'MMM d, y',\n\t\t\t\tgridlines: {\n\t\t\t\t\tcount: -1\n\t\t\t\t}\n\t\t\t},\n\t\t\tvAxis: {\n\t\t\t\tminValue: 0,\n\t\t\t\tgridlines: {\n\t\t\t\t\tcount: -1\n\t\t\t\t}\n\t\t\t},\n\t\t\tlegend: {\n\t\t\t\tposition: 'none'\n\t\t\t}\n\t\t};\n\n\t\tvar $graph_area = $('.lightbox-content .loan-count-graph');\n\t\tvar graph = new google.visualization.AreaChart($graph_area[0]);\n\n\t\tif (loan_count_data_table.getNumberOfRows() === 1) {\n\t\t\tvar loanDateYear = new Date(loan_count_data_table.getValue(0, 0)).getFullYear();\n\n\t\t\toptions.hAxis.gridlines.count = 10;\n\t\t\toptions.hAxis.minValue = new Date(loanDateYear, 0, 0);\n\t\t\toptions.hAxis.maxValue = new Date(loanDateYear + 1, 0, 0);\n\t\t}\n\n\t\tgraph.draw(loan_count_data_table, options);\n\t\t$graph_area.css('opacity', 1);\n\t}\n\n\n\tfunction drawMap(width) {\n\t\tif(loan_map && loan_map_data_table) {\n\t\t\t// https://developers.google.com/chart/interactive/docs/gallery/geochart\n\t\t\tvar options = {\n\t\t\t\ttooltip: {\n\t\t\t\t\ttextStyle: {color: '#333'} // $kiva-text-dark\n\t\t\t\t}\n\t\t\t\t, colorAxis: {\n\t\t\t\t\tcolors: ['#aee15c', '#247037'] // $kiva-accent-green, $kiva-darkgreen\n\t\t\t\t}\n\t\t\t\t, magnifyingGlass: {\n\t\t\t\t\tenable: true\n\t\t\t\t\t, zoomFactor: 5.0\n\t\t\t\t}\n\t\t\t\t, width: width\n\t\t\t};\n\n\t\t\t// disable map hover on iOS Safari because it's buggy. see RP-63 & RP-92\n\t\t\tif (browser.ios && browser.safari) {\n\t\t\t\toptions.tooltip = {\n\t\t\t\t\ttrigger: 'selection'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tloan_map.draw(loan_map_data_table, options);\n\t\t}\n\t}\n\n\n\tfunction drawPieChart(chart_name, width) {\n\t\tif(distribution_data[chart_name] && distribution_charts[chart_name]) {\n\t\t\tvar options = {\n\t\t\t\theight: 225,\n\t\t\t\twidth: width,\n\t\t\t\tpieSliceText: 'none',\n\t\t\t\tcolors: [\n\t\t\t\t\t'#4faf4e', '#0D8EBB', '#5141A5', '#d74937', '#F8E71C', '#247037', '#D2F0F8', '#A54195', '#3200B2',\n\t\t\t\t\t'#FF030E', '#FF7E03', '#A9FFBF', '#B2A500', '#B25C00', '#FFAA50', '#F90AFF', '#aee15c', '#FF4F57',\n\t\t\t\t\t'#A3A6FF', '#FFD803'\n\t\t\t\t],\n\t\t\t\tchartArea: {\n\t\t\t\t\tleft: '5%',\n\t\t\t\t\ttop: '5%',\n\t\t\t\t\twidth: '90%',\n\t\t\t\t\theight: '90%'\n\t\t\t\t},\n\t\t\t\tlegend: {\n\t\t\t\t\talignment: 'center'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// disable map hover on iOS Safari because it's buggy. see RP-63 & RP-92\n\t\t\tif (browser.ios && browser.safari) {\n\t\t\t\toptions.tooltip = {\n\t\t\t\t\ttrigger: 'selection'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// make arrows bigger on touch devices so that they are easier to tap, see RP-91\n\t\t\tif(browser.mobile || browser.tablet) {\n\t\t\t\toptions.legend.textStyle = {\n\t\t\t\t\tfontSize: 16\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdistribution_charts[chart_name].draw(distribution_data[chart_name], options);\n\t\t}\n\t}\n\n\n\tfunction initDistributionGraphs(public_id) {\n\t\t$.getJSON(wwwApp.conf.get('rootHttp') + '/portfolio/distribution-graph-data?type=lender&permanent_name=' + public_id)\n\t\t\t.done(function(data) {\n\t\t\t\tgoogle_loader.done(function() {\n\t\t\t\t\tvar $sections = $('.distribution-charts section');\n\n\t\t\t\t\tif (!data || data.success === false) {\n\t\t\t\t\t\t$sections.html('Error loading chart data.');\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t$sections.each(function() {\n\t\t\t\t\t\t\tvar $section = $(this);\n\t\t\t\t\t\t\tvar $chart = $section.find('.pie-chart');\n\t\t\t\t\t\t\tvar name = $section.attr('id').replace('-chart', '');\n\n\t\t\t\t\t\t\tdistribution_data[name] = google.visualization.arrayToDataTable(data[name+'Chart'], true);\n\t\t\t\t\t\t\tdistribution_charts[name] = new google.visualization.PieChart($chart[0]);\n\n\t\t\t\t\t\t\tsetupDistributionChart($section, $chart, name);\n\t\t\t\t\t\t\tsetupDistributionTable($section, data[name+'Chart'], data[name+'Urls']);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t})\n\t\t\t.fail(function() {\n\t\t\t\tvar $sections = $('.distribution-charts section');\n\n\t\t\t\tif ($sections.length) {\n\t\t\t\t\t$sections.html('Error loading chart data.');\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\n\tfunction initLoanCountGraph() {\n\t\t$.getJSON(wwwApp.ajaxUrl('getGraphData'), {graphName: 'user_loan_count'})\n\t\t\t.done(function(data) {\n\t\t\t\tgoogle_loader.done(function() {\n\t\t\t\t\tif(data.graphData) {\n\t\t\t\t\t\tvar graphData = _.map(data.graphData, function(datum) {\n\t\t\t\t\t\t\treturn [new Date(parseInt(datum[0])), datum[1]];\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tvar graphLabels = [[\n\t\t\t\t\t\t\t\t{label: 'Date', type: 'datetime'},\n\t\t\t\t\t\t\t\t{label: 'Loan', type: 'number'}\n\t\t\t\t\t\t\t]];\n\n\t\t\t\t\t\tgraphData = graphLabels.concat(graphData);\n\t\t\t\t\t\tloan_count_data_table = google.visualization.arrayToDataTable(graphData);\n\n\t\t\t\t\t\t$('.loan-count-stat a').click(function(e) {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\topenLoanCountGraphLightbox();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\n\tfunction initLoanViewToggle() {\n\t\tvar $loan_grid = $('.loan-grid')\n\t\t\t, $loan_map = $('.map-pane')\n\t\t\t, $geo_chart = $('.geo-chart')\n\t\t\t;\n\n\t\t$('.recent-loans .icon-toggle').on('change', function(e) {\n\t\t\tif(e.target.value === 'map') {\n\t\t\t\t$loan_grid.hide();\n\t\t\t\t$loan_map.show();\n\t\t\t\tdrawMap($geo_chart.width());\n\t\t\t} else {\n\t\t\t\t$loan_grid.show();\n\t\t\t\t$loan_map.hide();\n\t\t\t}\n\t\t});\n\t}\n\n\n\tfunction initRecentLoanMap(public_id) {\n\t\t$.getJSON(wwwApp.conf.get('rootHttp') + 'portfolio/requestLoanMapJson?lender=' + public_id)\n\t\t\t.done(function(data) {\n\t\t\t\tgoogle_loader.done(function() {\n\t\t\t\t\tvar $container = $('.geo-chart')[0];\n\n\t\t\t\t\tif (data && $container) {\n\t\t\t\t\t\tloan_map = new google.visualization.GeoChart($container);\n\n\t\t\t\t\t\t_.find(data.rows, function(obj) {\n\t\t\t\t\t\t\tif (obj.p.iso_code === 'QS') {\n\t\t\t\t\t\t\t\tvar countryCode = 'SS';\n\t\t\t\t\t\t\t\tobj.p.iso_code = countryCode;\n\t\t\t\t\t\t\t\tobj.c[0].v = countryCode;\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tloan_map_data_table = new google.visualization.DataTable(data);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\n\tfunction initResizeHandler() {\n\t\tvar $geo_chart = $('.geo_chart');\n\n\t\t$(window).on('resize', _.throttle(function() {\n\t\t\tvar $active = $('.distribution-charts .active');\n\n\t\t\tif($active.length) {\n\t\t\t\tdrawPieChart($active.attr('id').replace('-chart',''), $active.find('.pie-chart').width());\n\t\t\t}\n\n\t\t\tif($geo_chart.length) {\n\t\t\t\tdrawMap($geo_chart.width());\n\t\t\t}\n\n\t\t\tif($('.lightbox-content .loan-count-graph div').length) {\n\t\t\t\tdrawLoanCountGraph();\n\t\t\t}\n\t\t}, 200));\n\t}\n\n\n\tfunction loadGoogleCharts() {\n\t\tvar deferred = new $.Deferred();\n\n\t\t$script.ready('google-charts', function() {\n\t\t\tif (typeof google != 'undefined') {\n\t\t\t\tgoogle.charts.load('45', {packages: ['corechart', 'geochart']});\n\t\t\t\tgoogle.charts.setOnLoadCallback(function() {\n\t\t\t\t\tdeferred.resolve();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdeferred.reject();\n\t\t\t}\n\t\t});\n\n\t\treturn deferred.promise();\n\t}\n\n\n\tfunction openLoanCountGraphLightbox() {\n\t\t$(graph_lightbox_template.render())\n\t\t\t.foundation('reveal', 'open')\n\t\t\t.on('opened.fndtn.reveal', function() {\n\t\t\t\tdrawLoanCountGraph();\n\t\t\t});\n\t}\n\n\n\tfunction setupDistributionChart($section, $chart, name) {\n\t\t// draw charts when their tab is selected\n\t\t$section.on('toggled', function() {\n\t\t\tdrawPieChart(name, $chart.width());\n\t\t});\n\n\t\t// draw the currently active chart\n\t\tif($section.hasClass('active')) {\n\t\t\tdrawPieChart(name, $chart.width());\n\t\t}\n\t}\n\n\tfunction setupDistributionTable($section, data, urls) {\n\t\tvar rows = [];\n\t\tvar more_rows = [];\n\t\tvar row_data, i, len = data.length;\n\t\tvar total_loans = _.reduce(data, function(total, row) {\n\t\t\treturn total + row[1];\n\t\t}, 0);\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\trow_data = {\n\t\t\t\tlabel: data[i][0],\n\t\t\t\tpercent: numeral( data[i][1] / total_loans ).format('0.00%'),\n\t\t\t\turl: urls ? urls[ data[i][0] ] : false\n\t\t\t};\n\n\t\t\tif(i < 10) {\n\t\t\t\trows.push(row_data);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmore_rows.push(row_data);\n\t\t\t}\n\t\t}\n\n\t\t// add the table\n\t\t$section.append(table_template.render({\n\t\t\t'distribution-rows': rows,\n\t\t\t'show_more': !!more_rows.length,\n\t\t\t'number': more_rows.length\n\t\t}, {\n\t\t\t'01-molecules/40-portfolio/04-distribution-table-row': table_row_template\n\t\t}));\n\n\t\t// setup show more link\n\t\t$section.find('.show-more-link').click(function(event) {\n\t\t\tevent.preventDefault();\n\t\t\t$(this).css('display', 'none');\n\t\t\t$section.find('table').append(_.reduce(more_rows, function(row_string, row) {\n\t\t\t\treturn row_string + table_row_template.render(row);\n\t\t\t}, ''));\n\t\t});\n\t}\n\n\n\treturn {\n\t\tinit: function (data) {\n\t\t\tCTASubView.init();\n\n\t\t\tgoogle_loader = loadGoogleCharts();\n\n\t\t\tif(data.has_loans) {\n\t\t\t\tinitLoanCountGraph();\n\t\t\t\tinitLoanViewToggle();\n\t\t\t\tinitRecentLoanMap(data.public_id);\n\t\t\t\tinitDistributionGraphs(data.public_id);\n\t\t\t\tinitResizeHandler();\n\t\t\t}\n\n\t\t\tif (data.missing_inactivity_settings) {\n\t\t\t\tdisplayInactivitySettingsLightbox();\n\t\t\t}\n\n\t\t\tconfirmLoginSuccess();\n\t\t}\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Portfolio/OverviewView.js","'use strict';\n\n\nvar $ = require('jquery');\nvar autoCorrecter = require('lib/autoCorrecter/autoCorrecter');\n\nmodule.exports = {\n\tinit: function() {\n\t\tautoCorrecter.usd($('.amount-to-withdraw-field input'));\n\t}\n};\n\n\n// WEBPACK FOOTER //\n// ./views/views/Xb/Portfolio/WithdrawCreditView.js","//! moment.js\n//! version : 2.17.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return od.apply(null,arguments)}\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction b(a){od=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){\n// IE8 will treat undefined and null as object if it wasn't for\n// input != null\nreturn null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)\n// even if its not own property I'd still call it non-empty\nreturn!1;return!0}function f(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function g(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function h(a,b){var c,d=[];for(c=0;c0)for(c in rd)d=rd[c],e=b[d],p(e)||(a[d]=e);return a}\n// Moment prototype object\nfunction r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),\n// Prevent infinite loop in case updateOffset creates new moment\n// objects.\nsd===!1&&(sd=!0,a.updateOffset(this),sd=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a<0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}\n// compare two arrays, return the number of differences\nfunction v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d0?\"future\":\"past\"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Dd[c]=Dd[c+\"s\"]=Dd[b]=a}function K(a){return\"string\"==typeof a?Dd[a]||Dd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)i(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Ed[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Ed[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}\n// MOMENTS\nfunction R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Id[a]=e),b&&(Id[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Id[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function W(a){var b,c,d=a.match(Fd);for(b=0,c=d.length;b=0&&Gd.test(a);)a=a.replace(Gd,c),Gd.lastIndex=0,d-=1;return a}function Z(a,b,c){$d[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return i($d,a)?$d[a](b._strict,b._locale):new RegExp(_(a))}\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction _(a){return aa(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),f(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));\n//the Date.UTC function remaps years 0-99 to 1900-1999\nreturn a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}\n// start-of-first-week - start-of-year\nfunction ua(a,b,c){var// first-week day -- which january is always in the first week (4 for iso, 1 for other)\nd=7+b-c,\n// first-week day local weekday -- which local weekday is fwd\ne=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}\n//http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}\n// HELPERS\n// LOCALES\nfunction ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}\n// MOMENTS\nfunction Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}\n// HELPERS\nfunction Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:this._weekdays}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=k([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=je.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=je.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=je.call(this._weekdaysParse,g),e!==-1?e:(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:(e=je.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:(e=je.call(this._weekdaysParse,g),e!==-1?e:(e=je.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=je.call(this._minWeekdaysParse,g),e!==-1?e:(e=je.call(this._weekdaysParse,g),e!==-1?e:(e=je.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){\n// test the regex\nif(\n// make the regex if we don't have it already\ne=k([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}\n// MOMENTS\nfunction Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;\n// behaves the same as moment#day except\n// as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n// as a setter, sunday should belong to the previous week.\nif(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(i(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(i(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ue),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(i(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(i(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ve),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(i(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(i(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=we),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)\n// make the regex if we don't have it already\nc=k([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(\n// Sorting makes sure if one weekday (or abbr) is a prefix of another it\n// will match the longer piece.\ng.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}\n// FORMATTING\nfunction Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}\n// PARSING\nfunction Ua(a,b){return b._meridiemParse}\n// LOCALES\nfunction Va(a){\n// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n// Using charAt should be more compatible.\nreturn\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction Ya(a){for(var b,c,d,e,f=0;f0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)\n//the next array item is better than a shallower substring of this one\nbreak;b--}f++}return null}function Za(a){var b=null;\n// TODO: Find a better way to register and load all the locales in Node\nif(!Be[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=xe._abbr,require(\"./locale/\"+a),\n// because defineLocale currently also sets the global locale, we\n// want to undo that for lazy loaded locales\n$a(b)}catch(a){}return Be[a]}\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction $a(a,b){var c;\n// moment.duration._locale = moment._locale = data;\nreturn a&&(c=p(b)?bb(a):_a(a,b),c&&(xe=c)),xe._abbr}function _a(a,b){if(null!==b){var c=Ae;if(b.abbr=a,null!=Be[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),c=Be[a]._config;else if(null!=b.parentLocale){if(null==Be[b.parentLocale])return Ce[b.parentLocale]||(Ce[b.parentLocale]=[]),Ce[b.parentLocale].push({name:a,config:b}),null;c=Be[b.parentLocale]._config}\n// backwards compat for now: also set the locale\n// make sure we set the locale AFTER all child locales have been\n// created, so we won't end up with the child locale set.\nreturn Be[a]=new C(B(c,b)),Ce[a]&&Ce[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Be[a]}\n// useful for testing\nreturn delete Be[a],null}function ab(a,b){if(null!=b){var c,d=Ae;\n// MERGE\nnull!=Be[a]&&(d=Be[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Be[a],Be[a]=c,\n// backwards compat for now: also set the locale\n$a(a)}else\n// pass null for config to unupdate, useful for tests\nnull!=Be[a]&&(null!=Be[a].parentLocale?Be[a]=Be[a].parentLocale:null!=Be[a]&&delete Be[a]);return Be[a]}\n// returns locale data\nfunction bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return xe;if(!c(a)){if(\n//short-circuit everything else\nb=Za(a))return b;a=[a]}return Ya(a)}function cb(){return wd(Be)}function db(a){var b,c=a._a;return c&&m(a).overflow===-2&&(b=c[be]<0||c[be]>11?be:c[ce]<1||c[ce]>ea(c[ae],c[be])?ce:c[de]<0||c[de]>24||24===c[de]&&(0!==c[ee]||0!==c[fe]||0!==c[ge])?de:c[ee]<0||c[ee]>59?ee:c[fe]<0||c[fe]>59?fe:c[ge]<0||c[ge]>999?ge:-1,m(a)._overflowDayOfYear&&(bce)&&(b=ce),m(a)._overflowWeeks&&b===-1&&(b=he),m(a)._overflowWeekday&&b===-1&&(b=ie),m(a).overflow=b),a}\n// date from iso format\nfunction eb(a){var b,c,d,e,f,g,h=a._i,i=De.exec(h)||Ee.exec(h);if(i){for(m(a).iso=!0,b=0,c=Ge.length;bpa(e)&&(m(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[be]=c.getUTCMonth(),a._a[ce]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];\n// Zero out whatever was not defaulted, including time\nfor(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];\n// Check for 24:00:00.000\n24===a._a[de]&&0===a._a[ee]&&0===a._a[fe]&&0===a._a[ge]&&(a._nextDay=!0,a._a[de]=0),a._d=(a._useUTC?ta:sa).apply(null,f),\n// Apply timezone offset from input. The actual utcOffset can be changed\n// with parseZone.\nnull!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[de]=24)}}function jb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,\n// TODO: We need to take the current isoWeekYear, but that depends on\n// how we interpret now (local, utc, fixed offset). So create\n// a now version of current config (take local/utc/offset flags, and\n// create now).\nc=gb(b.GG,a._a[ae],wa(sb(),1,4).year),d=gb(b.W,1),e=gb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(sb(),f,g);c=gb(b.gg,a._a[ae],j.year),\n// Default to current week.\nd=gb(b.w,j.week),null!=b.d?(\n// weekday -- low day numbers are considered next week\ne=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(\n// local weekday -- counting starts from begining of week\ne=b.e+f,(b.e<0||b.e>6)&&(i=!0)):\n// default to begining of week\ne=f}d<1||d>xa(c,f,g)?m(a)._overflowWeeks=!0:null!=i?m(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ae]=h.year,a._dayOfYear=h.dayOfYear)}\n// date from string and format string\nfunction kb(b){\n// TODO: Move this to another part of the creation flow to prevent circular deps\nif(b._f===a.ISO_8601)return void eb(b);b._a=[],m(b).empty=!0;\n// This array is used to make a Date, either with `new Date` or `Date.UTC`\nvar c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Fd)||[],c=0;c0&&m(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),\n// don't parse if it's not a known token\nId[f]?(d?m(b).empty=!1:m(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&m(b).unusedTokens.push(f);\n// add remaining unparsed input length to the string\nm(b).charsLeftOver=i-j,h.length>0&&m(b).unusedInput.push(h),\n// clear _12h flag if hour is <= 12\nb._a[de]<=12&&m(b).bigHour===!0&&b._a[de]>0&&(m(b).bigHour=void 0),m(b).parsedDateParts=b._a.slice(0),m(b).meridiem=b._meridiem,\n// handle meridiem\nb._a[de]=lb(b._locale,b._a[de],b._meridiem),ib(b),db(b)}function lb(a,b,c){var d;\n// Fallback\nreturn null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}\n// date from string and array of format strings\nfunction mb(a){var b,c,d,e,f;if(0===a._f.length)return m(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction Db(b,c){var d,e=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if(\"string\"==typeof b){if(b=Ab(Xd,b),null===b)return this}else Math.abs(b)<16&&(b=60*b);return!this._isUTC&&c&&(d=Cb(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,\"m\"),e!==b&&(!c||this._changeInProgress?Tb(this,Ob(b-e,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?e:Cb(this)}function Eb(a,b){return null!=a?(\"string\"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Fb(a){return this.utcOffset(0,a)}function Gb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Cb(this),\"m\")),this}function Hb(){if(null!=this._tzm)this.utcOffset(this._tzm);else if(\"string\"==typeof this._i){var a=Ab(Wd,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Ib(a){return!!this.isValid()&&(a=a?sb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Jb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Kb(){if(!p(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=pb(a),a._a){var b=a._isUTC?k(a._a):sb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Lb(){return!!this.isValid()&&!this._isUTC}function Mb(){return!!this.isValid()&&this._isUTC}function Nb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ob(a,b){var c,d,e,g=a,\n// matching against regexp is expensive, do it on demand\nh=null;// checks for null or undefined\nreturn xb(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:f(a)?(g={},b?g[b]=a:g.milliseconds=a):(h=Ne.exec(a))?(c=\"-\"===h[1]?-1:1,g={y:0,d:u(h[ce])*c,h:u(h[de])*c,m:u(h[ee])*c,s:u(h[fe])*c,ms:u(yb(1e3*h[ge]))*c}):(h=Oe.exec(a))?(c=\"-\"===h[1]?-1:1,g={y:Pb(h[2],c),M:Pb(h[3],c),w:Pb(h[4],c),d:Pb(h[5],c),h:Pb(h[6],c),m:Pb(h[7],c),s:Pb(h[8],c)}):null==g?g={}:\"object\"==typeof g&&(\"from\"in g||\"to\"in g)&&(e=Rb(sb(g.from),sb(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new wb(g),xb(a)&&i(a,\"_locale\")&&(d._locale=a._locale),d}function Pb(a,b){\n// We'd normally use ~~inp for this, but unfortunately it also\n// converts floats to ints.\n// inp may be undefined, so careful calling replace on it.\nvar c=a&&parseFloat(a.replace(\",\",\".\"));\n// apply sign while we're at it\nreturn(isNaN(c)?0:c)*b}function Qb(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Rb(a,b){var c;return a.isValid()&&b.isValid()?(b=Bb(b,a),a.isBefore(b)?c=Qb(a,b):(c=Qb(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}\n// TODO: remove 'name' arg after deprecation is removed\nfunction Sb(a,b){return function(c,d){var e,f;\n//invert the arguments, but complain about it\nreturn null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Ob(c,d),Tb(this,e,a),this}}function Tb(b,c,d,e){var f=c._milliseconds,g=yb(c._days),h=yb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Ub(a,b){var c=a.diff(b,\"days\",!0);return c<-6?\"sameElse\":c<-1?\"lastWeek\":c<0?\"lastDay\":c<1?\"sameDay\":c<2?\"nextDay\":c<7?\"nextWeek\":\"sameElse\"}function Vb(b,c){\n// We want to compare the start of today, vs this.\n// Getting start-of-today depends on whether we're local/utc/offset or not.\nvar d=b||sb(),e=Bb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,sb(d)))}function Wb(){return new r(this)}function Xb(a,b){var c=s(a)?a:sb(a);return!(!this.isValid()||!c.isValid())&&(b=K(p(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()>c.valueOf():c.valueOf()f&&(b=f),Fc.call(this,a,b,c,d,e))}function Fc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}\n// MOMENTS\nfunction Gc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}\n// HELPERS\n// MOMENTS\nfunction Hc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Ic(a,b){b[ge]=u(1e3*(\"0.\"+a))}\n// MOMENTS\nfunction Jc(){return this._isUTC?\"UTC\":\"\"}function Kc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Lc(a){return sb(1e3*a)}function Mc(){return sb.apply(null,arguments).parseZone()}function Nc(a){return a}function Oc(a,b,c,d){var e=bb(),f=k().set(d,b);return e[c](f,a)}function Pc(a,b,c){if(f(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Oc(a,b,c,\"month\");var d,e=[];for(d=0;d<12;d++)e[d]=Oc(a,d,c,\"month\");return e}\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction Qc(a,b,c,d){\"boolean\"==typeof a?(f(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,f(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),g=a?e._week.dow:0;if(null!=c)return Oc(b,(c+g)%7,d,\"day\");var h,i=[];for(h=0;h<7;h++)i[h]=Oc(b,(h+g)%7,d,\"day\");return i}function Rc(a,b){return Pc(a,b,\"months\")}function Sc(a,b){return Pc(a,b,\"monthsShort\")}function Tc(a,b,c){return Qc(a,b,c,\"weekdays\")}function Uc(a,b,c){return Qc(a,b,c,\"weekdaysShort\")}function Vc(a,b,c){return Qc(a,b,c,\"weekdaysMin\")}function Wc(){var a=this._data;return this._milliseconds=Ze(this._milliseconds),this._days=Ze(this._days),this._months=Ze(this._months),a.milliseconds=Ze(a.milliseconds),a.seconds=Ze(a.seconds),a.minutes=Ze(a.minutes),a.hours=Ze(a.hours),a.months=Ze(a.months),a.years=Ze(a.years),this}function Xc(a,b,c,d){var e=Ob(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction Yc(a,b){return Xc(this,a,b,1)}\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction Zc(a,b){return Xc(this,a,b,-1)}function $c(a){return a<0?Math.floor(a):Math.ceil(a)}function _c(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;\n// if we have a mix of positive and negative values, bubble down first\n// check: https://github.com/moment/moment/issues/2166\n// The following code bubbles up values, see the tests for\n// examples of what that means.\n// convert days to months\n// 12 months -> 1 year\nreturn f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*$c(bd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ad(g)),h+=e,g-=$c(bd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ad(a){\n// 400 years have 146097 days (taking into account leap year rules)\n// 400 years have 12 months === 4800\nreturn 4800*a/146097}function bd(a){\n// the reverse of daysToMonths\nreturn 146097*a/4800}function cd(a){var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+ad(b),\"month\"===a?c:c/12;switch(\n// handle milliseconds separately because of floating point math errors (issue #1867)\nb=this._days+Math.round(bd(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;\n// Math.floor prevents floating point math errors here\ncase\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}\n// TODO: Use this.as('ms')?\nfunction dd(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12)}function ed(a){return function(){return this.as(a)}}function fd(a){return a=K(a),this[a+\"s\"]()}function gd(a){return function(){return this._data[a]}}function hd(){return t(this.days()/7)}\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction id(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function jd(a,b,c){var d=Ob(a).abs(),e=of(d.as(\"s\")),f=of(d.as(\"m\")),g=of(d.as(\"h\")),h=of(d.as(\"d\")),i=of(d.as(\"M\")),j=of(d.as(\"y\")),k=e0,k[4]=c,id.apply(null,k)}\n// This function allows you to set the rounding function for relative time strings\nfunction kd(a){return void 0===a?of:\"function\"==typeof a&&(of=a,!0)}\n// This function allows you to set a threshold for relative time strings\nfunction ld(a,b){return void 0!==pf[a]&&(void 0===b?pf[a]:(pf[a]=b,!0))}function md(a){var b=this.localeData(),c=jd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function nd(){\n// for ISO strings we do not use the normal bubbling rules:\n// * milliseconds bubble up until they become hours\n// * days do not bubble at all\n// * months bubble up until they become years\n// This is because there is no context-free conversion between hours and days\n// (think of clock changes)\n// and also not between days and months (28-31 days per month)\nvar a,b,c,d=qf(this._milliseconds)/1e3,e=qf(this._days),f=qf(this._months);\n// 3600 seconds -> 60 minutes -> 1 hour\na=t(d/60),b=t(a/60),d%=60,a%=60,\n// 12 months -> 1 year\nc=t(f/12),f%=12;\n// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\nvar g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}var od,pd;pd=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d68?1900:2e3)};\n// MOMENTS\nvar pe=O(\"FullYear\",!0);\n// FORMATTING\nU(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),\n// ALIASES\nJ(\"week\",\"w\"),J(\"isoWeek\",\"W\"),\n// PRIORITIES\nM(\"week\",5),M(\"isoWeek\",5),\n// PARSING\nZ(\"w\",Od),Z(\"ww\",Od,Kd),Z(\"W\",Od),Z(\"WW\",Od,Kd),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var qe={dow:0,// Sunday is the first day of the week.\ndoy:6};\n// FORMATTING\nU(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),\n// ALIASES\nJ(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),\n// PRIORITY\nM(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),\n// PARSING\nZ(\"d\",Od),Z(\"e\",Od),Z(\"E\",Od),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);\n// if we didn't get a weekday name, mark the date as invalid\nnull!=e?b.d=e:m(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});\n// LOCALES\nvar re=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),se=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),te=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ue=Zd,ve=Zd,we=Zd;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),\n// ALIASES\nJ(\"hour\",\"h\"),\n// PRIORITY\nM(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Od),Z(\"h\",Od),Z(\"HH\",Od,Kd),Z(\"hh\",Od,Kd),Z(\"hmm\",Pd),Z(\"hmmss\",Qd),Z(\"Hmm\",Pd),Z(\"Hmmss\",Qd),ba([\"H\",\"HH\"],de),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[de]=u(a),m(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d)),m(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d,2)),b[fe]=u(a.substr(e)),m(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[de]=u(a.substr(0,d)),b[ee]=u(a.substr(d,2)),b[fe]=u(a.substr(e))});var xe,ye=/[ap]\\.?m?\\.?/i,ze=O(\"Hours\",!0),Ae={calendar:xd,longDateFormat:yd,invalidDate:zd,ordinal:Ad,ordinalParse:Bd,relativeTime:Cd,months:le,monthsShort:me,week:qe,weekdays:re,weekdaysMin:te,weekdaysShort:se,meridiemParse:ye},Be={},Ce={},De=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Ee=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Fe=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ge=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],\n// YYYYMM is NOT allowed by the standard\n[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],He=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Ie=/^\\/?Date\\((\\-?\\d+)/i;a.createFromInputFallback=x(\"value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),\n// constant that refers to the ISO standard\na.ISO_8601=function(){};var Je=x(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=sb.apply(null,arguments);return this.isValid()&&a.isValid()?athis?this:a:o()}),Le=function(){return Date.now?Date.now():+new Date};zb(\"Z\",\":\"),zb(\"ZZ\",\"\"),\n// PARSING\nZ(\"Z\",Xd),Z(\"ZZ\",Xd),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Ab(Xd,a)});\n// HELPERS\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar Me=/([\\+\\-]|\\d\\d)/gi;\n// HOOKS\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\na.updateOffset=function(){};\n// ASP.NET json date format regex\nvar Ne=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Oe=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ob.fn=wb.prototype;var Pe=Sb(1,\"add\"),Qe=Sb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Re=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});\n// FORMATTING\nU(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),zc(\"gggg\",\"weekYear\"),zc(\"ggggg\",\"weekYear\"),zc(\"GGGG\",\"isoWeekYear\"),zc(\"GGGGG\",\"isoWeekYear\"),\n// ALIASES\nJ(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),\n// PRIORITY\nM(\"weekYear\",1),M(\"isoWeekYear\",1),\n// PARSING\nZ(\"G\",Vd),Z(\"g\",Vd),Z(\"GG\",Od,Kd),Z(\"gg\",Od,Kd),Z(\"GGGG\",Sd,Md),Z(\"gggg\",Sd,Md),Z(\"GGGGG\",Td,Nd),Z(\"ggggg\",Td,Nd),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),\n// FORMATTING\nU(\"Q\",0,\"Qo\",\"quarter\"),\n// ALIASES\nJ(\"quarter\",\"Q\"),\n// PRIORITY\nM(\"quarter\",7),\n// PARSING\nZ(\"Q\",Jd),ba(\"Q\",function(a,b){b[be]=3*(u(a)-1)}),\n// FORMATTING\nU(\"D\",[\"DD\",2],\"Do\",\"date\"),\n// ALIASES\nJ(\"date\",\"D\"),\n// PRIOROITY\nM(\"date\",9),\n// PARSING\nZ(\"D\",Od),Z(\"DD\",Od,Kd),Z(\"Do\",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),ba([\"D\",\"DD\"],ce),ba(\"Do\",function(a,b){b[ce]=u(a.match(Od)[0],10)});\n// MOMENTS\nvar Se=O(\"Date\",!0);\n// FORMATTING\nU(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),\n// ALIASES\nJ(\"dayOfYear\",\"DDD\"),\n// PRIORITY\nM(\"dayOfYear\",4),\n// PARSING\nZ(\"DDD\",Rd),Z(\"DDDD\",Ld),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),\n// FORMATTING\nU(\"m\",[\"mm\",2],0,\"minute\"),\n// ALIASES\nJ(\"minute\",\"m\"),\n// PRIORITY\nM(\"minute\",14),\n// PARSING\nZ(\"m\",Od),Z(\"mm\",Od,Kd),ba([\"m\",\"mm\"],ee);\n// MOMENTS\nvar Te=O(\"Minutes\",!1);\n// FORMATTING\nU(\"s\",[\"ss\",2],0,\"second\"),\n// ALIASES\nJ(\"second\",\"s\"),\n// PRIORITY\nM(\"second\",15),\n// PARSING\nZ(\"s\",Od),Z(\"ss\",Od,Kd),ba([\"s\",\"ss\"],fe);\n// MOMENTS\nvar Ue=O(\"Seconds\",!1);\n// FORMATTING\nU(\"S\",0,0,function(){return~~(this.millisecond()/100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),\n// ALIASES\nJ(\"millisecond\",\"ms\"),\n// PRIORITY\nM(\"millisecond\",16),\n// PARSING\nZ(\"S\",Rd,Jd),Z(\"SS\",Rd,Kd),Z(\"SSS\",Rd,Ld);var Ve;for(Ve=\"SSSS\";Ve.length<=9;Ve+=\"S\")Z(Ve,Ud);for(Ve=\"S\";Ve.length<=9;Ve+=\"S\")ba(Ve,Ic);\n// MOMENTS\nvar We=O(\"Milliseconds\",!1);\n// FORMATTING\nU(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var Xe=r.prototype;Xe.add=Pe,Xe.calendar=Vb,Xe.clone=Wb,Xe.diff=bc,Xe.endOf=oc,Xe.format=gc,Xe.from=hc,Xe.fromNow=ic,Xe.to=jc,Xe.toNow=kc,Xe.get=R,Xe.invalidAt=xc,Xe.isAfter=Xb,Xe.isBefore=Yb,Xe.isBetween=Zb,Xe.isSame=$b,Xe.isSameOrAfter=_b,Xe.isSameOrBefore=ac,Xe.isValid=vc,Xe.lang=Re,Xe.locale=lc,Xe.localeData=mc,Xe.max=Ke,Xe.min=Je,Xe.parsingFlags=wc,Xe.set=S,Xe.startOf=nc,Xe.subtract=Qe,Xe.toArray=sc,Xe.toObject=tc,Xe.toDate=rc,Xe.toISOString=ec,Xe.inspect=fc,Xe.toJSON=uc,Xe.toString=dc,Xe.unix=qc,Xe.valueOf=pc,Xe.creationData=yc,\n// Year\nXe.year=pe,Xe.isLeapYear=ra,\n// Week Year\nXe.weekYear=Ac,Xe.isoWeekYear=Bc,\n// Quarter\nXe.quarter=Xe.quarters=Gc,\n// Month\nXe.month=ka,Xe.daysInMonth=la,\n// Week\nXe.week=Xe.weeks=Ba,Xe.isoWeek=Xe.isoWeeks=Ca,Xe.weeksInYear=Dc,Xe.isoWeeksInYear=Cc,\n// Day\nXe.date=Se,Xe.day=Xe.days=Ka,Xe.weekday=La,Xe.isoWeekday=Ma,Xe.dayOfYear=Hc,\n// Hour\nXe.hour=Xe.hours=ze,\n// Minute\nXe.minute=Xe.minutes=Te,\n// Second\nXe.second=Xe.seconds=Ue,\n// Millisecond\nXe.millisecond=Xe.milliseconds=We,\n// Offset\nXe.utcOffset=Db,Xe.utc=Fb,Xe.local=Gb,Xe.parseZone=Hb,Xe.hasAlignedHourOffset=Ib,Xe.isDST=Jb,Xe.isLocal=Lb,Xe.isUtcOffset=Mb,Xe.isUtc=Nb,Xe.isUTC=Nb,\n// Timezone\nXe.zoneAbbr=Jc,Xe.zoneName=Kc,\n// Deprecations\nXe.dates=x(\"dates accessor is deprecated. Use date instead.\",Se),Xe.months=x(\"months accessor is deprecated. Use month instead\",ka),Xe.years=x(\"years accessor is deprecated. Use year instead\",pe),Xe.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",Eb),Xe.isDSTShifted=x(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",Kb);var Ye=C.prototype;Ye.calendar=D,Ye.longDateFormat=E,Ye.invalidDate=F,Ye.ordinal=G,Ye.preparse=Nc,Ye.postformat=Nc,Ye.relativeTime=H,Ye.pastFuture=I,Ye.set=A,\n// Month\nYe.months=fa,Ye.monthsShort=ga,Ye.monthsParse=ia,Ye.monthsRegex=na,Ye.monthsShortRegex=ma,\n// Week\nYe.week=ya,Ye.firstDayOfYear=Aa,Ye.firstDayOfWeek=za,\n// Day of Week\nYe.weekdays=Fa,Ye.weekdaysMin=Ha,Ye.weekdaysShort=Ga,Ye.weekdaysParse=Ja,Ye.weekdaysRegex=Na,Ye.weekdaysShortRegex=Oa,Ye.weekdaysMinRegex=Pa,\n// Hours\nYe.isPM=Va,Ye.meridiem=Wa,$a(\"en\",{ordinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),\n// Side effect imports\na.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var Ze=Math.abs,$e=ed(\"ms\"),_e=ed(\"s\"),af=ed(\"m\"),bf=ed(\"h\"),cf=ed(\"d\"),df=ed(\"w\"),ef=ed(\"M\"),ff=ed(\"y\"),gf=gd(\"milliseconds\"),hf=gd(\"seconds\"),jf=gd(\"minutes\"),kf=gd(\"hours\"),lf=gd(\"days\"),mf=gd(\"months\"),nf=gd(\"years\"),of=Math.round,pf={s:45,// seconds to minute\nm:45,// minutes to hour\nh:22,// hours to day\nd:26,// days to month\nM:11},qf=Math.abs,rf=wb.prototype;\n// Deprecations\n// Side effect imports\n// FORMATTING\n// PARSING\n// Side effect imports\nreturn rf.abs=Wc,rf.add=Yc,rf.subtract=Zc,rf.as=cd,rf.asMilliseconds=$e,rf.asSeconds=_e,rf.asMinutes=af,rf.asHours=bf,rf.asDays=cf,rf.asWeeks=df,rf.asMonths=ef,rf.asYears=ff,rf.valueOf=dd,rf._bubble=_c,rf.get=fd,rf.milliseconds=gf,rf.seconds=hf,rf.minutes=jf,rf.hours=kf,rf.days=lf,rf.weeks=hd,rf.months=mf,rf.years=nf,rf.humanize=md,rf.toISOString=nd,rf.toString=nd,rf.toJSON=nd,rf.locale=lc,rf.localeData=mc,rf.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",nd),rf.lang=Re,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Vd),Z(\"X\",Yd),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),a.version=\"2.17.1\",b(sb),a.fn=Xe,a.min=ub,a.max=vb,a.now=Le,a.utc=k,a.unix=Lc,a.months=Rc,a.isDate=g,a.locale=$a,a.invalid=o,a.duration=Ob,a.isMoment=s,a.weekdays=Tc,a.parseZone=Mc,a.localeData=bb,a.isDuration=xb,a.monthsShort=Sc,a.weekdaysMin=Vc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Uc,a.normalizeUnits=K,a.relativeTimeRounding=kd,a.relativeTimeThreshold=ld,a.calendarFormat=Ub,a.prototype=Xe,a});\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/moment/min/moment.min.js\n// module id = 546\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette');\n\n\treturn Marionette.ItemView.extend({\n\t\tevents: {\n\t\t\tclick: '_handleClick'\n\t\t}\n\n\n\t\t, _handleClick: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.trigger('clicked');\n\t\t}\n\n\n\t\t, disable: function() {\n\t\t\tthis.$el.addClass('disabled');\n\t\t}\n\n\t\t, enable: function() {\n\t\t\tthis.$el.removeClass('disabled');\n\t\t}\n\n\t\t, hide: function() {\n\t\t\tthis.$el.addClass('hidden');\n\t\t}\n\n\t\t, show: function() {\n\t\t\tthis.$el.removeClass('hidden');\n\t\t}\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Lend/ClickableView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t
        \\n\\t
        \\n\\t
        \\n\\n\\t
        \\n\\t
        \\n\\t
        \\n\\t
        \\n
        \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/03-media/01-loading-spinner.mustache\n// module id = 548\n// module chunks = 0","define(function(require) {\n\t'use strict';\n\n\tvar undef;\n\tvar _ = require('underscore');\n\n\n\t/**\n\t * Will only set true. False equivalent to not-set.\n\t *\n\t * @param value\n\t * @returns {true|undefined}\n\t */\n\tfunction acceptance(value) {\n\t\tif (value !== null) {\n\t\t\tif (value === true || value === 'true' || value > 0) {\n\t\t\t\tvalue = true;\n\t\t\t} else {\n\t\t\t\tvalue = undef;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\n\t/**\n\t * Coerce value to an array. If value is not already an array, will\n\t * return [] for null/undefined/'', and [value] otherwise\n\t *\n\t * @param value\n\t * @returns {array}\n\t */\n\tfunction array(value) {\n\t\tif (! _.isArray(value)) {\n\t\t\tif (value === null || value === undef || value === '') {\n\t\t\t\tvalue = [];\n\t\t\t} else {\n\t\t\t\tvalue = [value];\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\n\t/**\n\t * Coerce value to true or false\n\t *\n\t * @param value\n\t * @returns {boolean}\n\t */\n\tfunction bool(value) {\n\t\tif (value !== null) {\n\t\t\tvalue = value === true || value === 'true' || value > 0;\n\t\t}\n\n\t\treturn value;\n\t}\n\n\n\t/**\n\t * Coerces the value to a number. If the value is a non-number like \"abc\" or null,\n\t * will return 0 if the value is falsey and 1 if the value is truthy\n\t *\n\t * @param value\n\t * @returns {number}\n\t */\n\tfunction number(value) {\n\t\tif(!_.isNumber(value) || _.isNaN(value)) {\n\t\t\tvar old = value;\n\t\t\tvalue = parseFloat(value);\n\n\t\t\tif(_.isNaN(value)) {\n\t\t\t\tvalue = old ? 1 : 0;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\n\t/**\n\t * Coerces a value to an array of numbers\n\t *\n\t * @param value\n\t * @returns {[number]}\n\t */\n\tfunction number_array(value) {\n\t\treturn _.map(array(value), function(val) {\n\t\t\treturn number(val);\n\t\t});\n\t}\n\n\n\t/**\n\t * Coerces a string like \"0,8\" to an array like [0,8]\n\t *\n\t * @param value\n\t * @returns {[number]}\n\t */\n\tfunction number_range(value) {\n\t\treturn number_array(range(value));\n\t}\n\n\n\t/**\n\t * Coerces a string like \"a,z\" to an array like [\"a\", \"z\"]\n\t *\n\t * @param value\n\t * @returns {[string]}\n\t */\n\tfunction range(value) {\n\t\tif (_.isString(value)) {\n\t\t\tvalue = _.map(value.split(','), function (val) {\n\t\t\t\treturn val.trim();\n\t\t\t});\n\t\t}\n\n\t\treturn value;\n\t}\n\n\n\t/**\n\t * Returns the value as a string\n\t *\n\t * @param value\n\t * @returns {string}\n\t */\n\tfunction string(value) {\n\t\treturn value + '';\n\t}\n\n\n\t/**\n\t * Coerces a string like \"a,z|b,y\" to an array like [\"a,z\", \"b,y\"]\n\t *\n\t * @param value\n\t * @returns {[string]}\n\t */\n\tfunction vertical_line_range(value) {\n\t\tif (_.isString(value)) {\n\t\t\tvalue = _.map(value.split('|'), function (val) {\n\t\t\t\treturn val.trim();\n\t\t\t});\n\t\t}\n\n\t\treturn value;\n\t}\n\n\n\treturn {\n\t\tacceptance: acceptance\n\t\t, array: array\n\t\t, bool: bool\n\t\t, number: number\n\t\t, number_array: number_array\n\t\t, number_range: number_range\n\t\t, range: range\n\t\t, string: string\n\t\t, vertical_line_range: vertical_line_range\n\t};\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/coercions/coercions.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t\t, _ = require('underscore')\n\t\t, coercions = require('lib/coercions/coercions')\n\t\t, Backbone = require('backbone');\n\n\n\treturn Backbone.Model.extend({\n\n\t\t/**\n\t\t *\n\t\t * @param name\n\t\t * @param value\n\t\t * @returns {*}\n\t\t */\n\t\tcoerce: function(name, value) {\n\t\t\tvar type = this.filterTypes[name];\n\t\t\tvar coercion = coercions[type];\n\t\t\treturn type && coercion ? coercion(value) : value;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @returns {object}\n\t\t */\n\t\t, getCriteria: function() {\n\t\t\treturn this.omit(this.filterNames);\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @returns {object}\n\t\t */\n\t\t, getFilters: function() {\n\t\t\treturn this.pick(this.filterNames);\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param data\n\t\t * @returns {string}\n\t\t */\n\t\t, parameterize: function(data) {\n\t\t\t// Manually encode some characters which jQuery is not doing right\n\t\t\tdata = $.param(data);\n\n\t\t\tdata = data.replace(/\\(/g,'%28');\n\t\t\tdata = data.replace(/\\)/g,'%29');\n\t\t\tdata = data.replace(/\\+/g,'%20');\n\t\t\treturn data;\n\t\t}\n\n\n\t\t/**\n\t\t * Note, we don't actually set any attributes on the model when parsing the sirenAction.\n\t\t * Instead, we set the `filterNames` and the `filterTypes`.\n\t\t *\n\t\t * @param searchAction\n\t\t * @returns {*}\n\t\t */\n\t\t, parse: function (searchAction) {\n\t\t\tvar filterTypes = {}\n\t\t\t\t, filterNames = [];\n\n\t\t\t_.each(searchAction.fields, function (field) {\n\t\t\t\tvar name;\n\n\t\t\t\tif (field.name != 'q') {\n\t\t\t\t\tif (field.name.indexOf('q.') === 0) {\n\t\t\t\t\t\tname = field.name.slice(2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = field.name;\n\t\t\t\t\t}\n\t\t\t\t\tfilterNames.push(name);\n\n\t\t\t\t\tif(field.type) {\n\t\t\t\t\t\tfilterTypes[name] = field.type;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this);\n\n\n\t\t\tthis.filterNames = filterNames;\n\t\t\tthis.filterTypes = filterTypes;\n\t\t\treturn {};\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param url\n\t\t * @returns {*}\n\t\t */\n\t\t, resolve: function(url) {\n\t\t\tvar self = this;\n\n\t\t\tthis.siren.abortLastRequest();\n\n\t\t\treturn this.siren.resolve(url)\n\t\t\t\t.done(function (collection) {\n\t\t\t\t\tself.meta.set(collection._meta);\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @returns {$.Deferred}\n\t\t */\n\t\t, resolveSearch: function () {\n\t\t\treturn this.resolve(this.href + this.toQueryString());\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @returns {Object|undefined}\n\t\t */\n\t\t, getCoercedFilters: function() {\n\t\t\tvar filters = this.getFilters()\n\t\t\t\t, coerced\n\t\t\t\t, self = this;\n\n\t\t\tif(!_.isEmpty(filters)) {\n\t\t\t\tcoerced = {};\n\t\t\t\t_.each(filters, function(value, name) {\n\t\t\t\t\tcoerced[name] = self.coerce(name, value);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn coerced;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @returns {string}\n\t\t */\n\t\t, toQueryString: function() {\n\t\t\tvar query = '';\n\n\t\t\tif(!this.isEmpty()) {\n\t\t\t\tvar filters = this.getCoercedFilters();\n\t\t\t\tvar criteria = this.getCriteria();\n\n\t\t\t\tif(filters) {\n\t\t\t\t\tcriteria.q = 'j:' + JSON.stringify(filters);\n\t\t\t\t}\n\n\t\t\t\tquery = '?' + this.parameterize(criteria);\n\t\t\t}\n\n\t\t\treturn query;\n\t\t}\n\n\n\t\t/**\n\t\t * http://backbonejs.org/#Model-constructor\n\t\t *\n\t\t * @param {Object} searchAction\n\t\t * @param {Object} options\n\t\t */\n\t\t, constructor: function (searchAction, options) {\n\t\t\toptions = options || {};\n\t\t\toptions.parse = true; // Force \"parse\" to be called on instantiation: http://stackoverflow.com/questions/11068989/backbone-js-using-parse-without-calling-fetch/14950519#14950519\n\n\t\t\tthis.siren = options.siren;\n\t\t\t$.extend(this, searchAction);\n\n\t\t\tthis.meta = new Backbone.Model();\n\n\t\t\tBackbone.Model.call(this, searchAction, options);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/Backbone.Model.SirenSearch/Backbone.Model.SirenSearch.js","\ndefine(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, numeral = require('numeral') // THIS IS AN AWESOME LIBRARY. USE IT.\n\t\t;\n\n\t// used by decodeEntities. making here so that it's only made once.\n\tvar element = document.createElement('div');\n\n\tfunction decodeEntities (str) {\n\t\tstr += '';\n\n\t\t// strip script/html tags\n\t\tstr = str.replace(/]*>([\\S\\s]*?)<\\/script>/gmi, '');\n\t\tstr = str.replace(/<\\/?\\w(?:[^\"'>]|\"[^\"]*\"|'[^']*')*>/gmi, '');\n\t\telement.innerHTML = str;\n\t\tstr = element.textContent;\n\t\telement.textContent = '';\n\n\t\treturn str;\n\t}\n\n\tfunction escapeHtml(str) {\n\t\tvar map = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'\"': '"',\n\t\t\t\"'\": ''' // jshint ignore:line\n\t\t};\n\n\t\treturn str.replace(/[&<>\"']/g, function(m) { return map[m]; });\n\t}\n\n\tfunction formatBcMoney (money, format) {\n\t\tif (_.has(money,'amount') && _.has(money,'currency')) {\n\t\t\treturn formatMoney(money.amount, money.currency, format);\n\t\t} else {\n\t\t\treturn '-';\n\t\t}\n\t}\n\n\tfunction formatMoney (amount, currency, format) {\n\t\tformat = format || '($0,0[.]00)';\n\t\tif (currency && currency !== 'USD') {\n\t\t\tformat = format.replace('$','') + ' ' + currency;\n\t\t}\n\t\treturn numeral(amount).format(format);\n\t}\n\n\t/**\n\t * Accepts a percentile amount, formats it. ( e.g. for 86%, accepts 86, not .86 ).\n\t *\n\t * @param percentAmount\n\t * @param format\n\t * @returns {*}\n\t */\n\tfunction formatPercent (percentAmount, format) {\n\t\tformat = format || '0[.]0%';\n\t\treturn numeral(percentAmount).divide(100).format(format);\n\t}\n\n\t// create a 'safe' htmlified string\n\tfunction htmlify (str) {\n\t\tstr = unhtmlify(str);\n\t\tstr = escapeHtml(str);\n\n\t\t// turn urls into \n\t\tstr = str.replace(/(\\s)(www.[^\\s)<]+)\\b/g, '$1https://$2');\n\t\tstr = str.replace(/(\\b)(https?:\\/\\/([^\\s)<>\"']+))\\b/g, '$1$3');\n\n\t\t// preserve and \n\t\tstr = str.replace(/<[bB]>(.+)<\\/[bB]>/g, '$1');\n\t\tstr = str.replace(/<[iI]>(.+)<\\/[iI]>/g, '$1');\n\n\t\t// turn new lines into
        \n\t\tstr = str.replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1
        $2');\n\n\t\treturn str;\n\t}\n\n\tfunction stripslashes (str) {\n\t\treturn (str + '')\n\t\t\t.replace(/\\\\(.?)/g, function (s, n1) {\n\t\t\t\tswitch (n1) {\n\t\t\t\t\tcase '\\\\':\n\t\t\t\t\t\treturn '\\\\';\n\t\t\t\t\tcase '0':\n\t\t\t\t\t\treturn '\\u0000';\n\t\t\t\t\tcase '':\n\t\t\t\t\t\treturn '';\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn n1;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tfunction truncate (myString, maxLength) {\n\t\tif (!myString) {\n\t\t\treturn '';\n\t\t}\n\t\tif (myString.length > maxLength) {\n\t\t\tmyString = myString.substring(0, maxLength - 3) + '...';\n\t\t}\n\t\treturn myString;\n\t}\n\n\t// convert any tags in str to non-html representation\n\tfunction unhtmlify (str) {\n\t\tstr += '';\n\n\t\tstr = stripslashes(str);\n\t\tstr = str.replace('

        ','\\n');\n\t\tstr = str.replace('

        ','');\n\t\tstr = str.replace('
        ','\\n');\n\t\tstr = decodeEntities(str);\n\n\t\treturn str;\n\t}\n\n\treturn {\n\t\tdecodeEntities: decodeEntities\n\t\t, escapeHtml: escapeHtml\n\t\t, formatBcMoney: formatBcMoney\n\t\t, formatMoney: formatMoney\n\t\t, formatPercent: formatPercent\n\t\t, htmlify: htmlify\n\t\t, stripslashes: stripslashes\n\t\t, truncate: truncate\n\t\t, unhtmlify: unhtmlify\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/formatters/formatters.js","define(['backgrid', 'backgrid-paginator', 'backgrid-filter'], function (Backgrid) {\n\t'use strict';\n\n\treturn Backgrid;\n});\n\n\n// WEBPACK FOOTER //\n// ./loaders/kvBackgrid.js","/**\n * Porting this over from Backbone.Siren.FormView\n * I'm removing a few things, specifically, the parsing of individual fields and fieldAttributes\n * since that heavy lifting is now being done by .stickit()\n *\n * @todo While the name, backbone.marionette.formView implies this is a generic library, it is NOT\n * Eventually it would be nice to break down the abstraction layers and open source backbone.marionette\n * while keeping our own app specific version that inherits from it...\n *\n *\n * Things formView needs to do:\n * - create form element\n * - use the viewHelpers: controlSet and formRow\n * - auto-generated\n * - allow for setting of additional data\n *\n */\ndefine(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t, Backbone = require('backbone')\n\t, Marionette = require('marionette')\n\t, $ = Backbone.$;\n\n\n\t/**\n\t * To be used as the iterator to _.reduce().\n\t *\n\t * @param {Array} memo Memoized results\n\t * @param {Object} stickitField\n\t * @param {String} selector\n\t * @returns {*}\n\t */\n\tfunction reduceStickitFields (memo, stickitField, selector) {\n\n\t\t// Don't stickit if stickitField is not a model (it could be a function)\n\t\tif (! (stickitField.model instanceof Backbone.Model)) {\n\t\t\treturn memo;\n\t\t}\n\n\t\t// Check if there is already a stickitConfig for the given model\n\t\tvar stickitConfig = _.find(memo, function (config) {\n\t\t\treturn stickitField.model.cid === config.model.cid;\n\t\t});\n\n\t\t// Create a new config if one does not already exist for the current model\n\t\tif (! stickitConfig) {\n\t\t\tstickitConfig = {\n\t\t\t\tmodel: stickitField.model\n\t\t\t\t, configs: {}\n\t\t\t};\n\t\t\tmemo.push(stickitConfig);\n\t\t}\n\n\t\tstickitConfig.configs[selector] = stickitField;\n\t\treturn memo;\n\t}\n\n\n\treturn Marionette.View.extend({\n\t\ttagName: 'form'\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, handleFormViewSubmit: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar buttonText\n\t\t\t, self = this\n\t\t\t, nonModelAttributes = {};\n\n\t\t\t// Allow mapping of attribute values to designated models\n\t\t\t_.each(this.fields, function (field, name) {\n\t\t\t\tvar model;\n\n\t\t\t\tif (field.isSecure) {\n\t\t\t\t\tnonModelAttributes[name] = self.action.getSecureKey(name);\n\n\t\t\t\t\t// We don't want to store secure keys any longer than we need to.\n\t\t\t\t\tself.action.clearSecureKey(name);\n\t\t\t\t\tself.$('[name=\"' + name + '\"]').val('');\n\t\t\t\t} else {\n\t\t\t\t\tmodel = field.model;\n\n\t\t\t\t\tif (model instanceof Backbone.Model) {\n\t\t\t\t\t\tnonModelAttributes[name] = model.get(name);\n\t\t\t\t\t} else if (typeof model == 'function') {\n\t\t\t\t\t\tnonModelAttributes[name] = model.call(self, name);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Display ajax status and prevent multiple submits\n\t\t\tbuttonText = this.$submit.text();\n\t\t\tthis.$submit.text('Processing...').attr('disabled', true);\n\n\t\t\t// We wrap in a $.when because .execute can return false in the case of failed validation\n\t\t\t// @todo re-enable validation at some point...\n\t\t\t$.when(this.action.execute({attributes: nonModelAttributes, validate: false})).always(function () {\n\t\t\t\tself.$submit.text(buttonText).removeAttr('disabled');\n\t\t\t});\n\t\t}\n\n\n\t\t, serializeData: function(){\n\t\t\tvar data = {};\n\n\t\t\tif (this.model) {\n\t\t\t\tdata = this.model.toJSON();\n\t\t\t} else if (this.collection) {\n\t\t\t\tdata = {items: this.collection.toJSON()};\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\n\t\t/**\n\t\t * Sets the action as well as the model\n\t\t *\n\t\t * @param {Backbone.Siren.Action} action\n\t\t * @returns {Backbone.Siren.FormView}\n\t\t */\n\t\t, setAction: function (action) {\n\t\t\tif (action.parent instanceof Backbone.Model) {\n\t\t\t\tthis.model = action.parent;\n\t\t\t} else if (action.parent instanceof Backbone.Collection) {\n\t\t\t\tthis.collection = action.parent;\n\t\t\t} else {\n\t\t\t\tthrow 'Action object either missing required \"parent\" or \"parent\" is not a Backbone.Siren Model';\n\t\t\t}\n\n\t\t\tthis.action = action;\n\t\t\treturn this;\n\t\t}\n\n\n\t\t/**\n\t\t * Auto-generate form attributes with supplied action.\n\t\t *\n\t\t * @param {Backbone.Siren.Action} action\n\t\t * @param {Object} [attributes]\n\t\t */\n\t\t, parseAttributes: function (action, attributes) {\n\t\t\tattributes = attributes || {};\n\n\t\t\tvar tagName = this.tagName\n\t\t\t, attrs = {};\n\n\t\t\tif (tagName == 'form') {\n\t\t\t\t_.extend(attrs, attributes); // Pass on any additional attributes\n\n\t\t\t\tif (action.type) {\n\t\t\t\t\tattrs.enctype = action.type;\n\t\t\t\t}\n\n\t\t\t\tif (action.method) {\n\t\t\t\t\tattrs.method = action.method;\n\t\t\t\t}\n\n\t\t\t\tif (action.href) {\n\t\t\t\t\tattrs.action = action.href;\n\t\t\t\t}\n\n\t\t\t\t// @todo rename to .validate\n\t\t\t\tattrs.novalidate = !attributes.validation;\n\t\t\t}\n\n\t\t\tattrs.id = attributes.id || (action.name + '-' + tagName);\n\t\t\treturn attrs;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {String} selector\n\t\t */\n\t\t, removeStickitField: function (selector) {\n\t\t\treturn delete this.stickitFields[selector];\n\t\t}\n\n\n\t\t/**\n\t\t * Adds a stickitField to our View.\n\t\t * Later, it can be \"stickit-ed\" by calling .stickAll()\n\t\t *\n\t\t * @param {String} selector\n\t\t * @param {Object} stickitField\n\t\t */\n\t\t, addStickitField: function (selector, stickitField) {\n\t\t\tif (typeof stickitField == 'string') {\n\t\t\t\tstickitField = {observe: stickitField};\n\t\t\t}\n\n\t\t\tthis.stickitFields[selector] = _.extend(this.stickitFields[selector] || {}, stickitField);\n\t\t}\n\n\n\t\t/**\n\t\t * Adds many stickitFields\n\t\t *\n\t\t * @param {Object} stickitFields An object of stickitField objects\n\t\t */\n\t\t, addStickitFields: function (stickitFields) {\n\t\t\tvar self = this;\n\n\t\t\t_.each(stickitFields, function (field, selector) {\n\t\t\t\tself.addStickitField(selector, field);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Adds a stickit configuration.\n\t\t * See http://nytimes.github.io/backbone.stickit for available configuration settings\n\t\t *\n\t\t * @param {Backbone.Model} model\n\t\t * @param {Object} configs\n\t\t */\n\t\t, addStickit: function (model, configs) {\n\t\t\tvar self = this;\n\n\t\t\t_.each(configs, function (stickitField, selector) {\n\t\t\t\tif (typeof stickitField == 'string') {\n\t\t\t\t\tstickitField = {observe: stickitField};\n\t\t\t\t}\n\n\t\t\t\tif (stickitField) {\n\t\t\t\t\tstickitField.model = model;\n\t\t\t\t\tself.addStickitField(selector, stickitField);\n\t\t\t\t} else {\n\t\t\t\t\tself.removeStickitField(selector);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param action\n\t\t * @param fields\n\t\t * @return {Object}\n\t\t */\n\t\t, parseFields: function (fields) {\n\t\t\tfields = fields || {};\n\n\t\t\tvar self = this\n\t\t\t, parsedFields = {};\n\n\t\t\t_.each(this.action.fields, function (field) {\n\t\t\t\tvar fieldName = field.name\n\t\t\t\t, parsedField = {};\n\n\t\t\t\t// @todo, should the server be forced to set required=required instead of required=true?\n\t\t\t\t// ideally, no, since that is too much coupling to the DOM, but we're already pretty coupled...\n\t\t\t\tparsedField.required = parsedField.required\n\t\t\t\t\t? 'required'\n\t\t\t\t\t: '';\n\n\t\t\t\tif (field.isSecure) {\n\t\t\t\t\tfield.model = self.action.getSecureKeys();\n\t\t\t\t}\n\n\t\t\t\tparsedFields[fieldName] = _.extend({type: 'text'}, parsedField, field, fields[fieldName]);\n\t\t\t});\n\n\t\t\tthis.fields = parsedFields;\n\t\t\treturn parsedFields;\n\t\t}\n\n\n\t\t/**\n\t\t * Processes and returns all stickit fields as an array of stickit configuration objects.\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\t, getStickitFields: function () {\n\t\t\treturn _.reduce(this.stickitFields, $.proxy(reduceStickitFields, this), []);\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Object} field\n\t\t */\n\t\t, getSelectorForField: function (field) {\n\t\t\treturn field.bind\n\t\t\t\t? field.bind.selector || '[name=\"' + field.name + '\"]'\n\t\t\t\t: '[name=\"' + field.name + '\"]';\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Object} field\n\t\t */\n\t\t, getModelForField: function (field) {\n\t\t\treturn field.isSecure\n\t\t\t\t? this.action.getSecureKeys()\n\t\t\t\t: field.model || this.model;\n\t\t}\n\n\n\t\t/**\n\t\t * Converts a \"field\" definition to a \"stickitField\" definition.\n\t\t * The \"bind\" parameter of the field can be used to override default stickit configs.\n\t\t *\n\t\t * @param {Object} field\n\t\t */\n\t\t, fieldToStickitField: function (field) {\n\t\t\tvar stickitField = {}\n\t\t\t\t, defaults = {\n\t\t\t\t\tobserve: field.name\n\t\t\t\t\t, model: this.getModelForField(field)\n\t\t\t\t\t, setOptions: {\n\t\t\t\t\t\t// @todo re-enable validation at some point...\n\t\t\t\t\t\tvalidate: false //!!this.options.validateOnChange\n\t\t\t\t\t\t, actionName: this.action.name\n\t\t\t\t\t\t, forceUpdate: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t, selector = this.getSelectorForField(field);\n\n\t\t\tstickitField[selector] = _.extend(defaults, field.bind);\n\t\t\treturn stickitField;\n\t\t}\n\n\n\t\t/**\n\t\t * Converts this.fields into this.stickitFields\n\t\t *\n\t\t */\n\t\t, fieldsToStickitFields: function () {\n\t\t\tvar self = this;\n\n\t\t\t_.each(this.fields, function (field) {\n\t\t\t\tself.addStickitFields(self.fieldToStickitField(field));\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Calls stickit on all configured stickit objects.\n\t\t *\n\t\t */\n\t\t, stickAll: function () {\n\t\t\tvar self = this;\n\n\t\t\t_.each(this.getStickitFields(), function (config) {\n\t\t\t\tself.stickit(config.model, config.configs);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Object} options\n\t\t */\n\t\t, render: function (options) {\n\t\t\toptions = options || {};\n\n\t\t\tthis.isClosed = false;\n\n\t\t\tthis.triggerMethod('before:render', this);\n\t\t\tthis.triggerMethod('form:before:render', this);\n\n\t\t\tvar data = this.serializeData();\n\t\t\tdata = this.mixinTemplateHelpers(data);\n\n\t\t\tvar template = this.getTemplate();\n\t\t\tvar html = Marionette.Renderer.render(template, data, this);\n\n\t\t\tthis.$el.html(html);\n\t\t\tthis.bindUIElements();\n\t\t\tthis.$submit = this.$('[type=\"submit\"]');\n\n\t\t\tthis.triggerMethod('render', this);\n\t\t\tthis.triggerMethod('form:rendered', this);\n\n\t\t\tif (typeof options.stickit == 'undefined' || options.stickit) {\n\t\t\t\tthis.stickAll();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\n\t\t, close: function(){\n\t\t\tif (this.isClosed){ return; }\n\n\t\t\tthis.triggerMethod('form:before:close');\n\n\t\t\tMarionette.View.prototype.close.apply(this, _.toArray(arguments));\n\n\t\t\tthis.triggerMethod('form:closed');\n\t\t}\n\n\n\t\t/**\n\t\t * Sets up all formView data. Must be called before rendering the formView.\n\t\t *\n\t\t * @param {Object} options\n\t\t * @param {Backbone.Siren.Action} options.action\n\t\t * @param {Object} [options.field] field settings (includes field attributes), can set some basic stickit settings\n\t\t */\n\t\t, initializeForm: function (options) {\n\t\t\t_.extend(this.options, options);\n\n\t\t\tvar action = options.action;\n\n\t\t\tif (! (action && action.name)) {\n\t\t\t\tthrow 'Missing required property: \"action\", or missing action name';\n\t\t\t}\n\n\t\t\tthis.setAction(action);\n\t\t\tthis.parseFields(options.fields);\n\n\t\t\tif (! this.action.hasClass('batch')){\n\t\t\t\tthis.fieldsToStickitFields();\n\t\t\t}\n\n\t\t\t// Set the attributes manually if the view has already been instantiated.\n\t\t\tif (this.cid) {\n\t\t\t\tthis.$el.attr(this.parseAttributes(action, options.attributes));\n\t\t\t\tthis.$el.submit($.proxy(this.handleFormViewSubmit, this));\n\t\t\t} else {\n\t\t\t\t// The view is being instantiated, configure the options.\n\t\t\t\toptions.attributes = this.parseAttributes(options.action, options.attributes);\n\t\t\t\t$.extend(options.events, {submit: this.handleFormViewSubmit}, options.events);\n\t\t\t}\n\t\t}\n\n\n\t\t/**\n\t\t * @TODO uglymunky refactor this\n\t\t *\n\t\t */\n\t\t, emptyTemplate: function() {\n\t\t\treturn wwwApp.ajaxIndicator();\n\t\t}\n\n\n\t\t/**\n\t\t * Override the default .getTemplate() so we can display an \"emptyTemplate\" if the model hasn't been defined\n\t\t *\n\t\t */\n\t\t, getTemplate: function () {\n\t\t\tif (this.model || this.collection) {\n\t\t\t\treturn Marionette.getOption(this, 'template');\n\t\t\t} else if (this.emptyTemplate) {\n\t\t\t\treturn _.bind(this.emptyTemplate, this);\n\t\t\t}\n\t\t}\n\n\n\t\t, constructor: function(){\n\t\t\tvar args = _.toArray(arguments);\n\t\t\tvar options = args[0] || {};\n\t\t\toptions.validateOnChange = options.validateOnChange === undefined ? true : options.validateOnChange;\n\n\t\t\tif (options.action) {\n\t\t\t\tthis.initializeForm(options);\n\t\t\t}\n\n\t\t\tthis.options = args[0] = options;\n\n\t\t\tthis.stickitFields = {};\n\t\t\tMarionette.View.prototype.constructor.apply(this, args);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/marionette.formView/marionette.formView.js","/*!\n backgrid 0.3.8\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2017 Cloudflare, Inc. and contributors \n Licensed under the MIT license.\n*/\n\n(function (root, factory) {\n\n if (typeof define === \"function\" && define.amd) {\n // AMD (+ global for extensions)\n define([\"underscore\", \"backbone\"], function (_, Backbone) {\n return (root.Backgrid = factory(_, Backbone));\n });\n } else if (typeof exports === \"object\") {\n // CommonJS\n module.exports = factory(require(\"underscore\"), require(\"backbone\"));\n } else {\n // Browser\n root.Backgrid = factory(root._, root.Backbone);\n }}(this, function (_, Backbone) {\n\n \"use strict\";\n\n/*\n backgrid\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2013-present Cloudflare, Inc. and contributors\n Licensed under the MIT license.\n*/\n\n// Copyright 2009, 2010 Kristopher Michael Kowal\n// https://github.com/kriskowal/es5-shim\n// ES5 15.5.4.20\n// http://es5.github.com/#x15.5.4.20\nvar ws = \"\\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\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n // http://perfectionkills.com/whitespace-deviations/\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n if (this === undefined || this === null) {\n throw new TypeError(\"can't convert \" + this + \" to object\");\n }\n return String(this)\n .replace(trimBeginRegexp, \"\")\n .replace(trimEndRegexp, \"\");\n };\n}\n\nfunction lpad(str, length, padstr) {\n var paddingLen = length - (str + '').length;\n paddingLen = paddingLen < 0 ? 0 : paddingLen;\n var padding = '';\n for (var i = 0; i < paddingLen; i++) {\n padding = padding + padstr;\n }\n return padding + str;\n}\n\nvar $ = Backbone.$;\n\nvar Backgrid = {\n\n Extension: {},\n\n resolveNameToClass: function (name, suffix) {\n if (_.isString(name)) {\n var key = _.map(name.split('-'), function (e) {\n return e.slice(0, 1).toUpperCase() + e.slice(1);\n }).join('') + suffix;\n var klass = Backgrid[key] || Backgrid.Extension[key];\n if (_.isUndefined(klass)) {\n throw new ReferenceError(\"Class '\" + key + \"' not found\");\n }\n return klass;\n }\n\n return name;\n },\n\n callByNeed: function () {\n var value = arguments[0];\n if (!_.isFunction(value)) return value;\n\n var context = arguments[1];\n var args = [].slice.call(arguments, 2);\n return value.apply(context, !!(args + '') ? args : []);\n }\n\n};\n_.extend(Backgrid, Backbone.Events);\n\n/**\n Command translates a DOM Event into commands that Backgrid\n recognizes. Interested parties can listen on selected Backgrid events that\n come with an instance of this class and act on the commands.\n\n It is also possible to globally rebind the keyboard shortcuts by replacing\n the methods in this class' prototype.\n\n @class Backgrid.Command\n @constructor\n */\nvar Command = Backgrid.Command = function (evt) {\n _.extend(this, {\n altKey: !!evt.altKey,\n \"char\": evt[\"char\"],\n charCode: evt.charCode,\n ctrlKey: !!evt.ctrlKey,\n key: evt.key,\n keyCode: evt.keyCode,\n locale: evt.locale,\n location: evt.location,\n metaKey: !!evt.metaKey,\n repeat: !!evt.repeat,\n shiftKey: !!evt.shiftKey,\n which: evt.which\n });\n};\n_.extend(Command.prototype, {\n /**\n Up Arrow\n\n @member Backgrid.Command\n */\n moveUp: function () { return this.keyCode == 38; },\n /**\n Down Arrow\n\n @member Backgrid.Command\n */\n moveDown: function () { return this.keyCode === 40; },\n /**\n Shift Tab\n\n @member Backgrid.Command\n */\n moveLeft: function () { return this.shiftKey && this.keyCode === 9; },\n /**\n Tab\n\n @member Backgrid.Command\n */\n moveRight: function () { return !this.shiftKey && this.keyCode === 9; },\n /**\n Enter\n\n @member Backgrid.Command\n */\n save: function () { return this.keyCode === 13; },\n /**\n Esc\n\n @member Backgrid.Command\n */\n cancel: function () { return this.keyCode === 27; },\n /**\n None of the above.\n\n @member Backgrid.Command\n */\n passThru: function () {\n return !(this.moveUp() || this.moveDown() || this.moveLeft() ||\n this.moveRight() || this.save() || this.cancel());\n }\n});\n\n/*\n backgrid\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2013-present Cloudflare, Inc. and contributors\n Licensed under the MIT license.\n*/\n\n/**\n Just a convenient class for interested parties to subclass.\n\n The default Cell classes don't require the formatter to be a subclass of\n Formatter as long as the fromRaw(rawData) and toRaw(formattedData) methods\n are defined.\n\n @abstract\n @class Backgrid.CellFormatter\n @constructor\n*/\nvar CellFormatter = Backgrid.CellFormatter = function () {};\n_.extend(CellFormatter.prototype, {\n\n /**\n Takes a raw value from a model and returns an optionally formatted string\n for display. The default implementation simply returns the supplied value\n as is without any type conversion.\n\n @member Backgrid.CellFormatter\n @param {*} rawData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {*}\n */\n fromRaw: function (rawData, model) {\n return rawData;\n },\n\n /**\n Takes a formatted string, usually from user input, and returns a\n appropriately typed value for persistence in the model.\n\n If the user input is invalid or unable to be converted to a raw value\n suitable for persistence in the model, toRaw must return `undefined`.\n\n @member Backgrid.CellFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {*|undefined}\n */\n toRaw: function (formattedData, model) {\n return formattedData;\n }\n\n});\n\n/**\n A floating point number formatter. Doesn't understand scientific notation at\n the moment.\n\n @class Backgrid.NumberFormatter\n @extends Backgrid.CellFormatter\n @constructor\n @throws {RangeError} If decimals < 0 or > 20.\n*/\nvar NumberFormatter = Backgrid.NumberFormatter = function (options) {\n _.extend(this, this.defaults, options || {});\n\n if (this.decimals < 0 || this.decimals > 20) {\n throw new RangeError(\"decimals must be between 0 and 20\");\n }\n};\nNumberFormatter.prototype = new CellFormatter();\n_.extend(NumberFormatter.prototype, {\n\n /**\n @member Backgrid.NumberFormatter\n @cfg {Object} options\n\n @cfg {number} [options.decimals=2] Number of decimals to display. Must be an integer.\n\n @cfg {string} [options.decimalSeparator='.'] The separator to use when\n displaying decimals.\n\n @cfg {string} [options.orderSeparator=','] The separator to use to\n separator thousands. May be an empty string.\n */\n defaults: {\n decimals: 2,\n decimalSeparator: '.',\n orderSeparator: ','\n },\n\n HUMANIZED_NUM_RE: /(\\d)(?=(?:\\d{3})+$)/g,\n\n /**\n Takes a floating point number and convert it to a formatted string where\n every thousand is separated by `orderSeparator`, with a `decimal` number of\n decimals separated by `decimalSeparator`. The number returned is rounded\n the usual way.\n\n @member Backgrid.NumberFormatter\n @param {number} number\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string}\n */\n fromRaw: function (number, model) {\n if (_.isNull(number) || _.isUndefined(number)) return '';\n\n number = parseFloat(number).toFixed(~~this.decimals);\n\n var parts = number.split('.');\n var integerPart = parts[0];\n var decimalPart = parts[1] ? (this.decimalSeparator || '.') + parts[1] : '';\n\n return integerPart.replace(this.HUMANIZED_NUM_RE, '$1' + this.orderSeparator) + decimalPart;\n },\n\n /**\n Takes a string, possibly formatted with `orderSeparator` and/or\n `decimalSeparator`, and convert it back to a number.\n\n @member Backgrid.NumberFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {number|undefined} Undefined if the string cannot be converted to\n a number.\n */\n toRaw: function (formattedData, model) {\n formattedData = formattedData.trim();\n\n if (formattedData === '') return null;\n\n var rawData = '';\n\n var thousands = formattedData.split(this.orderSeparator);\n for (var i = 0; i < thousands.length; i++) {\n rawData += thousands[i];\n }\n\n var decimalParts = rawData.split(this.decimalSeparator);\n rawData = '';\n for (var i = 0; i < decimalParts.length; i++) {\n rawData = rawData + decimalParts[i] + '.';\n }\n\n if (rawData[rawData.length - 1] === '.') {\n rawData = rawData.slice(0, rawData.length - 1);\n }\n\n var result = (rawData * 1).toFixed(~~this.decimals) * 1;\n if (_.isNumber(result) && !_.isNaN(result)) return result;\n }\n\n});\n\n/**\n A number formatter that converts a floating point number, optionally\n multiplied by a multiplier, to a percentage string and vice versa.\n\n @class Backgrid.PercentFormatter\n @extends Backgrid.NumberFormatter\n @constructor\n @throws {RangeError} If decimals < 0 or > 20.\n */\nvar PercentFormatter = Backgrid.PercentFormatter = function () {\n Backgrid.NumberFormatter.apply(this, arguments);\n};\n\nPercentFormatter.prototype = new Backgrid.NumberFormatter(),\n\n_.extend(PercentFormatter.prototype, {\n\n /**\n @member Backgrid.PercentFormatter\n @cfg {Object} options\n\n @cfg {number} [options.multiplier=1] The number used to multiply the model\n value for display.\n\n @cfg {string} [options.symbol='%'] The symbol to append to the percentage\n string.\n */\n defaults: _.extend({}, NumberFormatter.prototype.defaults, {\n multiplier: 1,\n symbol: \"%\"\n }),\n\n /**\n Takes a floating point number, where the number is first multiplied by\n `multiplier`, then converted to a formatted string like\n NumberFormatter#fromRaw, then finally append `symbol` to the end.\n\n @member Backgrid.PercentFormatter\n @param {number} rawValue\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string}\n */\n fromRaw: function (number, model) {\n var args = [].slice.call(arguments, 1);\n args.unshift(number * this.multiplier);\n return (NumberFormatter.prototype.fromRaw.apply(this, args) || \"0\") + this.symbol;\n },\n\n /**\n Takes a string, possibly appended with `symbol` and/or `decimalSeparator`,\n and convert it back to a number for the model like NumberFormatter#toRaw,\n and then dividing it by `multiplier`.\n\n @member Backgrid.PercentFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {number|undefined} Undefined if the string cannot be converted to\n a number.\n */\n toRaw: function (formattedValue, model) {\n var tokens = formattedValue.split(this.symbol);\n if (tokens && tokens[0] && tokens[1] === \"\" || tokens[1] == null) {\n var rawValue = NumberFormatter.prototype.toRaw.call(this, tokens[0]);\n if (_.isUndefined(rawValue)) return rawValue;\n return rawValue / this.multiplier;\n }\n }\n\n});\n\n/**\n Formatter to converts between various datetime formats.\n\n This class only understands ISO-8601 formatted datetime strings and UNIX\n offset (number of milliseconds since UNIX Epoch). See\n Backgrid.Extension.MomentFormatter if you need a much more flexible datetime\n formatter.\n\n @class Backgrid.DatetimeFormatter\n @extends Backgrid.CellFormatter\n @constructor\n @throws {Error} If both `includeDate` and `includeTime` are false.\n*/\nvar DatetimeFormatter = Backgrid.DatetimeFormatter = function (options) {\n _.extend(this, this.defaults, options || {});\n\n if (!this.includeDate && !this.includeTime) {\n throw new Error(\"Either includeDate or includeTime must be true\");\n }\n};\nDatetimeFormatter.prototype = new CellFormatter();\n_.extend(DatetimeFormatter.prototype, {\n\n /**\n @member Backgrid.DatetimeFormatter\n\n @cfg {Object} options\n\n @cfg {boolean} [options.includeDate=true] Whether the values include the\n date part.\n\n @cfg {boolean} [options.includeTime=true] Whether the values include the\n time part.\n\n @cfg {boolean} [options.includeMilli=false] If `includeTime` is true,\n whether to include the millisecond part, if it exists.\n */\n defaults: {\n includeDate: true,\n includeTime: true,\n includeMilli: false\n },\n\n DATE_RE: /^([+\\-]?\\d{4})-(\\d{2})-(\\d{2})$/,\n TIME_RE: /^(\\d{2}):(\\d{2}):(\\d{2})(\\.(\\d{3}))?$/,\n ISO_SPLITTER_RE: /T|Z| +/,\n\n _convert: function (data, validate) {\n if ((data + '').trim() === '') return null;\n\n var date, time = null;\n if (_.isNumber(data)) {\n var jsDate = new Date(data);\n date = lpad(jsDate.getUTCFullYear(), 4, 0) + '-' + lpad(jsDate.getUTCMonth() + 1, 2, 0) + '-' + lpad(jsDate.getUTCDate(), 2, 0);\n time = lpad(jsDate.getUTCHours(), 2, 0) + ':' + lpad(jsDate.getUTCMinutes(), 2, 0) + ':' + lpad(jsDate.getUTCSeconds(), 2, 0);\n }\n else {\n data = data.trim();\n var parts = data.split(this.ISO_SPLITTER_RE) || [];\n date = this.DATE_RE.test(parts[0]) ? parts[0] : '';\n time = date && parts[1] ? parts[1] : this.TIME_RE.test(parts[0]) ? parts[0] : '';\n }\n\n var YYYYMMDD = this.DATE_RE.exec(date) || [];\n var HHmmssSSS = this.TIME_RE.exec(time) || [];\n\n if (validate) {\n if (this.includeDate && _.isUndefined(YYYYMMDD[0])) return;\n if (this.includeTime && _.isUndefined(HHmmssSSS[0])) return;\n if (!this.includeDate && date) return;\n if (!this.includeTime && time) return;\n }\n\n var jsDate = new Date(Date.UTC(YYYYMMDD[1] * 1 || 0,\n YYYYMMDD[2] * 1 - 1 || 0,\n YYYYMMDD[3] * 1 || 0,\n HHmmssSSS[1] * 1 || null,\n HHmmssSSS[2] * 1 || null,\n HHmmssSSS[3] * 1 || null,\n HHmmssSSS[5] * 1 || null));\n\n var result = '';\n\n if (this.includeDate) {\n result = lpad(jsDate.getUTCFullYear(), 4, 0) + '-' + lpad(jsDate.getUTCMonth() + 1, 2, 0) + '-' + lpad(jsDate.getUTCDate(), 2, 0);\n }\n\n if (this.includeTime) {\n result = result + (this.includeDate ? 'T' : '') + lpad(jsDate.getUTCHours(), 2, 0) + ':' + lpad(jsDate.getUTCMinutes(), 2, 0) + ':' + lpad(jsDate.getUTCSeconds(), 2, 0);\n\n if (this.includeMilli) {\n result = result + '.' + lpad(jsDate.getUTCMilliseconds(), 3, 0);\n }\n }\n\n if (this.includeDate && this.includeTime) {\n result += \"Z\";\n }\n\n return result;\n },\n\n /**\n Converts an ISO-8601 formatted datetime string to a datetime string, date\n string or a time string. The timezone is ignored if supplied.\n\n @member Backgrid.DatetimeFormatter\n @param {string} rawData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string|null|undefined} ISO-8601 string in UTC. Null and undefined\n values are returned as is.\n */\n fromRaw: function (rawData, model) {\n if (_.isNull(rawData) || _.isUndefined(rawData)) return '';\n return this._convert(rawData);\n },\n\n /**\n Converts an ISO-8601 formatted datetime string to a datetime string, date\n string or a time string. The timezone is ignored if supplied. This method\n parses the input values exactly the same way as\n Backgrid.Extension.MomentFormatter#fromRaw(), in addition to doing some\n sanity checks.\n\n @member Backgrid.DatetimeFormatter\n @param {string} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string|undefined} ISO-8601 string in UTC. Undefined if a date is\n found when `includeDate` is false, or a time is found when `includeTime` is\n false, or if `includeDate` is true and a date is not found, or if\n `includeTime` is true and a time is not found.\n */\n toRaw: function (formattedData, model) {\n return this._convert(formattedData, true);\n }\n\n});\n\n/**\n Formatter to convert any value to string.\n\n @class Backgrid.StringFormatter\n @extends Backgrid.CellFormatter\n @constructor\n */\nvar StringFormatter = Backgrid.StringFormatter = function () {};\nStringFormatter.prototype = new CellFormatter();\n_.extend(StringFormatter.prototype, {\n /**\n Converts any value to a string using Ecmascript's implicit type\n conversion. If the given value is `null` or `undefined`, an empty string is\n returned instead.\n\n @member Backgrid.StringFormatter\n @param {*} rawValue\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string}\n */\n fromRaw: function (rawValue, model) {\n if (_.isUndefined(rawValue) || _.isNull(rawValue)) return '';\n return rawValue + '';\n }\n});\n\n/**\n Simple email validation formatter.\n\n @class Backgrid.EmailFormatter\n @extends Backgrid.CellFormatter\n @constructor\n */\nvar EmailFormatter = Backgrid.EmailFormatter = function () {};\nEmailFormatter.prototype = new CellFormatter();\n_.extend(EmailFormatter.prototype, {\n /**\n Return the input if it is a string that contains an '@' character and if\n the strings before and after '@' are non-empty. If the input does not\n validate, `undefined` is returned.\n\n @member Backgrid.EmailFormatter\n @param {*} formattedData\n @param {Backbone.Model} model Used for more complicated formatting\n @return {string|undefined}\n */\n toRaw: function (formattedData, model) {\n var parts = formattedData.trim().split(\"@\");\n if (parts.length === 2 && _.all(parts)) {\n return formattedData;\n }\n }\n});\n\n/**\n Formatter for SelectCell.\n\n If the type of a model value is not a string, it is expected that a subclass\n of this formatter is provided to the SelectCell, with #toRaw overridden to\n convert the string value returned from the DOM back to whatever value is\n expected in the model.\n\n @class Backgrid.SelectFormatter\n @extends Backgrid.CellFormatter\n @constructor\n*/\nvar SelectFormatter = Backgrid.SelectFormatter = function () {};\nSelectFormatter.prototype = new CellFormatter();\n_.extend(SelectFormatter.prototype, {\n\n /**\n Normalizes raw scalar or array values to an array.\n\n @member Backgrid.SelectFormatter\n @param {*} rawValue\n @param {Backbone.Model} model Used for more complicated formatting\n @return {Array.<*>}\n */\n fromRaw: function (rawValue, model) {\n return _.isArray(rawValue) ? rawValue : rawValue != null ? [rawValue] : [];\n }\n});\n\n/*\n backgrid\n http://github.com/cloudflare/backgrid\n\n Copyright (c) 2013-present Cloudflare, Inc. and contributors\n Licensed under the MIT license.\n*/\n\n/**\n Generic cell editor base class. Only defines an initializer for a number of\n required parameters.\n\n @abstract\n @class Backgrid.CellEditor\n @extends Backbone.View\n*/\nvar CellEditor = Backgrid.CellEditor = Backbone.View.extend({\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backgrid.CellFormatter} options.formatter\n @param {Backgrid.Column} options.column\n @param {Backbone.Model} options.model\n\n @throws {TypeError} If `formatter` is not a formatter instance, or when\n `model` or `column` are undefined.\n */\n initialize: function (options) {\n this.formatter = options.formatter;\n this.column = options.column;\n if (!(this.column instanceof Column)) {\n this.column = new Column(this.column);\n }\n\n this.listenTo(this.model, \"backgrid:editing\", this.postRender);\n },\n\n /**\n Post-rendering setup and initialization. Focuses the cell editor's `el` in\n this default implementation. **Should** be called by Cell classes after\n calling Backgrid.CellEditor#render.\n */\n postRender: function (model, column) {\n if (column == null || column.get(\"name\") == this.column.get(\"name\")) {\n this.$el.focus();\n }\n return this;\n }\n\n});\n\n/**\n InputCellEditor the cell editor type used by most core cell types. This cell\n editor renders a text input box as its editor. The input will render a\n placeholder if the value is empty on supported browsers.\n\n @class Backgrid.InputCellEditor\n @extends Backgrid.CellEditor\n*/\nvar InputCellEditor = Backgrid.InputCellEditor = CellEditor.extend({\n\n /** @property */\n tagName: \"input\",\n\n /** @property */\n attributes: {\n type: \"text\"\n },\n\n /** @property */\n events: {\n \"blur\": \"saveOrCancel\",\n \"keydown\": \"saveOrCancel\"\n },\n\n /**\n Initializer. Removes this `el` from the DOM when a `done` event is\n triggered.\n\n @param {Object} options\n @param {Backgrid.CellFormatter} options.formatter\n @param {Backgrid.Column} options.column\n @param {Backbone.Model} options.model\n @param {string} [options.placeholder]\n */\n initialize: function (options) {\n InputCellEditor.__super__.initialize.apply(this, arguments);\n\n if (options.placeholder) {\n this.$el.attr(\"placeholder\", options.placeholder);\n }\n },\n\n /**\n Renders a text input with the cell value formatted for display, if it\n exists.\n */\n render: function () {\n var model = this.model;\n this.$el.val(this.formatter.fromRaw(model.get(this.column.get(\"name\")), model));\n return this;\n },\n\n /**\n If the key pressed is `enter`, `tab`, `up`, or `down`, converts the value\n in the editor to a raw value for saving into the model using the formatter.\n\n If the key pressed is `esc` the changes are undone.\n\n If the editor goes out of focus (`blur`) but the value is invalid, the\n event is intercepted and cancelled so the cell remains in focus pending for\n further action. The changes are saved otherwise.\n\n Triggers a Backbone `backgrid:edited` event from the model when successful,\n and `backgrid:error` if the value cannot be converted. Classes listening to\n the `error` event, usually the Cell classes, should respond appropriately,\n usually by rendering some kind of error feedback.\n\n @param {Event} e\n */\n saveOrCancel: function (e) {\n\n var formatter = this.formatter;\n var model = this.model;\n var column = this.column;\n\n var command = new Command(e);\n var blurred = e.type === \"blur\";\n\n if (command.moveUp() || command.moveDown() || command.moveLeft() || command.moveRight() ||\n command.save() || blurred) {\n\n e.preventDefault();\n e.stopPropagation();\n\n var val = this.$el.val();\n var newValue = formatter.toRaw(val, model);\n if (_.isUndefined(newValue)) {\n model.trigger(\"backgrid:error\", model, column, val);\n }\n else {\n model.set(column.get(\"name\"), newValue);\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n }\n // esc\n else if (command.cancel()) {\n // undo\n e.stopPropagation();\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n },\n\n postRender: function (model, column) {\n if (column == null || column.get(\"name\") == this.column.get(\"name\")) {\n // move the cursor to the end on firefox if text is right aligned\n if (this.$el.css(\"text-align\") === \"right\") {\n var val = this.$el.val();\n this.$el.focus().val(null).val(val);\n }\n else this.$el.focus();\n }\n return this;\n }\n\n});\n\n/**\n The super-class for all Cell types. By default, this class renders a plain\n table cell with the model value converted to a string using the\n formatter. The table cell is clickable, upon which the cell will go into\n editor mode, which is rendered by a Backgrid.InputCellEditor instance by\n default. Upon encountering any formatting errors, this class will add an\n `error` CSS class to the table cell.\n\n @abstract\n @class Backgrid.Cell\n @extends Backbone.View\n*/\nvar Cell = Backgrid.Cell = Backbone.View.extend({\n\n /** @property */\n tagName: \"td\",\n\n /**\n @property {Backgrid.CellFormatter|Object|string} [formatter=CellFormatter]\n */\n formatter: CellFormatter,\n\n /**\n @property {Backgrid.CellEditor} [editor=Backgrid.InputCellEditor] The\n default editor for all cell instances of this class. This value must be a\n class, it will be automatically instantiated upon entering edit mode.\n\n See Backgrid.CellEditor\n */\n editor: InputCellEditor,\n\n /** @property */\n events: {\n \"click\": \"enterEditMode\"\n },\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n\n @throws {ReferenceError} If formatter is a string but a formatter class of\n said name cannot be found in the Backgrid module.\n */\n initialize: function (options) {\n this.column = options.column;\n if (!(this.column instanceof Column)) {\n this.column = new Column(this.column);\n }\n\n var column = this.column, model = this.model, $el = this.$el;\n\n var formatter = Backgrid.resolveNameToClass(column.get(\"formatter\") ||\n this.formatter, \"Formatter\");\n\n if (!_.isFunction(formatter.fromRaw) && !_.isFunction(formatter.toRaw)) {\n formatter = new formatter();\n }\n\n this.formatter = formatter;\n\n this.editor = Backgrid.resolveNameToClass(this.editor, \"CellEditor\");\n\n this.listenTo(model, \"change:\" + column.get(\"name\"), function () {\n if (!$el.hasClass(\"editor\")) this.render();\n });\n\n this.listenTo(model, \"backgrid:error\", this.renderError);\n\n this.listenTo(column, \"change:editable change:sortable change:renderable\",\n function (column) {\n var changed = column.changedAttributes();\n for (var key in changed) {\n if (changed.hasOwnProperty(key)) {\n $el.toggleClass(key, changed[key]);\n }\n }\n });\n\n this.updateStateClassesMaybe();\n },\n\n updateStateClassesMaybe: function () {\n var model = this.model;\n var column = this.column;\n var $el = this.$el;\n $el.toggleClass(\"editable\", Backgrid.callByNeed(column.editable(), column, model));\n $el.toggleClass(\"sortable\", Backgrid.callByNeed(column.sortable(), column, model));\n $el.toggleClass(\"renderable\", Backgrid.callByNeed(column.renderable(), column, model));\n },\n\n /**\n Render a text string in a table cell. The text is converted from the\n model's raw value for this cell's column.\n */\n render: function () {\n var $el = this.$el;\n $el.empty();\n var model = this.model;\n var columnName = this.column.get(\"name\");\n $el.text(this.formatter.fromRaw(model.get(columnName), model));\n $el.addClass(columnName);\n this.updateStateClassesMaybe();\n this.delegateEvents();\n return this;\n },\n\n /**\n If this column is editable, a new CellEditor instance is instantiated with\n its required parameters. An `editor` CSS class is added to the cell upon\n entering edit mode.\n\n This method triggers a Backbone `backgrid:edit` event from the model when\n the cell is entering edit mode and an editor instance has been constructed,\n but before it is rendered and inserted into the DOM. The cell and the\n constructed cell editor instance are sent as event parameters when this\n event is triggered.\n\n When this cell has finished switching to edit mode, a Backbone\n `backgrid:editing` event is triggered from the model. The cell and the\n constructed cell instance are also sent as parameters in the event.\n\n When the model triggers a `backgrid:error` event, it means the editor is\n unable to convert the current user input to an apprpriate value for the\n model's column, and an `error` CSS class is added to the cell accordingly.\n */\n enterEditMode: function () {\n var model = this.model;\n var column = this.column;\n\n var editable = Backgrid.callByNeed(column.editable(), column, model);\n if (editable) {\n\n this.currentEditor = new this.editor({\n column: this.column,\n model: this.model,\n formatter: this.formatter\n });\n\n model.trigger(\"backgrid:edit\", model, column, this, this.currentEditor);\n\n // Need to redundantly undelegate events for Firefox\n this.undelegateEvents();\n this.$el.empty();\n this.$el.append(this.currentEditor.$el);\n this.currentEditor.render();\n this.$el.addClass(\"editor\");\n\n model.trigger(\"backgrid:editing\", model, column, this, this.currentEditor);\n }\n },\n\n /**\n Put an `error` CSS class on the table cell.\n */\n renderError: function (model, column) {\n if (column == null || column.get(\"name\") == this.column.get(\"name\")) {\n this.$el.addClass(\"error\");\n }\n },\n\n /**\n Removes the editor and re-render in display mode.\n */\n exitEditMode: function () {\n this.$el.removeClass(\"error\");\n this.currentEditor.remove();\n this.stopListening(this.currentEditor);\n delete this.currentEditor;\n this.$el.removeClass(\"editor\");\n this.render();\n },\n\n /**\n Clean up this cell.\n\n @chainable\n */\n remove: function () {\n if (this.currentEditor) {\n this.currentEditor.remove.apply(this.currentEditor, arguments);\n delete this.currentEditor;\n }\n return Cell.__super__.remove.apply(this, arguments);\n }\n\n});\n\n/**\n StringCell displays HTML escaped strings and accepts anything typed in.\n\n @class Backgrid.StringCell\n @extends Backgrid.Cell\n*/\nvar StringCell = Backgrid.StringCell = Cell.extend({\n\n /** @property */\n className: \"string-cell\",\n\n formatter: StringFormatter\n\n});\n\n/**\n UriCell renders an HTML `` anchor for the value and accepts URIs as user\n input values. No type conversion or URL validation is done by the formatter\n of this cell. Users who need URL validation are encourage to subclass UriCell\n to take advantage of the parsing capabilities of the HTMLAnchorElement\n available on HTML5-capable browsers or using a third-party library like\n [URI.js](https://github.com/medialize/URI.js).\n\n @class Backgrid.UriCell\n @extends Backgrid.Cell\n*/\nvar UriCell = Backgrid.UriCell = Cell.extend({\n\n /** @property */\n className: \"uri-cell\",\n\n /**\n @property {string} [title] The title attribute of the generated anchor. It\n uses the display value formatted by the `formatter.fromRaw` by default.\n */\n title: null,\n\n /**\n @property {string} [target=\"_blank\"] The target attribute of the generated\n anchor.\n */\n target: \"_blank\",\n\n initialize: function (options) {\n UriCell.__super__.initialize.apply(this, arguments);\n this.title = options.title || this.title;\n this.target = options.target || this.target;\n },\n\n render: function () {\n this.$el.empty();\n var rawValue = this.model.get(this.column.get(\"name\"));\n var formattedValue = this.formatter.fromRaw(rawValue, this.model);\n this.$el.append($(\"\", {\n tabIndex: -1,\n href: rawValue,\n title: this.title || formattedValue,\n target: this.target\n }).text(formattedValue));\n this.delegateEvents();\n return this;\n }\n\n});\n\n/**\n Like Backgrid.UriCell, EmailCell renders an HTML `` anchor for the\n value. The `href` in the anchor is prefixed with `mailto:`. EmailCell will\n complain if the user enters a string that doesn't contain the `@` sign.\n\n @class Backgrid.EmailCell\n @extends Backgrid.StringCell\n*/\nvar EmailCell = Backgrid.EmailCell = StringCell.extend({\n\n /** @property */\n className: \"email-cell\",\n\n formatter: EmailFormatter,\n\n render: function () {\n this.$el.empty();\n var model = this.model;\n var formattedValue = this.formatter.fromRaw(model.get(this.column.get(\"name\")), model);\n this.$el.append($(\"\", {\n tabIndex: -1,\n href: \"mailto:\" + formattedValue,\n title: formattedValue\n }).text(formattedValue));\n this.delegateEvents();\n return this;\n }\n\n});\n\n/**\n NumberCell is a generic cell that renders all numbers. Numbers are formatted\n using a Backgrid.NumberFormatter.\n\n @class Backgrid.NumberCell\n @extends Backgrid.Cell\n*/\nvar NumberCell = Backgrid.NumberCell = Cell.extend({\n\n /** @property */\n className: \"number-cell\",\n\n /**\n @property {number} [decimals=2] Must be an integer.\n */\n decimals: NumberFormatter.prototype.defaults.decimals,\n\n /** @property {string} [decimalSeparator='.'] */\n decimalSeparator: NumberFormatter.prototype.defaults.decimalSeparator,\n\n /** @property {string} [orderSeparator=','] */\n orderSeparator: NumberFormatter.prototype.defaults.orderSeparator,\n\n /** @property {Backgrid.CellFormatter} [formatter=Backgrid.NumberFormatter] */\n formatter: NumberFormatter,\n\n /**\n Initializes this cell and the number formatter.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n */\n initialize: function (options) {\n NumberCell.__super__.initialize.apply(this, arguments);\n var formatter = this.formatter;\n formatter.decimals = this.decimals;\n formatter.decimalSeparator = this.decimalSeparator;\n formatter.orderSeparator = this.orderSeparator;\n }\n\n});\n\n/**\n An IntegerCell is just a Backgrid.NumberCell with 0 decimals. If a floating\n point number is supplied, the number is simply rounded the usual way when\n displayed.\n\n @class Backgrid.IntegerCell\n @extends Backgrid.NumberCell\n*/\nvar IntegerCell = Backgrid.IntegerCell = NumberCell.extend({\n\n /** @property */\n className: \"integer-cell\",\n\n /**\n @property {number} decimals Must be an integer.\n */\n decimals: 0\n});\n\n/**\n A PercentCell is another Backgrid.NumberCell that takes a floating number,\n optionally multiplied by a multiplier and display it as a percentage.\n\n @class Backgrid.PercentCell\n @extends Backgrid.NumberCell\n */\nvar PercentCell = Backgrid.PercentCell = NumberCell.extend({\n\n /** @property */\n className: \"percent-cell\",\n\n /** @property {number} [multiplier=1] */\n multiplier: PercentFormatter.prototype.defaults.multiplier,\n\n /** @property {string} [symbol='%'] */\n symbol: PercentFormatter.prototype.defaults.symbol,\n\n /** @property {Backgrid.CellFormatter} [formatter=Backgrid.PercentFormatter] */\n formatter: PercentFormatter,\n\n /**\n Initializes this cell and the percent formatter.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n */\n initialize: function () {\n PercentCell.__super__.initialize.apply(this, arguments);\n var formatter = this.formatter;\n formatter.multiplier = this.multiplier;\n formatter.symbol = this.symbol;\n }\n\n});\n\n/**\n DatetimeCell is a basic cell that accepts datetime string values in RFC-2822\n or W3C's subset of ISO-8601 and displays them in ISO-8601 format. For a much\n more sophisticated date time cell with better datetime formatting, take a\n look at the Backgrid.Extension.MomentCell extension.\n\n @class Backgrid.DatetimeCell\n @extends Backgrid.Cell\n\n See:\n\n - Backgrid.Extension.MomentCell\n - Backgrid.DatetimeFormatter\n*/\nvar DatetimeCell = Backgrid.DatetimeCell = Cell.extend({\n\n /** @property */\n className: \"datetime-cell\",\n\n /**\n @property {boolean} [includeDate=true]\n */\n includeDate: DatetimeFormatter.prototype.defaults.includeDate,\n\n /**\n @property {boolean} [includeTime=true]\n */\n includeTime: DatetimeFormatter.prototype.defaults.includeTime,\n\n /**\n @property {boolean} [includeMilli=false]\n */\n includeMilli: DatetimeFormatter.prototype.defaults.includeMilli,\n\n /** @property {Backgrid.CellFormatter} [formatter=Backgrid.DatetimeFormatter] */\n formatter: DatetimeFormatter,\n\n /**\n Initializes this cell and the datetime formatter.\n\n @param {Object} options\n @param {Backbone.Model} options.model\n @param {Backgrid.Column} options.column\n */\n initialize: function (options) {\n DatetimeCell.__super__.initialize.apply(this, arguments);\n var formatter = this.formatter;\n formatter.includeDate = this.includeDate;\n formatter.includeTime = this.includeTime;\n formatter.includeMilli = this.includeMilli;\n\n var placeholder = this.includeDate ? \"YYYY-MM-DD\" : \"\";\n placeholder += (this.includeDate && this.includeTime) ? \"T\" : \"\";\n placeholder += this.includeTime ? \"HH:mm:ss\" : \"\";\n placeholder += (this.includeTime && this.includeMilli) ? \".SSS\" : \"\";\n\n this.editor = this.editor.extend({\n attributes: _.extend({}, this.editor.prototype.attributes, this.editor.attributes, {\n placeholder: placeholder\n })\n });\n }\n\n});\n\n/**\n DateCell is a Backgrid.DatetimeCell without the time part.\n\n @class Backgrid.DateCell\n @extends Backgrid.DatetimeCell\n*/\nvar DateCell = Backgrid.DateCell = DatetimeCell.extend({\n\n /** @property */\n className: \"date-cell\",\n\n /** @property */\n includeTime: false\n\n});\n\n/**\n TimeCell is a Backgrid.DatetimeCell without the date part.\n\n @class Backgrid.TimeCell\n @extends Backgrid.DatetimeCell\n*/\nvar TimeCell = Backgrid.TimeCell = DatetimeCell.extend({\n\n /** @property */\n className: \"time-cell\",\n\n /** @property */\n includeDate: false\n\n});\n\n/**\n BooleanCellEditor renders a checkbox as its editor.\n\n @class Backgrid.BooleanCellEditor\n @extends Backgrid.CellEditor\n*/\nvar BooleanCellEditor = Backgrid.BooleanCellEditor = CellEditor.extend({\n\n /** @property */\n tagName: \"input\",\n\n /** @property */\n attributes: {\n tabIndex: -1,\n type: \"checkbox\"\n },\n\n /** @property */\n events: {\n \"mousedown\": function () {\n this.mouseDown = true;\n },\n \"blur\": \"enterOrExitEditMode\",\n \"mouseup\": function () {\n this.mouseDown = false;\n },\n \"change\": \"saveOrCancel\",\n \"keydown\": \"saveOrCancel\"\n },\n\n /**\n Renders a checkbox and check it if the model value of this column is true,\n uncheck otherwise.\n */\n render: function () {\n var model = this.model;\n var val = this.formatter.fromRaw(model.get(this.column.get(\"name\")), model);\n this.$el.prop(\"checked\", val);\n return this;\n },\n\n /**\n Event handler. Hack to deal with the case where `blur` is fired before\n `change` and `click` on a checkbox.\n */\n enterOrExitEditMode: function (e) {\n if (!this.mouseDown) {\n var model = this.model;\n model.trigger(\"backgrid:edited\", model, this.column, new Command(e));\n }\n },\n\n /**\n Event handler. Save the value into the model if the event is `change` or\n one of the keyboard navigation key presses. Exit edit mode without saving\n if `escape` was pressed.\n */\n saveOrCancel: function (e) {\n var model = this.model;\n var column = this.column;\n var formatter = this.formatter;\n var command = new Command(e);\n // skip ahead to `change` when space is pressed\n if (command.passThru() && e.type != \"change\") return true;\n if (command.cancel()) {\n e.stopPropagation();\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n\n var $el = this.$el;\n if (command.save() || command.moveLeft() || command.moveRight() || command.moveUp() ||\n command.moveDown()) {\n e.preventDefault();\n e.stopPropagation();\n var val = formatter.toRaw($el.prop(\"checked\"), model);\n model.set(column.get(\"name\"), val);\n model.trigger(\"backgrid:edited\", model, column, command);\n }\n else if (e.type == \"change\") {\n var val = formatter.toRaw($el.prop(\"checked\"), model);\n model.set(column.get(\"name\"), val);\n $el.focus();\n }\n }\n\n});\n\n/**\n BooleanCell renders a checkbox both during display mode and edit mode. The\n checkbox is checked if the model value is true, unchecked otherwise.\n\n @class Backgrid.BooleanCell\n @extends Backgrid.Cell\n*/\nvar BooleanCell = Backgrid.BooleanCell = Cell.extend({\n\n /** @property */\n className: \"boolean-cell\",\n\n /** @property */\n editor: BooleanCellEditor,\n\n /** @property */\n events: {\n \"click\": \"enterEditMode\"\n },\n\n /**\n Renders a checkbox and check it if the model value of this column is true,\n uncheck otherwise.\n */\n render: function () {\n this.$el.empty();\n var model = this.model, column = this.column;\n var editable = Backgrid.callByNeed(column.editable(), column, model);\n this.$el.append($(\"\", {\n tabIndex: -1,\n type: \"checkbox\",\n checked: this.formatter.fromRaw(model.get(column.get(\"name\")), model),\n disabled: !editable\n }));\n this.delegateEvents();\n return this;\n }\n\n});\n\n/**\n SelectCellEditor renders an HTML `');\n\n\t\t\t\tfield.attr('type', 'hidden');\n\t\t\t\tfield.attr('name', key);\n\t\t\t\tfield.attr('value', value);\n\n\t\t\t\tform.append(field);\n\t\t\t});\n\n\t\t\t// The form needs to be a part of the document in\n\t\t\t// order for us to be able to submit it.\n\t\t\t$(document.body).append(form);\n\t\t\tform.submit();\n\t\t}\n\t};\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./lib/basketHelper/basketHelper.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\trequire('jquery.hoverIntent');\n\n\t/**\n\t *\n\t * @param {jQuery.Event} event\n\t */\n\tfunction handleDropdownWrapperHoverOver(event) {\n\t\tthis.suppressClick();\n\t\tthis.expand(event.target);\n\t}\n\n\n\t/**\n\t *\n\t * @param {jQuery.Event} event\n\t */\n\tfunction handleDropdownWrapperHoverOut(event){\n\t\tthis.collapse(event.target);\n\t}\n\n\n\tfunction Dropdown(target) {\n\t\tvar self = this;\n\t\tvar $target = $(target);\n\n\t\tthis.options = Dropdown.defaults;\n\t\tthis.$el = $target;\n\n\t\t$('.' + this.options.dropdownNavItemClass, $target).hoverIntent(\n\t\t\t$.proxy(handleDropdownWrapperHoverOver, this)\n\t\t\t, $.proxy(handleDropdownWrapperHoverOut, this));\n\n\t\tthis.$el\n\t\t\t.on('click.dropdown', '.' + this.options.dropdownNavItemClass, function (event) {\n\t\t\t\tif (! self.clicksAreSuppressed) {\n\t\t\t\t\tself.toggle(event.target);\n\t\t\t\t}\n\t\t\t});\n\n\t\t$('html').on('click.dropdown', function(event){\n\t\t\tif (typeof event.target.className == 'string' && event.target.className.indexOf(self.options.dropdownWrapperClass) < 0) {\n\t\t\t\tself.collapseAll();\n\t\t\t}\n\t\t});\n\t}\n\n\n\tDropdown.defaults = {\n\t\tdropdownNavItemClass: 'dropdownNavItem'\n\t\t, dropdownWrapperClass: 'dropdownWrap'\n\t\t, secondaryNavClass: 'dropdownNavSecondary'\n\t};\n\n\n\tDropdown.prototype = {\n\n\t\t/**\n\t\t *\n\t\t * @returns {jQuery}\n\t\t */\n\t\tactivePrimaryNavItems: function () {\n\t\t\treturn $('> li', this.$el).filter('.active');\n\t\t}\n\n\n\t\t/**\n\t\t * Handy for finding out which primary nav item an element belongs to\n\t\t *\n\t\t * @param {jQuery} $el\n\t\t * @returns {jQuery}\n\t\t */\n\t\t, getPrimaryNavItem: function ($el) {\n\t\t\treturn $($el).closest('.' + this.options.dropdownNavItemClass);\n\t\t}\n\n\n\t\t/**\n\t\t * Expands if collapsed, collapses if expanded\n\t\t *\n\t\t * @param {jQuery} $el\n\t\t */\n\t\t, toggle: function ($el) {\n\t\t\tvar $primaryNavItem = this.getPrimaryNavItem($el);\n\n\t\t\tif ($primaryNavItem.hasClass('active')) {\n\t\t\t\tthis.collapse($primaryNavItem);\n\t\t\t} else {\n\t\t\t\tthis.expand($primaryNavItem);\n\t\t\t}\n\t\t}\n\n\n\t\t/**\n\t\t * Expands/drops-down the dropdown\n\t\t *\n\t\t * @param {jQuery}\n\t\t */\n\t\t, expand: function ($el) {\n\t\t\tthis.getPrimaryNavItem($el).addClass('active');\n\t\t}\n\n\n\t\t/**\n\t\t * Collapses/pulls-up the dropdown\n\t\t *\n\t\t * @param {jQuery}\n\t\t */\n\t\t, collapse: function ($el) {\n\t\t\tthis.getPrimaryNavItem($el).removeClass('active');\n\t\t}\n\n\n\t\t/**\n\t\t * Collapses all expanded dropdowns\n\t\t *\n\t\t */\n\t\t, collapseAll: function () {\n\t\t\tvar self = this;\n\n\t\t\tthis.activePrimaryNavItems().each(function (index, item) {\n\t\t\t\tself.collapse(item);\n\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t * Comes in handy in preventing users from accidentally closing a dropdown by clicking after they hovered.\n\t\t *\n\t\t */\n\t\t, suppressClick: function () {\n\t\t\tvar self = this;\n\n\t\t\tthis.clicksAreSuppressed = true;\n\n\t\t\tsetTimeout( function() {\n\t\t\t\tself.clicksAreSuppressed = false;\n\t\t\t}, 1000);\n\t\t}\n\n\n\t\t, urHere: function ($el) {\n\t\t\tif ($el) {\n\t\t\t\tif (typeof $el == 'string') {\n\t\t\t\t\t$el = $('[class*=\"-' + $el + ' \"]');\n\t\t\t\t} else {\n\t\t\t\t\t$el = $($el);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$el = $('[href$=\"' + document.location.pathname + '\"]');\n\t\t\t}\n\n\t\t\t$('.urHere', this.$el).removeClass('urHere');\n\t\t\t$el.children().first().parentsUntil(this.$el, 'li').addClass('urHere');\n\t\t}\n\t};\n\n\n\treturn Dropdown;\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/dropdown/dropdown.js","define(function (require) {\n\t'use strict';\n\n\n\tvar Marionette = require('marionette')\n\t, moment = require('moment');\n\n\n\treturn Marionette.ItemView.extend({\n\t\tclassName: 'lenderActivityAbstractView vBlock'\n\n\t\t, formatTimestamp: function () {\n\t\t\treturn moment(this.model.get('timestamp')).fromNow(true);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/LenderActivity/LenderActivityAbstractView.js","define(function (require) {\n\t'use strict';\n\n\tvar formatters = require('lib/formatters/formatters')\n\t\t, moment = require('moment')\n\t\t, numeral = require('numeral')\n\t\t, _ = require('underscore')\n\t\t, camelCaseToTitleCase = function (text) {\n\t\t\t// so here the status is not provided!?\n\t\t\tif (!text) { return 'Unknown'; }\n\t\t\tvar result = text.replace(/([A-Z])/g, ' $1');\n\t\t\treturn result.charAt(0).toUpperCase() + result.slice(1);\n\t\t}\n\t\t, colorSpan = function (color, html) {\n\t\t\treturn '' + html + '';\n\t\t}\n\t\t;\n\n\treturn {\n\n\t\tisWarningStatus: function(loan) {\n\t\t\treturn loan.status === 'defaulted' || loan.statusDetail === 'issue_revising' || loan.delinquent;\n\t\t}\n\n\t\t, isGoodStatus: function(loan) {\n\t\t\treturn loan.status === 'raised' || loan.status === 'ended' || (loan.status === 'payingBack' && !loan.delinquent);\n\t\t}\n\n\t\t, loanStatusPrettyText: function(loan) {\n\t\t\t/*jshint maxcomplexity:12 */\n\t\t\tswitch (loan.status) {\n\t\t\t\tcase 'payingBack':\n\t\t\t\t\treturn 'Paying back ' + (loan.delinquent ? 'delinquent' : 'on time');\n\t\t\t\tcase 'fundRaising':\n\t\t\t\t\treturn (loan.inPfp ? 'Private' : 'Public') + ' fundraising';\n\t\t\t\tcase 'raised':\n\t\t\t\t\treturn 'Funded';\n\t\t\t\tcase 'ended':\n\t\t\t\t\treturn 'Repaid';\n\t\t\t\tcase 'defaulted':\n\t\t\t\t\treturn 'Ended in default';\n\t\t\t\tcase 'issue':\n\t\t\t\t\treturn loan.statusDetail === 'issue_revising' ? 'Issue flagged' : 'In Kiva review';\n\t\t\t\tcase 'inactive_expired':\n\t\t\t\t\treturn 'Rejected';\n\t\t\t\tcase 'inactive':\n\t\t\t\t\treturn 'In Kiva review';\n\t\t\t\tdefault:\n\t\t\t\t\treturn camelCaseToTitleCase(loan.status);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @param loan\n\t\t * @param extraStatus\n\t\t * @param showExtra\n\t\t * @returns {*}\n\t\t */\n\t\t, loanStatusPretty: function (loan, extraStatus, showExtra) {\n\t\t\tvar color = null, text = null;\n\n\t\t\tif (!loan && extraStatus) {\n\t\t\t\t// display loanStatus property ( for borrower item view / loan application statuses )\n\t\t\t\tswitch (extraStatus) {\n\n\t\t\t\t\tcase 'open':\n\t\t\t\t\t\ttext = 'Application in progress';\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'review':\n\t\t\t\t\tcase 'review_hold':\n\t\t\t\t\t\ttext = 'In Kiva review';\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\ttext = camelCaseToTitleCase(extraStatus);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t// build on the actual loan object\n\t\t\t\ttext = this.loanStatusPrettyText(loan);\n\t\t\t\tcolor = this.isWarningStatus(loan) ? 'red' : this.isGoodStatus(loan) ? 'green' : null;\n\n\t\t\t\tif (showExtra && loan.status === 'payingBack' && loan.delinquent) {\n\t\t\t\t\ttext += '
        ' + formatters.formatBcMoney(loan.arrearsAmount) + ' past due.';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn color ? colorSpan(color, text) : text;\n\t\t} // end loanStatusPretty\n\n\t\t/**\n\t\t * returns an array with a sub-key 'repayments'\n\t\t * @param loan\n\t\t * @param extra_params\n\t\t * @returns {*}\n\t\t */\n\t\t, serializeUpcomingRepayments: function(loan, extra_params) {\n\t\t\tif(loan.status === 'payingBack' || loan.status === 'defaulted') {\n\t\t\t\textra_params = _.extend({}, extra_params);\n\t\t\t\tvar overdue = !!numeral(loan.arrearsAmount && loan.arrearsAmount.amount).value();\n\t\t\t\tvar nextPayment = loan.terms.get('expectedPayments').find(function(payment) {\n\t\t\t\t\treturn payment ? moment(payment.get('effectiveDate')).isAfter() : false;\n\t\t\t\t});\n\t\t\t\tvar nextRepayment = nextPayment ? {\n\t\t\t\t\tamount: formatters.formatBcMoney(nextPayment.get('amount')),\n\t\t\t\t\tdueDate: moment(nextPayment.get('effectiveDate')).format('MMM D, YYYY')\n\t\t\t\t} : null;\n\n\t\t\t\treturn {\n\t\t\t\t\trepayments: _.extend(extra_params, !overdue ? nextRepayment : {\n\t\t\t\t\t\toverdue: true,\n\t\t\t\t\t\tamount: formatters.formatBcMoney(loan.arrearsAmount),\n\t\t\t\t\t\tnextRepayment: nextRepayment\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {};\n\t\t}\n\n\t};\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/directLoanHelper/directLoanHelper.js","/** poor man's lightbox component */\ndefine(function (require) {\n\t'use strict';\n\n\n\tvar $ = require('jquery')\n\t\t, _ = require('underscore')\n\t\t, decision_lb = require('hgn!patterns/01-molecules/10-lightbox/03-decision-lightbox')\n\t\t;\n\n\tvar defaults = {\n\t\t'lightboxId': _.uniqueId(),\n\t\t'title': 'My Title',\n\t\t'message': 'My Message',\n\t\t'mainOptionButtonText': 'main option button text',\n\t\t'alternativeOptionButtonText': 'alternative option button text',\n\t\t'onClickMain': function () {\n\t\t},\n\t\t'onClickAlt': function () {\n\t\t}\n\t};\n\n\tvar onRender = function (context) {\n\n\t\tcontext = _.extend(defaults, context);\n\n\t\tvar $lb = $(decision_lb.render(context));\n\t\t$lb.foundation('reveal', 'open')\n\t\t\t.on('opened.fndtn.reveal', function () {\n\t\t\t\tvar $mainBtn = $('.main-option', $lb)\n\t\t\t\t\t, $altBtn = $('.alternative-option', $lb)\n\t\t\t\t\t;\n\n\t\t\t\t$mainBtn.click(function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tcontext.onClickMain();\n\t\t\t\t\t$lb.foundation('reveal', 'close');\n\t\t\t\t});\n\n\t\t\t\t$altBtn.click(function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tcontext.onClickAlt();\n\t\t\t\t\t$lb.foundation('reveal', 'close');\n\t\t\t\t});\n\t\t\t});\n\t};\n\n\n\treturn {\n\t\trender: onRender\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./lib/lightbox/DecisionLightBox.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, _ = require('underscore')\n\t\t, uri = require('simpleUri')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/01-molecules/05-navigation/02-secondary-nav')\n\n\t\t, model: new Backbone.Model()\n\n\t\t, events: {\n\t\t\t'click' : 'handleNavClick'\n\t\t}\n\n\t\t, absoluteUrl: function(url, current) {\n\t\t\tcurrent = current || uri();\n\t\t\treturn uri(url).host ? url : current.protocol + '://' + current.host + url;\n\t\t}\n\n\t\t, setCurrentHref : function(href) {\n\t\t\tthis.model.set('active', this.absoluteUrl(href));\n\t\t\tthis.render();\n\t\t}\n\n\t\t, handleNavClick : function(event) {\n\t\t\tvar href = this.$(event.target).attr('href');\n\t\t\tif(href && href.length && href[0] !== '#') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.trigger('navigate', event.target.href);\n\t\t\t}\n\t\t}\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tvar context = {};\n\t\t\tvar current = uri();\n\t\t\tvar self = this;\n\n\t\t\tvar active_tree = _.find(data.links, function(link) {\n\t\t\t\treturn link.links ? _.findWhere(link.links, {url: data.active}) : false;\n\t\t\t});\n\n\t\t\tcontext['bar-links'] = _.map(data.links, function(link) {\n\t\t\t\treturn {\n\t\t\t\t\turl: self.absoluteUrl(link.url, current),\n\t\t\t\t\ttitle: link.title,\n\t\t\t\t\tactive: active_tree ? link.url === active_tree.url : false\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tif(active_tree) {\n\t\t\t\tcontext['main-title'] = active_tree.title;\n\t\t\t\tcontext['drop-links'] = _.sortBy(context['bar-links'], function(link) {\n\t\t\t\t\treturn !link.active;\n\t\t\t\t});\n\t\t\t\tcontext['drop-links'][0]['sub-links'] = _.map(active_tree.links, function(link) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\turl: self.absoluteUrl(link.url, current),\n\t\t\t\t\t\t'sub-title': link.title,\n\t\t\t\t\t\t'sub-active': link.url === data.active\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn context;\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param options - should be the same as what is passed into TertiaryNavView\n\t\t */\n\t\t, initialize: function(options) {\n\t\t\tthis.model.set({\n\t\t\t\tactive: this.absoluteUrl(options.active),\n\t\t\t\tlinks: options.links\n\t\t\t});\n\t\t}\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Xb/SecondaryNavView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, _ = require('underscore')\n\t\t, uri = require('simpleUri')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/01-molecules/05-navigation/03b-tertiary-nav-content')\n\n\t\t, model: new Backbone.Model()\n\n\t\t, events: {\n\t\t\t'click' : 'handleNavClick'\n\t\t}\n\n\t\t, absoluteUrl: function(url, current) {\n\t\t\tcurrent = current || uri();\n\t\t\treturn uri(url).host ? url : current.protocol + '://' + current.host + url;\n\t\t}\n\n\t\t, setCurrentHref : function(href) {\n\t\t\tthis.model.set('active', this.absoluteUrl(href));\n\t\t\tthis.render();\n\t\t}\n\n\t\t, handleNavClick : function(event) {\n\t\t\tvar href = this.$(event.target).attr('href');\n\t\t\tif(href && href.length && href[0] !== '#') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.trigger('navigate', event.target.href);\n\t\t\t}\n\t\t}\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tvar context = {};\n\t\t\tvar current = uri();\n\t\t\tvar self = this;\n\n\t\t\tvar active_tree = _.find(data.links, function(link) {\n\t\t\t\treturn link.links ? _.findWhere(link.links, {url: data.active}) : false;\n\t\t\t});\n\n\t\t\tif(active_tree) {\n\t\t\t\tcontext['bar-sub-links'] = _.map(active_tree.links, function(link) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\turl: self.absoluteUrl(link.url, current),\n\t\t\t\t\t\t'sub-title': link.title,\n\t\t\t\t\t\t'sub-active': link.url === data.active,\n\t\t\t\t\t\t'new-window': link['new-window']\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn context;\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param options - should be the same as what is passed into SecondaryNavView\n\t\t */\n\t\t, initialize: function(options) {\n\t\t\tthis.model.set({\n\t\t\t\tactive: this.absoluteUrl(options.active),\n\t\t\t\tlinks: options.links\n\t\t\t});\n\t\t}\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Xb/TertiaryNavView.js","/*tombstone inserted 2018-08-08*/ try { /*global tombstone*/ tombstone('/sites/www_kiva/client/src/views/components/Checkout/ReserveMessageView.js'); } catch(e) {}\n/* global console, $ */\ndefine(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, moment = require('moment')\n\t\t, _ = require('underscore')\n\t\t;\n\n\t// ItemView\n\treturn Marionette.LayoutView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/60-checkout/10-loan-reserve-message')\n\n\t\t, model: new Backbone.Model()\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tif (data.expiryTime !== null && !data.not_reserved) {\n\t\t\t\tvar time_left = moment(data.expiryTime) - moment();\n\n\t\t\t\tif (time_left < 0) {\n\t\t\t\t\t//A negative time left means the loan is no longer reserved\n\t\t\t\t\tdata.not_reserved = true;\n\t\t\t\t} else {\n\t\t\t\t\t// set the message for remaining reserved time\n\t\t\t\t\tdata.reserved_for = moment(data.expiryTime).fromNow(true);\n\t\t\t\t\t// set red class via warning variable\n\t\t\t\t\tdata.time_left_warning = data.isEndingSoon;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t, initialize: function(options) {\n\t\t\tthis.model.set(_.pick(options, 'expiryTime', 'isEndingSoon', 'not_reserved'));\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Checkout/ReserveMessageView.js","/*tombstone inserted 2018-08-08*/ try { /*global tombstone*/ tombstone('/sites/www_kiva/client/src/views/components/Checkout/CheckoutTotals.js'); } catch(e) {}\n/* global console, wwwApp, Foundation */\ndefine(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/60-checkout/06-checkout-totals')\n\n\t\t, model: new Backbone.Model()\n\n\t\t, events: {\n\t\t\t'change #donation-edit-amount': '_updateModelDonation'\n\t\t\t, 'click .donation-update-button': '_handleDonationUpdate'\n\t\t}\n\n\t\t, modelEvents: {\n\t\t\t'change': 'render'\n\t\t}\n\n\t\t, serializeData: function() {\n\t\t\tvar totalsModel = this.model.toJSON();\n\n\t\t\t/* Available keys\n\t\t\t\tbonusAppliedTotal, bonusAvailableTotal, creditAmountNeeded, creditAppliedTotal, creditAvailableTotal\n\t\t\t\tdonationTotal, freeTrialAppliedTotal, freeTrialAvailableTotal, itemTotal\n\t\t\t\tkivaCardTotal, kivaCreditAppliedTotal, kivaCreditAvailableTotal, loanReservationTotal\n\t\t\t\tredemptionCodeAppliedTotal, redemptionCodeAvailableTotal\n\t\t\t*/\n\n\t\t\tvar totalsObj = {\n\t\t\t\tis_logged_in: wwwApp.conf.get('logged_in')\n\t\t\t\t, totals: {\n\t\t\t\t\torder_total: totalsModel.totals.itemTotal\n\t\t\t\t\t, grand_total: totalsModel.totals.creditAmountNeeded\n\t\t\t\t\t, free_credit: parseFloat(totalsModel.totals.bonusAvailableTotal) != 0 ? totalsModel.totals.bonusAvailableTotal : 0\n\t\t\t\t\t, kiva_credit_remaining: parseFloat(totalsModel.totals.kivaCreditAvailableTotal) - parseFloat(totalsModel.totals.kivaCreditAppliedTotal)\n\t\t\t\t\t, kiva_credit_applied_total: parseFloat(totalsModel.totals.kivaCreditAppliedTotal) != 0 ? totalsModel.totals.kivaCreditAppliedTotal : 0\n\t\t\t\t\t, kiva_credit_applicable_total: ''\n\t\t\t\t\t, kiva_credit_available_total: parseFloat(totalsModel.totals.kivaCreditAvailableTotal) != 0 ? totalsModel.totals.kivaCreditAvailableTotal : 0\n\t\t\t\t\t, negative_kiva_credit: ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn totalsObj;\n\t\t}\n\n\t\t, initialize: function(options) {\n\t\t\tthis.store = options.store;\n\n\t\t\tvar self = this;\n\n\t\t\tthis.store.subscribe(['totals.itemTotal'], function (state) {\n\t\t\t\tself.model.set('totals', state.totals);\n\t\t\t});\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Checkout/CheckoutTotals.js","define(function (require) {\n\t'use strict';\n\n\tvar Backbone = require('backbone')\n\t\t, Marionette = require('marionette')\n\t\t, ClickableView = require('components/Lend/ClickableView')\n\t\t, $ = require('jquery')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: require('hgn!patterns/01-molecules/30-loans/11-loan-image-footer')\n\n\n\t\t, _handleFavoriteToggle: function () {\n\t\t\tthis.trigger('toggle:favorite', this.model.get('is_favorite'));\n\t\t}\n\n\n\t\t, updateFavoriteStatus: function (is_favorite) {\n\t\t\t$('#' + this.favoriteButton.$el.attr('data-selector')).remove();\n\t\t\tthis.needs_reflow = true;\n\n\t\t\tthis.model.set('is_favorite', is_favorite);\n\t\t\tthis.render();\n\t\t}\n\n\n\t\t, onRender: function () {\n\t\t\tthis.favoriteButton = new ClickableView({ el: this.$('.favorite-link') });\n\t\t\tthis.listenTo(this.favoriteButton, 'clicked', this._handleFavoriteToggle);\n\n\t\t\t/*if (this.needs_reflow) {\n\t\t\t\tthis.$el.foundation('tooltip', 'reflow');\n\t\t\t\tthis.needs_reflow = false;\n\t\t\t}*/\n\t\t}\n\n\n\t\t, setTouch: function () {\n\n\t\t\tthis.model.set('is_touch', $('html').hasClass('touch'));\n\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\tthis.needs_reflow = false;\n\t\t\tthis.model = new Backbone.Model(options.data);\n\t\t\tthis.setTouch();\n\t\t\tthis.render();\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Lend/ImageFooterView.js","define(function (require) {\n\t'use strict';\n\n\tvar Backbone = require('backbone')\n\t\t, Marionette = require('marionette')\n\t\t, numeral = require('numeral')\n\t\t, ClickableView = require('components/Lend/ClickableView')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: require('hgn!patterns/01-molecules/12-loancards/00-bottom-bar')\n\n\n\t\t, partials: {\n\t\t\t'molecules-loading-spinner': require('hgn!patterns/01-molecules/03-media/01-loading-spinner')\n\t\t}\n\n\n\t\t, _handleLend: function() {\n\t\t\tthis.model.set('is_adding', true);\n\t\t\tthis.render();\n\n\t\t\tthis.trigger('lend');\n\t\t}\n\n\n\t\t, updateBasketStatus: function(basket_amount) {\n\t\t\tvar amount = numeral(this.model.get('amount_in_basket')).add(basket_amount);\n\t\t\tthis.model.set({\n\t\t\t\t'is_in_basket': amount.value() > 0\n\t\t\t\t, 'amount_in_basket': amount.value()\n\t\t\t\t, 'is_adding': false\n\t\t\t});\n\t\t\tthis.render();\n\t\t}\n\n\n\t\t, onRender: function() {\n\t\t\tthis.lendButton = new ClickableView({el: this.$('.lend-button')});\n\t\t\tthis.listenTo(this.lendButton, 'clicked', this._handleLend);\n\t\t}\n\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tnumeral.defaultFormat('$0,0[.]00');\n\n\t\t\tif(data.amount_in_basket !== undefined) {\n\t\t\t\tdata.amount_in_basket = numeral(data.amount_in_basket).format();\n\t\t\t}\n\n\t\t\tdata.basket_url = wwwApp.url('basket','basket');\n\t\t\tdata.borrower_url = wwwApp.url('businesses','loanView', {loanId: data.id});\n\n\t\t\tdata.img = {\n\t\t\t\t'loader': {\n\t\t\t\t\tsrc: wwwApp.staticUrl('img/loading.gif')\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif(!data.is_adding && !data.is_lent_to && !data.is_in_basket && !data.is_ended) {\n\t\t\t\tdata.is_regular = true;\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\tthis.model = new Backbone.Model(options.data);\n\t\t\tthis.render();\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Lend/BottomBarView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"is_admin\",c,p,1),c,p,0,142,424,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"show_loan_length\",c,p,1),c,p,0,646,702,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t
        \");t.b(t.v(t.f(\"loan_length\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"show_loan_length\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"is_expiring_soon\",c,p,1),c,p,0,774,849,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t
        \");t.b(t.v(t.f(\"expiring_soon_message\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(t.rp(\"\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"location_label\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t\t

        \");t.b(t.v(t.f(\"use\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);if(t.s(t.f(\"is_expiring_soon\",c,p,1),c,p,0,1334,1405,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t
        \");t.b(t.v(t.f(\"expiring_soon_message\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"partnerName\",c,p,1),c,p,0,1526,1604,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\tField Partner\");t.b(\"\\n\" + i);t.b(\"\t\t\t

        \");t.b(t.v(t.f(\"partnerName\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"trusteeName\",c,p,1),c,p,0,1639,1711,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\tTrustee\");t.b(\"\\n\" + i);t.b(\"\t\t\t

        \");t.b(t.v(t.f(\"trusteeName\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\tLoan length\");t.b(\"\\n\" + i);t.b(\"\t\t

        \");t.b(t.v(t.f(\"lenderRepaymentTerm\",c,p,0)));t.b(\" months

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {\"\\n\\t\\n\\n
        \\n {{name}}\\n
        \\n\\t\\t\\t{{location_label}}\\n
        \\n\\n\\t\\t

        {{use}}

        \\n\\t\\t{{#is_expiring_soon}}\\n\\t\\t\\t
        {{expiring_soon_message}}
        \\n\\t\\t{{/is_expiring_soon}}\\n
        \\n\\n\\n\\t
        \\n\\t\\t{{#partnerName}}\\n\\t\\t\\tField Partner\\n\\t\\t\\t

        {{partnerName}}

        \\n\\t\\t{{/partnerName}}\\n\\t\\t{{#trusteeName}}\\n\\t\\t\\tTrustee\\n\\t\\t\\t

        {{trusteeName}}

        \\n\\t\\t{{/trusteeName}}\\n\\t
        \\n\\t
        \\n\\t\\tLoan length\\n\\t\\t

        {{lenderRepaymentTerm}} months

        \\n\\t
        \\n\\n \\n
        \\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/00-loancard-listing.mustache\n// module id = 567\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, ClickableView = require('components/Lend/ClickableView')\n\t\t, scrollEvent = require('components/Lend/ScrollEvent');\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/01-molecules/07-messaging/01-no-results')\n\n\t\t, _handleNewSearch: function() {\n\t\t\tthis.trigger('start-new-search');\n\t\t}\n\n\t\t, onRender: function() {\n\t\t\tthis.newSearchLink = new ClickableView({el: this.$('.all-loans-link')});\n\t\t\tthis.listenTo(this.newSearchLink, 'clicked', this._handleNewSearch);\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\tscrollEvent.init();\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Lend/NoResultsView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");if(t.s(t.f(\"is_new_loan_card\",c,p,1),c,p,0,110,151,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"
         
        \");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t
        Loan / country
        \");t.b(\"\\n\" + i);t.b(\"\t
        Partner / Trustee
        \");t.b(\"\\n\" + i);t.b(\"\t
        Loan length
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);if(t.s(t.f(\"loans\",c,p,1),c,p,0,528,600,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
      • \");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/04-loancards/00-loancard-listing0\",c,p,\"\t\t\t\"));t.b(\"\t\t
      • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"if-no-results\",c,p,1),c,p,0,631,681,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/07-messaging/01-no-results1\",c,p,\"\t\t\"));});c.pop();}t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/10-lend/03-paging2\",c,p,\"\"));return t.fl(); },partials: {\"<02-organisms/04-loancards/00-loancard-listing0\":{name:\"02-organisms/04-loancards/00-loancard-listing\", partials: {}, subs: { }},\"<01-molecules/07-messaging/01-no-results1\":{name:\"01-molecules/07-messaging/01-no-results\", partials: {}, subs: { }},\"<02-organisms/10-lend/03-paging2\":{name:\"02-organisms/10-lend/03-paging\", partials: {}, subs: { }}}, subs: { }}, \"
        \\n\\t{{#is_new_loan_card}}
         
        {{/is_new_loan_card}}\\n\\t
        Loan / country
        \\n\\t
        Partner / Trustee
        \\n\\t
        Loan length
        \\n
        \\n\\n\\n\\t{{#loans}}\\n\\t\\t
      • \\n\\t\\t\\t{{> 02-organisms/04-loancards/00-loancard-listing}}\\n\\t\\t
      • \\n\\t{{/loans}}\\n\\n\\t{{#if-no-results}}\\n\\t\\t{{> 01-molecules/07-messaging/01-no-results}}\\n\\t{{/if-no-results}}\\n\\n\\n\\n{{> 02-organisms/10-lend/03-paging}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/04-loancards/02-loancards-listing.mustache\n// module id = 569\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/10-lend/03-paging.mustache\n// module id = 570\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, _ = require('underscore')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\tevents: {\n\t\t\tchange: '_handleChange'\n\t\t}\n\n\n\t\t/*\n\t\t * Sets attribtues to the model, but does not lead to an executed search\n\t\t */\n\t\t, setValue: function(name, value){\n\t\t\t_.each(this.el.querySelectorAll('[value=\\''+value+'\\']'), function(el){\n\t\t\t\tel.checked = true;\n\t\t\t});\n\t\t}\n\n\n\t\t, coerceValue: function(name, value){\n\t\t\tvar retVal = value;\n\n\t\t\tif (name === 'gender' && value === 'men') {\n\t\t\t\tretVal = 'male';\n\t\t\t} else if (name === 'gender' && value === 'women'){\n\t\t\t\tretVal = 'female';\n\t\t\t} else if (name === 'gender' && value === 'nonbinary'){\n\t\t\t\tretVal = 'nonbinary';\n\t\t\t} else if (name === 'distributionModel' && value === 'field-partner') {\n\t\t\t\tretVal = 'field_partner';\n\t\t\t}\n\n\t\t\treturn retVal;\n\t\t}\n\n\n\t\t, _handleChange: function(event){\n\t\t\tevent.preventDefault();\n\n\t\t\tif(event.target.value === 'none') {\n\t\t\t\tthis.trigger('unset', {name: event.target.name});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.trigger('change', {name: event.target.name, value: event.target.value});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Lend/MultiStateButtonsView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        \");t.b(t.t(t.f(\"descriptionTitle\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        \");t.b(t.t(t.f(\"descriptionText\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
        \\n\\t\\t\\t\\t{{!The content within this div is the only change from the copy and pasted lightbox atom. If you need to\\n\\t\\t\\t\\t make changes to this lightbox outside of this div, those changes need to be made to every lightbox file within the\\n\\t\\t\\t\\t Molecules/10-lightbox folder. }}\\n\\t\\t\\t\\t

        {{{descriptionTitle}}}

        \\n\\t\\t\\t\\t

        {{{descriptionText}}}

        \\n\\t\\t\\t
        \\n\\t\\t
        \\n\\t
        \\n
        \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/06-dynamic-help-text-lightbox.mustache\n// module id = 572\n// module chunks = 0","/*global wwwApp*/\ndefine(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\n\treturn {\n\t\tinit: function () {\n\t\t\tthis.userSawTipMsg = false;\n\t\t},\n\n\t\ttipMsgOnFirstFavorite: function (untag) {\n\t\t\tif (!untag) { // only show the tip message if they are trying to favorite a loan (not un-favorite)\n\t\t\t\ttry {\n\t\t\t\t\tif (!sessionStorage.userFavoritedLoan) {\n\t\t\t\t\t\tsessionStorage.userFavoritedLoan = true;\n\t\t\t\t\t\twwwApp.tipMsg('This loan has been added to your \"Saved loans\" list, which is accessible under the \"Lend\" menu in the header.');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (!this.userSawTipMsg) {\n\t\t\t\t\t\tthis.userSawTipMsg = true;\n\t\t\t\t\t\twwwApp.tipMsg('This loan has been added to your \"Saved loans\" list, which is accessible under the \"Lend\" menu in the header.');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfavoriteLoan: function (loanId, untag) {\n\t\t\tvar ajaxCall = $.ajax({\n\t\t\t\turl: wwwApp.ajaxUrl('saveUserFavorite')\n\t\t\t\t, type: 'post'\n\t\t\t\t, data: {\n\t\t\t\t\tentity_id: loanId\n\t\t\t\t\t, untag: untag\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar self = this;\n\t\t\tajaxCall.done(function () {\n\t\t\t\tself.tipMsgOnFirstFavorite(untag);\n\t\t\t});\n\n\t\t\treturn ajaxCall;\n\t\t}\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Loan/LoanFavorites.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/01-molecules/05-navigation/07-pagination')\n\n\t\t, model: new Backbone.Model()\n\n\t\t, events: {\n\t\t\t'click a' : '_handlePageClick'\n\t\t}\n\n\t\t, _handlePageClick : function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar $link = $(event.target);\n\n\t\t\tif(!$link.hasClass('disabled')) {\n\t\t\t\tif($link.hasClass('prev-page')) {\n\t\t\t\t\tthis.trigger('page-change', this.model.get('current_page') - 1);\n\t\t\t\t}\n\t\t\t\telse if($link.hasClass('next-page')) {\n\t\t\t\t\tthis.trigger('page-change', this.model.get('current_page') + 1);\n\t\t\t\t}\n\t\t\t\telse if($link.hasClass('page-number')) {\n\t\t\t\t\tthis.trigger('page-change', parseInt($link.text()));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tvar current = data.current_page;\n\t\t\tvar total = data.num_pages;\n\t\t\tvar numbers, pages;\n\n\t\t\tif(total < 7) {\n\t\t\t\tnumbers = _.range(1, total+1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif(current === 1 || current === 2) {\n\t\t\t\t\tnumbers = _.range(1, 6);\n\t\t\t\t}\n\t\t\t\telse if(current === total-1 || current === total) {\n\t\t\t\t\tnumbers = _.range(total-4, total+1);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tnumbers = _.range(current-2, current+3);\n\t\t\t\t}\n\n\t\t\t\tnumbers = numbers.concat([1,total]); // add the first and last page numbers\n\t\t\t\tnumbers.sort(function(a,b) { return a - b; }); // sort by number\n\t\t\t\tnumbers = _.uniq(numbers, true); // remove duplicates\n\n\t\t\t\tif(numbers[1] !== 2) {\n\t\t\t\t\tnumbers.splice(1, 0, 0); // add a placeholder for first ellipsis\n\t\t\t\t}\n\t\t\t\tif(numbers[numbers.length-2] !== total-1) {\n\t\t\t\t\tnumbers.splice(numbers.length-1, 0, 0); // add a placeholder for last ellipsis\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpages = _.map(numbers, function(number) {\n\t\t\t\tif(number) {\n\t\t\t\t\treturn {number: number, current: current === number};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn {ellipsis: true};\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tshow_pagination: total > 1,\n\t\t\t\tfirst_page: current === 1,\n\t\t\t\tlast_page: current === total,\n\t\t\t\tpages: pages\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param options - should be the same as what is passed into SecondaryNavView\n\t\t */\n\t\t, initialize: function(options) {\n\t\t\tthis.model.set(options);\n\t\t}\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Xb/PaginationView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/05-navigation/07-pagination.mustache\n// module id = 575\n// module chunks = 0","// @TOOD - taking an exception here and mixing logic with templates cause I don't have time and I just need to get something working...\n\n/**\n * Helper function for rendering views.\n *\n */\n\ndefine(function (require) {\n 'use strict';\n\n var $ = require('jquery')\n , _ = require('underscore')\n\n\n\t, htmlCheckablesTpl = '
        \">'\n\t\t + '<% _.each(inputs, function (input) {%>'\n\t\t + '
        '\n\t\t + '\" name=\"<%= input.name %>\" id=\"<%= input.id %>\" value=\"<%= input.value %>\" <%= input.checked ? \\'checked\\' : \\'\\'%>>'\n\t\t + ''\n\t\t + '
        '\n\t\t\t+ '<% }) %>'\n\t\t+ '
        '\n\n\n , htmlCheckableTpl = '\" name=\"<%= input.name %>\" id=\"<%= input.id %>\" value=\"<%= input.value %>\" <%= input.checked ? \\'checked\\' : \\'\\'%>>'\n\t + '\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t\tLender messages shouldn't be used for self-promotion, advertising or solicitation. More information can be found in Kiva's community guidelines.\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);};};};t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"{{#is-styleguide}}\\n Compose a lender message\\n{{/is-styleguide}}\\n\\n
        \\n
        \\n
        \\n \\n \\n \\n \\n \\n
        \\n\\t\\t\\t\\t{{#no-loans}}\\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t

        You need to make a loan before you can send a message.

        \\n\\t\\t\\t\\t\\t\\t

        In order to send a message, you will need to make a loan using your own funds first. This helps us prevent spam and unwanted messages.

        \\n\\t\\t\\t\\t\\t\\t

        Please make a loan first (note that loans made with bonus credit are not eligible) and then try your message again!

        \\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t{{/no-loans}}\\n\\t\\t\\t\\t{{^no-loans}}{{#sender-anonymous}}\\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t

        You need a public profile to send messages.

        \\n\\t\\t\\t\\t\\t\\t

        Your lender profile is anonymous. You must have a public lender profile to use lender messages. Update your profile settings, go to your account settings.

        \\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t{{/sender-anonymous}}{{/no-loans}}\\n\\t\\t\\t\\t{{^no-loans}}{{^sender-anonymous}}{{#recipient-anonymous}}\\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t

        The recipient is anonymous and does not accept messages.

        \\n\\t\\t\\t\\t\\t\\t

        Sorry, you can't send a message to this lender at this time.

        \\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t{{/recipient-anonymous}}{{/sender-anonymous}}{{/no-loans}}\\n\\t\\t\\t\\t{{^sender-anonymous}}{{^recipient-anonymous}}{{^no-loans}}\\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        {{location}}
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        {{location}}
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tLender messages shouldn't be used for self-promotion, advertising or solicitation. More information can be found in Kiva's community guidelines.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t\\t
        \\n\\t\\t\\t\\t{{/no-loans}}{{/recipient-anonymous}}{{/sender-anonymous}}\\n
        \\n
        \\n
        \\n
        \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/16-compose-message.mustache\n// module id = 706\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"other-lender\",c,p,1),c,p,0,93,230,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"other-lender\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");t.b(\"\\n\" + i);};t.b(\"\t\t
        Date: \");t.b(t.v(t.f(\"date\",c,p,0)));t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"is-sent\",c,p,1),c,p,0,445,447,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"To\");});c.pop();}if(!t.s(t.f(\"is-sent\",c,p,1),c,p,1,0,0,\"\")){t.b(\"From\");};t.b(\": \");t.b(\"\\n\" + i);if(t.s(t.f(\"other-lender\",c,p,1),c,p,0,517,615,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");if(t.s(t.f(\"location\",c,p,1),c,p,0,570,598,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" | \");t.b(t.v(t.f(\"location\",c,p,0)));t.b(\"\");});c.pop();}t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"other-lender\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\tAnonymous\");t.b(\"\\n\" + i);};t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.t(t.f(\"message-body\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);if(!t.s(t.f(\"is-sent\",c,p,1),c,p,1,0,0,\"\")){t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\t\tReply\");t.b(\"\\n\" + i);t.b(\" Delete\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);};t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t{{#other-lender}}\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t{{/other-lender}}\\n\\t\\t{{^other-lender}}\\n\\t\\t\\t\\n\\t\\t{{/other-lender}}\\n\\t\\t
        Date: {{date}}
        \\n\\t\\t
        \\n\\t\\t\\t{{#is-sent}}To{{/is-sent}}{{^is-sent}}From{{/is-sent}}: \\n\\t\\t\\t{{#other-lender}}\\n\\t\\t\\t\\t{{name}}\\n\\t\\t\\t\\t{{#location}} | {{location}}{{/location}}\\n\\t\\t\\t{{/other-lender}}\\n\\t\\t\\t{{^other-lender}}\\n\\t\\t\\t\\tAnonymous\\n\\t\\t\\t{{/other-lender}}\\n\\t\\t
        \\n\\t
        \\n\\t

        \\n\\t\\t{{{message-body}}}\\n\\t

        \\n {{^is-sent}}\\n
        \\n\\t\\t\\tReply\\n Delete\\n
        \\n {{/is-sent}}\\n\\t
        \\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/21-messages/01-lender-message.mustache\n// module id = 707\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\");if(t.s(t.f(\"sentMessages\",c,p,1),c,p,0,73,86,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Sent messages\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\");if(!t.s(t.f(\"sentMessages\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Inbox\");};t.b(\"\\n\" + i);if(!t.s(t.f(\"loading\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");if(t.s(t.f(\"message-count\",c,p,1),c,p,0,182,202,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\" (\");t.b(t.v(t.f(\"message-count\",c,p,0)));t.b(\")\");});c.pop();}t.b(\"\\n\" + i);};t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(!t.s(t.f(\"loading\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"message-count\",c,p,1),c,p,0,309,390,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tShowing \");t.b(t.v(t.f(\"first-on-page\",c,p,0)));t.b(\"-\");t.b(t.v(t.f(\"last-on-page\",c,p,0)));t.b(\" of \");t.b(t.v(t.f(\"message-count\",c,p,0)));t.b(\" messages\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"message-count\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t0 messages\");t.b(\"\\n\" + i);};};t.b(\"\t\");t.b(\"\\n\" + i);t.b(\" \");if(!t.s(t.f(\"sentMessages\",c,p,1),c,p,1,0,0,\"\")){t.b(\"

        Lender messages should always abide by Kiva's community guidelines.

        \");};t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner0\",c,p,\"\t\t\t\"));t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
          \");t.b(\"\\n\" + i);if(t.s(t.f(\"messages\",c,p,1),c,p,0,920,998,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t
        • \");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/21-messages/01-lender-message1\",c,p,\"\t\t\t\t\t\"));t.b(\"\t\t\t\t
        • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(!t.s(t.f(\"loading\",c,p,1),c,p,1,0,0,\"\")){if(!t.s(t.f(\"message-count\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"sentMessages\",c,p,1),c,p,0,1083,1324,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t

        You haven't sent any lender messages.

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        You can send a message directly from another lender's public profile, or by replying to a message you've received. You must have a public lender profile to use lender messages.

        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"sentMessages\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t

        Lender messages allow you to communicate directly with other lenders through the Kiva website, building stronger community with one another. You can send a message directly from another lender's public profile, or by replying to a message you've received.

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        You must have a public lender profile to use lender messages.

        \");t.b(\"\\n\" + i);};};};t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/05-navigation/07-pagination2\",c,p,\"\t\t\"));t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {\"<01-molecules/03-media/01-loading-spinner0\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }},\"<02-organisms/21-messages/01-lender-message1\":{name:\"02-organisms/21-messages/01-lender-message\", partials: {}, subs: { }},\"<01-molecules/05-navigation/07-pagination2\":{name:\"01-molecules/05-navigation/07-pagination\", partials: {}, subs: { }}}, subs: { }}, \"
        \\n\\t

        \\n\\t\\t{{#sentMessages}}Sent messages{{/sentMessages}}\\n\\t\\t{{^sentMessages}}Inbox{{/sentMessages}}\\n\\t\\t{{^loading}}\\n\\t\\t\\t{{#message-count}} ({{message-count}}){{/message-count}}\\n\\t\\t{{/loading}}\\n\\t

        \\n\\t\\n\\t\\t{{^loading}}\\n\\t\\t\\t{{#message-count}}\\n\\t\\t\\t\\tShowing {{first-on-page}}-{{last-on-page}} of {{message-count}} messages\\n\\t\\t\\t{{/message-count}}\\n\\t\\t\\t{{^message-count}}\\n\\t\\t\\t\\t0 messages\\n\\t\\t\\t{{/message-count}}\\n\\t\\t{{/loading}}\\n\\t\\n {{^sentMessages}}

        Lender messages should always abide by Kiva's community guidelines.

        {{/sentMessages}}\\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t\\t
        \\n\\t\\t
          \\n\\t\\t\\t{{#messages}}\\n\\t\\t\\t\\t
        • \\n\\t\\t\\t\\t\\t{{> 02-organisms/21-messages/01-lender-message }}\\n\\t\\t\\t\\t
        • \\n\\t\\t\\t{{/messages}}\\n\\t\\t
        \\n\\t
        \\n\\t{{^loading}}\\n\\t\\t{{^message-count}}\\n\\t\\t\\t{{#sentMessages}}\\n\\t\\t\\t\\t

        You haven't sent any lender messages.

        \\n\\t\\t\\t\\t

        You can send a message directly from another lender's public profile, or by replying to a message you've received. You must have a public lender profile to use lender messages.

        \\n\\t\\t\\t{{/sentMessages}}\\n\\t\\t\\t{{^sentMessages}}\\n\\t\\t\\t\\t

        Lender messages allow you to communicate directly with other lenders through the Kiva website, building stronger community with one another. You can send a message directly from another lender's public profile, or by replying to a message you've received.

        \\n\\t\\t\\t\\t

        You must have a public lender profile to use lender messages.

        \\n\\t\\t\\t{{/sentMessages}}\\n\\t\\t{{/message-count}}\\n\\t{{/loading}}\\n\\t
        \\n\\t\\t{{> 01-molecules/05-navigation/07-pagination }}\\n\\t
        \\n
        \\n
        \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/03-templates/23-inbox.mustache\n// module id = 708\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette');\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'account/messages': 'showInboxView',\n\t\t\t'account/messages/sent': 'showSentMessagesView'\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./routers/MessagesRouter.js","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t, coercions = require('lib/coercions/coercions')\n\t\t, Backbone = require('backbone')\n\t\t, Marionette = require('marionette')\n\t\t, PortfolioView = require('views/Xb/Portfolio/PortfolioView')\n\t\t;\n\n\t// constant for number of loans to show on each page\n\tvar LIMIT = 20;\n\n\treturn Marionette.Controller.extend({\n\n\t\tdefaultLoanFilters: {\n\t\t\tiDisplayStart: 0\n\t\t\t, iDisplayLength: LIMIT\n\t\t}\n\n\t\t, showLoansView: function (params) {\n\t\t\tthis._getCountries();\n\t\t\tthis._getPartners();\n\t\t\tthis._executeLoanSearch();\n\t\t}\n\n\t\t, _executeLoanSearch: function() {\n\t\t\tthis._startLoading();\n\t\t\tif(this.lastLoanSearchRequest) {\n\t\t\t\tthis.lastLoanSearchRequest.abort();\n\t\t\t}\n\t\t\tthis.lastLoanSearchRequest = $.getJSON('/portfolio/loans/data', this.loanFilters.toJSON())\n\t\t\t\t.done(this._handleLoanSearchDone)\n\t\t\t\t.always(this._stopLoading);\n\t\t}\n\n\t\t, _getCountries: function() {\n\t\t\tthis._startLoading();\n\t\t\t$.getJSON('/ajax/'+this.options.moduleData.public_id+'/v6/mycountries.js')\n\t\t\t\t.done(this._handleGetCountriesDone)\n\t\t\t\t.always(this._stopLoading);\n\t\t}\n\n\t\t, _getPartners: function() {\n\t\t\tthis._startLoading();\n\t\t\t$.getJSON('/ajax/'+this.options.moduleData.public_id+'/v6/mypartners.js')\n\t\t\t\t.done(this._handleGetPartnersDone)\n\t\t\t\t.always(this._stopLoading);\n\t\t}\n\n\t\t, _handleFilterChange: function(name, value) {\n\t\t\tif ((name !== 'queryString' && value === 'all') || value === '') {\n\t\t\t\tthis.loanFilters.unset(name);\n\t\t\t} else {\n\t\t\t\tthis.loanFilters.set(name, value);\n\t\t\t}\n\t\t\tthis.loanFilters.set('iDisplayStart', 0);\n\t\t\tthis._executeLoanSearch();\n\t\t}\n\n\t\t, _handleFilterClear: function() {\n\t\t\tthis.loanFilters.clear();\n\t\t\tthis.loanFilters.set(this.defaultLoanFilters);\n\t\t\tthis._executeLoanSearch();\n\t\t}\n\n\t\t, _handleGetCountriesDone: function(result) {\n\t\t\tif(result) {\n\t\t\t\tthis.view.setCountries(result);\n\t\t\t}\n\t\t}\n\n\t\t, _handleGetPartnersDone: function(result) {\n\t\t\tif(result) {\n\t\t\t\tthis.view.setPartners(result);\n\t\t\t}\n\t\t}\n\n\t\t, _handleLoanSearchDone: function(result) {\n\t\t\tthis.view.setLoans(\n\t\t\t\tresult.aaData,\n\t\t\t\tresult.iTotalRecords,\n\t\t\t\t(this.loanFilters.get('iDisplayStart') / LIMIT) + 1,\n\t\t\t\tMath.ceil(result.iTotalRecords / LIMIT)\n\t\t\t);\n\t\t\tthis.lastLoanCount = result.iTotalRecords;\n\t\t}\n\n\t\t, _handlePageChange: function(page) {\n\t\t\tthis.loanFilters.set('iDisplayStart', (page-1) * LIMIT);\n\t\t\tthis._executeLoanSearch();\n\t\t}\n\n\t\t, _handleTeamAssign: function(loan_id, team_id) {\n\t\t\tvar deferred = new $.Deferred();\n\n\t\t\t$.getJSON('/ajax/reassignTeamPurchases', {\n\t\t\t\tuser_id: this.options.moduleData.user_id,\n\t\t\t\tbusiness_id: loan_id,\n\t\t\t\tnew_team_id: team_id === 0 ? undefined : team_id\n\t\t\t})\n\t\t\t.done(function(result) {\n\t\t\t\tif(!result || result === '') {\n\t\t\t\t\tdeferred.reject(loan_id);\n\t\t\t\t}\n\t\t\t\telse if(result === -100) {\n\t\t\t\t\tdeferred.reject(loan_id, 'Please log in and try again.');\n\t\t\t\t}\n\t\t\t\telse if(result.num_purchases_changed > 0) {\n\t\t\t\t\tdeferred.resolve(result);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdeferred.reject(loan_id);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.fail(function() {\n\t\t\t\tdeferred.reject(loan_id);\n\t\t\t});\n\n\t\t\tdeferred.done(this._handleTeamAssignDone).fail(this._handleTeamAssignFailure);\n\t\t}\n\n\t\t, _handleTeamAssignDone: function(result) {\n\t\t\tif(result.new_team_id) {\n\t\t\t\tvar team = _.findWhere(this.options.moduleData.teams, { id: parseInt(result.new_team_id) });\n\t\t\t\t// TODO: Remove lending team name from tip message\n\t\t\t\t// TODO: set in context and add an class on the element surrounding the team name\n\t\t\t\twwwApp.tipMsg('Loan purchase reassigned to team ' + team.name + '.', 'confirmation');\n\t\t\t}\n\t\t}\n\n\t\t, _handleTeamAssignFailure: function(loan_id, error) {\n\t\t\terror = typeof error === 'string' && error.length ? ' ' + error : '';\n\t\t\twwwApp.tipMsg('There was an error. The loan has not been assigned.' + error, 'warning');\n\t\t\tthis.view.resetTeam(loan_id);\n\t\t}\n\n\t\t, _exportLoanData: function() {\n\t\t\twindow.location.assign('/portfolio/loans/export?' + $.param(this.loanFilters.toJSON()));\n\t\t}\n\n\t\t, _startLoading: function() {\n\t\t\tthis.loadingCounter++;\n\t\t\tthis.view.setLoading(!!this.loadingCounter);\n\t\t}\n\n\t\t, _stopLoading: function() {\n\t\t\tthis.loadingCounter = this.loadingCounter > 0 ? this.loadingCounter - 1 : 0;\n\t\t\tthis.view.setLoading(!!this.loadingCounter);\n\t\t\tvar noLoans = $('.no-loans');\n\n\t\t\tif (this.lastLoanCount === 0) {\n\t\t\t\tnoLoans.show();\n\t\t\t} else {\n\t\t\t\tnoLoans.hide();\n\t\t\t}\n\t\t}\n\n\n\t\t, initialize: function(options) {\n\t\t\tthis.loadingCounter = 0;\n\t\t\tthis.defaultLoanFilters.user_id = options.moduleData.user_id;\n\t\t\tthis.loanFilters = new Backbone.Model(this.defaultLoanFilters);\n\n\t\t\tthis.view = new PortfolioView(_.extend({}, options.moduleData));\n\n\t\t\tthis.listenTo(this.view, 'team-assign', this._handleTeamAssign);\n\t\t\tthis.listenTo(this.view, 'filter-change', this._handleFilterChange);\n\t\t\tthis.listenTo(this.view, 'filter-clear', this._handleFilterClear);\n\t\t\tthis.listenTo(this.view, 'export-loan-data', this._exportLoanData);\n\t\t\tthis.listenTo(this.view, 'page-change', this._handlePageChange);\n\n\t\t\t_.bindAll(this,\n\t\t\t\t'_handleGetCountriesDone',\n\t\t\t\t'_handleGetPartnersDone',\n\t\t\t\t'_handleLoanSearchDone',\n\t\t\t\t'_handleTeamAssignDone',\n\t\t\t\t'_handleTeamAssignFailure',\n\t\t\t\t'_stopLoading'\n\t\t\t);\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./controllers/PortfolioController.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, _ = require('underscore')\n\t\t, LoanRowView = require('components/Portfolio/LoanRowView')\n\t\t, FiltersView = require('components/Portfolio/LoanFiltersView')\n\t\t, PaginationView = require('components/Xb/PaginationView')\n\t\t;\n\n\treturn Marionette.CompositeView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/40-portfolio/09-my-loans-table')\n\n\t\t, partials: {\n\t\t\t'01-molecules/03-media/01-loading-spinner': require('hgn!patterns/01-molecules/03-media/01-loading-spinner')\n\t\t}\n\n\t\t, childView: LoanRowView\n\n\t\t, childViewOptions: function() {\n\t\t\treturn _.pick(this.options, ['teams']);\n\t\t}\n\n\t\t, childViewContainer: 'tbody'\n\n\t\t, childEvents: {\n\t\t\t'team-assign': '_handleTeamAssign'\n\t\t}\n\n\t\t, events: {\n\t\t\t'click [aria-controls=\"loan-filters\"]': '_handleFilterToggle'\n\t\t\t, 'click .filter-clear': '_handleFilterClear'\n\t\t\t, 'click .export-button': '_handleExportLoanData'\n\t\t}\n\n\t\t, collection: new Backbone.Collection()\n\n\t\t, model: new Backbone.Model()\n\n\t\t, resetTeam: function(loan_id) {\n\t\t\tvar loan_row = this.children.find(function(view) {\n\t\t\t\treturn view.model.get('loan.id') === loan_id;\n\t\t\t});\n\t\t\tif(loan_row) {\n\t\t\t\tloan_row.resetTeam();\n\t\t\t}\n\t\t}\n\n\t\t, setCountries: function(countries) {\n\t\t\tthis.filtersView.setCountries(countries);\n\t\t}\n\n\t\t, setLoans: function(loans, loan_count, current_page, num_pages) {\n\t\t\tthis.model.set('single_loan', loan_count === 1);\n\t\t\tthis.model.set('loan_count', loan_count);\n\t\t\tthis.model.set('current_page', current_page);\n\t\t\tthis.model.set('num_pages', num_pages);\n\t\t\tthis.render();\n\t\t\tthis.collection.reset(loans);\n\t\t}\n\n\t\t, setLoading: function(loading) {\n\t\t\tif(loading !== this.model.get('loading')) {\n\t\t\t\tthis.model.set('loading', loading);\n\t\t\t\tthis.render();\n\t\t\t}\n\t\t}\n\n\t\t, setPartners: function(partners) {\n\t\t\tthis.filtersView.setPartners(partners);\n\t\t}\n\n\t\t, _bubbleFilterChange : function(name, value) {\n\t\t\tthis.trigger('filter-change', name, value);\n\t\t\tthis.model.set('filters_set', true);\n\t\t}\n\n\t\t, _bubblePageChange: function(page) {\n\t\t\tthis.trigger('page-change', page);\n\t\t}\n\n\t\t, _handleFilterClear: function(e) {\n\t\t\te.preventDefault();\n\t\t\tthis.trigger('filter-clear');\n\t\t\tthis.model.set('filters_set', false);\n\t\t\tthis.filtersView.clearFilters();\n\t\t}\n\n\t\t, _handleFilterToggle: function(e) {\n\t\t\te.preventDefault();\n\t\t\tvar $toggle = this.$('[aria-controls=\"loan-filters\"]');\n\t\t\tif($toggle.attr('aria-expanded') === 'true') {\n\t\t\t\t$toggle.text('Hide filters');\n\t\t\t\tthis.model.set('filters_expanded', true);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$toggle.text('Filters');\n\t\t\t\tthis.model.set('filters_expanded', false);\n\t\t\t}\n\t\t}\n\n\t\t, _handleTeamAssign: function(child, loan_id, team_id) {\n\t\t\tthis.trigger('team-assign', loan_id, team_id);\n\t\t}\n\n\t\t, _handleExportLoanData: function() {\n\t\t\tthis.trigger('export-loan-data');\n\t\t}\n\n\t\t, onRender: function() {\n\t\t\tthis.filtersView = new FiltersView(_.extend(\n\t\t\t\tthis.options,\n\t\t\t\t{el: '.loans-filters-region'},\n\t\t\t\t{filters_expanded: this.model.get('filters_expanded')}\n\t\t\t));\n\t\t\tthis.filtersView.render();\n\n\t\t\tthis.listenTo(this.filtersView, 'filter-change', this._bubbleFilterChange);\n\n\t\t\tthis.paginationView = new PaginationView({\n\t\t\t\tel: '.pagination-region',\n\t\t\t\tcurrent_page: this.model.get('current_page') || 0,\n\t\t\t\tnum_pages: this.model.get('num_pages') || 0\n\t\t\t});\n\t\t\tthis.paginationView.render();\n\n\t\t\tthis.listenTo(this.paginationView, 'page-change', this._bubblePageChange);\n\t\t}\n\n\t\t, initialize: function(options) {\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Portfolio/LoansView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t, numeral = require('numeral')\n\t\t, moment = require('moment')\n\t\t, repaymentsLightbox = require('hgn!patterns/01-molecules/10-lightbox/15-dynamic-repayments-lightbox')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/01-molecules/40-portfolio/07-my-loans-table-row')\n\n\t\t, tagName: 'tr'\n\n\t\t, events: {\n\t\t\t'change select[name=\"team-assignment\"]': '_handleTeamChange',\n\t\t\t'click .progress-amount a': '_handleRepaymentsLightbox'\n\t\t}\n\n\t\t, resetTeam: function() {\n\t\t\tif(this.previousTeams) {\n\t\t\t\tthis.model.set('teams', this.previousTeams);\n\t\t\t}\n\t\t\tthis.render();\n\t\t}\n\n\t\t, _getImageContext: function(hash, size) {\n\t\t\treturn {\n\t\t\t\tsizes: [\n\t\t\t\t\t{ size: 'default', url: wwwApp.imageUrl(hash, 's' + size) },\n\t\t\t\t\t{ size: 'retina', url: wwwApp.imageUrl(hash, 's' + (size * 2)) }\n\t\t\t\t],\n\t\t\t\turl: wwwApp.imageUrl(hash, 's' + size)\n\t\t\t};\n\t\t}\n\n\t\t, _handleTeamChange: function(event) {\n\t\t\tthis.previousTeams = this.model.get('teams') || [];\n\t\t\tvar team_id = numeral(event.target.value).value();\n\t\t\tvar new_team = _.findWhere(this.options.teams, {id: team_id});\n\t\t\tthis.model.set('teams', [new_team]);\n\t\t\tthis.trigger('team-assign', this.model.get('loan.id'), team_id);\n\t\t}\n\n\t\t, _handleRepaymentsLightbox: function(event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar context = {\n\t\t\t\tcreditChanges: _.chain(this.model.get('creditChanges'))\n\t\t\t\t\t.filter(function(cc) {\n\t\t\t\t\t\treturn _.contains([\n\t\t\t\t\t\t\t'loan_repayment',\n\t\t\t\t\t\t\t'direct_loan_repayment',\n\t\t\t\t\t\t\t'loan_repayment_currency_loss',\n\t\t\t\t\t\t\t'direct_loan_repayment_currency_loss',\n\t\t\t\t\t\t\t'promo_loan_currency_loss'\n\t\t\t\t\t\t], cc.type);\n\t\t\t\t\t})\n\t\t\t\t\t.sortBy(function(cc) {\n\t\t\t\t\t\treturn cc.createTime + (cc.type.indexOf('loss') !== -1 ? 0.5 : 0);\n\t\t\t\t\t})\n\t\t\t\t\t.map(function(cc) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdate: moment.unix(cc.createTime).format('MMM D, YYYY'),\n\t\t\t\t\t\t\tamount: numeral(cc.amount.amount).format('$0,0.00'),\n\t\t\t\t\t\t\tloss: cc.type.indexOf('loss') !== -1\n\t\t\t\t\t\t};\n\t\t\t\t\t})\n\t\t\t\t\t.value()\n\t\t\t};\n\t\t\t\n\t\t\t$(repaymentsLightbox.render(context)).foundation('reveal', 'open');\n\t\t}\n\n\t\t, _serializeBasicProperties: function(loan) {\n\t\t\treturn _.pick(loan, [\n\t\t\t\t'activity',\n\t\t\t\t'canChangeTeamAssignment',\n\t\t\t\t'dedication',\n\t\t\t\t'id',\n\t\t\t\t'lenderRepaymentTerm',\n\t\t\t\t'geocode',\n\t\t\t\t'matchedLoan',\n\t\t\t\t'name',\n\t\t\t\t'partnerName',\n\t\t\t\t'promoTypeType',\n\t\t\t\t'statusHuman',\n\t\t\t\t'trusteeName'\n\t\t\t]);\n\t\t}\n\n\t\t, _serializeLoanAmount: function(loan) {\n\t\t\treturn {\n\t\t\t\tloanAmount: numeral(loan.loanAmount.amount).format()\n\t\t\t};\n\t\t}\n\n\t\t, _serializeLoanDetails: function(loan) {\n\t\t\tvar partner_url, dedication;\n\n\t\t\tif (_.isNumber(loan.partnerId)) {\n\t\t\t\tpartner_url = wwwApp.url('partner', 'partner', { id: loan.partnerId });\n\t\t\t} else {\n\t\t\t\tpartner_url = wwwApp.url('trustee', 'profile', { trusteeId: loan.trusteeId });\n\t\t\t}\n\n\t\t\tif(loan.dedication) {\n\t\t\t\tif(loan.dedication === 'kiva') {\n\t\t\t\t\tdedication = {\n\t\t\t\t\t\ttoKiva: true\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdedication = {\n\t\t\t\t\t\trecipient: loan.dedication,\n\t\t\t\t\t\turl: wwwApp.url('dedication', 'dedication', { b_id: loan.id })\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar hasCountry = loan && loan.geocode && loan.geocode.country || null;\n\t\t\tvar isoCode = hasCountry !== null && hasCountry.isoCode ? hasCountry.isoCode.toLowerCase() : null;\n\t\t\tvar countryName = hasCountry !== null && hasCountry.name ? hasCountry.name : null;\n\n\t\t\treturn {\n\t\t\t\tdedication: dedication,\n\t\t\t\tgeocode: {\n\t\t\t\t\tcountry: {\n\t\t\t\t\t\tisoCode: isoCode,\n\t\t\t\t\t\tname: countryName\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\thasCountry: !!hasCountry,\n\t\t\t\turl: wwwApp.url('businesses', 'loanView', { loanId: loan.id }),\n\t\t\t\tpartnerTrusteeUrl: partner_url\n\t\t\t};\n\t\t}\n\n\t\t, _serializeLoanImage: function(image) {\n\t\t\treturn {\n\t\t\t\timage: this._getImageContext(image.hash, 50)\n\t\t\t};\n\t\t}\n\n\t\t, _serializeProgress: function(loan) {\n\t\t\treturn {\n\t\t\t\tfundedAmount: numeral(loan.loanFundraisingInfo.fundedAmount.amount).format(),\n\t\t\t\tarrearsAmount: loan.arrearsAmount ? numeral(loan.arrearsAmount).multiply(-1).format() : undefined,\n\t\t\t\tsharedArrearsAmount: loan.sharedArrearsAmount ? numeral(loan.sharedArrearsAmount).multiply(-1).format() : undefined,\n\t\t\t\trepaidAmountTotal: numeral(loan.repaidAmountTotal).format(),\n\t\t\t\trepaidAmountToYou: loan.repaidAmountToYou > 0 ? numeral(loan.repaidAmountToYou).format() : undefined\n\t\t\t};\n\t\t}\n\n\t\t, _serializeShare: function(data) {\n\t\t\treturn {\n\t\t\t\tshareAmount: numeral(data.shareAmount.amount).format(),\n\t\t\t\tdateLent: moment.unix(data.latestSharePurchaseDate).format('MMM D, YYYY'),\n\t\t\t\tpromoCreditUsedAmount: data.loan.promoCreditUsedAmount > 0 ? numeral(data.loan.promoCreditUsedAmount).format('$0,0[.]00') : undefined\n\t\t\t};\n\t\t}\n\n\t\t, _serializeStatus: function(loan) {\n\t\t\tvar context = {};\n\n\t\t\tif(loan.repaidAmountTotal > 0) {\n\t\t\t\tcontext.hasPaidSomething = true;\n\t\t\t}\n\t\t\tif(loan.status === 'fundRaising' || loan.status === 'raised') {\n\t\t\t\tcontext.isFundraising = true;\n\t\t\t}\n\t\t\tif(loan.status === 'refunded' || loan.status === 'expired') {\n\t\t\t\tcontext.isRefunded = true;\n\t\t\t}\n\n\t\t\treturn context;\n\t\t}\n\n\t\t, _serializeTeams: function(data) {\n\t\t\tvar can_change = data.loan.canChangeTeamAssignment && this.options.teams && this.options.teams.length;\n\n\t\t\tif(can_change) {\n\t\t\t\tvar current_team = data.teams && data.teams.length ? data.teams[0].teamPublicId : '';\n\t\t\t\tvar teams = [];\n\n\t\t\t\tif(!data.teams || !data.teams.length) {\n\t\t\t\t\tteams.push({\n\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t\tlabel: 'None',\n\t\t\t\t\t\tselected: true\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tteams = teams.concat(_.map(this.options.teams, function(team) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: team.id,\n\t\t\t\t\t\tlabel: team.name,\n\t\t\t\t\t\tselected: team.teamPublicId === current_team\n\t\t\t\t\t};\n\t\t\t\t}));\n\n\t\t\t\treturn {\n\t\t\t\t\tteams: teams,\n\t\t\t\t\tcanChangeTeamAssignment: true\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar self = this;\n\t\t\t\treturn {\n\t\t\t\t\tteams: _.map(data.teams, function(team) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tteamName: team.name.length > 20 ? team.name.slice(0, 20) + '...' : team.name,\n\t\t\t\t\t\t\tteamUrl: wwwApp.url('community', 'viewTeamSummary', { teamPublicId: team.teamPublicId }),\n\t\t\t\t\t\t\tteamImage: team.image ? self._getImageContext(team.image.hash !== '' ? team.image.hash : team.image.id, 35) : null\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t\tcanChangeTeamAssignment: false\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tnumeral.defaultFormat('$0,0.00');\n\n\t\t\treturn _.extend(\n\t\t\t\tthis._serializeBasicProperties(data.loan),\n\t\t\t\tthis._serializeStatus(data.loan),\n\t\t\t\tthis._serializeLoanImage(data.loan.image),\n\t\t\t\tthis._serializeLoanDetails(data.loan),\n\t\t\t\tthis._serializeShare(data),\n\t\t\t\tthis._serializeProgress(data.loan),\n\t\t\t\tthis._serializeLoanAmount(data.loan),\n\t\t\t\tthis._serializeTeams(data)\n\t\t\t);\n\t\t}\n\n\t\t, initialize: function(options) {\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Portfolio/LoanRowView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

        Payment history

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);if(!t.s(t.f(\"creditChanges\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);};if(t.s(t.f(\"creditChanges\",c,p,1),c,p,0,834,1009,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\t\t\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
        This loan has no repayments
        \");t.b(t.v(t.f(\"date\",c,p,0)));t.b(\":\");t.b(t.v(t.f(\"amount\",c,p,0)));t.b(\"\");if(t.s(t.f(\"loss\",c,p,1),c,p,0,938,951,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"currency loss\");});c.pop();}if(!t.s(t.f(\"loss\",c,p,1),c,p,1,0,0,\"\")){t.b(\"repaid\");};t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
        \\n\\t\\t\\t\\t{{!The content within this div is the only change from the copy and pasted lightbox atom. If you need to\\n\\t\\t\\t\\t make changes to this lightbox outside of this div, those changes need to be made to every lightbox file within the\\n\\t\\t\\t\\t Molecules/10-lightbox folder. }}\\n\\t\\t\\t\\t

        Payment history

        \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{^creditChanges}}\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{/creditChanges}}\\n\\t\\t\\t\\t\\t\\t{{#creditChanges}}\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{/creditChanges}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t
        This loan has no repayments
        {{date}}:{{amount}}{{#loss}}currency loss{{/loss}}{{^loss}}repaid{{/loss}}
        \\n\\t\\t\\t
        \\n\\t\\t
        \\n\\t
        \\n
        \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/15-dynamic-repayments-lightbox.mustache\n// module id = 713\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"matchedLoan\",c,p,1),c,p,0,175,361,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"matchRatio\",c,p,1),c,p,0,193,260,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"matchRatio\",c,p,0)));t.b(\"x matched\");t.b(\"\\n\" + i);t.b(\"\t\t\t

        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"matchRatio\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\tMatched\");t.b(\"\\n\" + i);t.b(\"\t\t\t

        \");t.b(\"\\n\" + i);};});c.pop();}if(t.s(t.f(\"dedication\",c,p,1),c,p,0,394,521,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(!t.s(t.f(\"toKiva\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);};});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"name\",c,p,0)));t.b(\" (#\");t.b(t.v(t.f(\"id\",c,p,0)));t.b(\")\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.d(\"activity.name\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"hasCountry\",c,p,1),c,p,0,683,799,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.d(\"geocode.country.name\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.f(\"partnerName\",c,p,0)));t.b(t.v(t.f(\"trusteeName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"dedication\",c,p,1),c,p,0,956,1277,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"toKiva\",c,p,1),c,p,0,998,1083,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tYou opted to donate repayments from this loan to Kiva (Thanks!)\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"toKiva\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\tDedicated to \");t.b(t.v(t.f(\"recipient\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\tRepayments for dedications are donated to Kiva\");t.b(\"\\n\" + i);};t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"statusHuman\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.f(\"shareAmount\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(t.v(t.f(\"dateLent\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"promoCreditUsedAmount\",c,p,1),c,p,0,1476,1617,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"promoCreditUsedAmount\",c,p,0)));t.b(\" \");if(!t.s(t.f(\"promoTypeType\",c,p,1),c,p,1,0,0,\"\")){t.b(\"promotional credit\");};t.b(t.v(t.f(\"promoTypeType\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"isFundraising\",c,p,1),c,p,0,1721,1744,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");t.b(t.v(t.f(\"fundedAmount\",c,p,0)));t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"isFundraising\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,0,1826,1858,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\");t.b(t.v(t.f(\"repaidAmountToYou\",c,p,0)));t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t\t\");t.b(t.v(t.f(\"repaidAmountTotal\",c,p,0)));t.b(\"\\n\" + i);};t.b(\"\t\t\t\");t.b(\"\\n\" + i);};t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"isFundraising\",c,p,1),c,p,0,2048,2061,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\traised\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"hasPaidSomething\",c,p,1),c,p,0,2103,2254,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\trepaid\");if(t.s(t.f(\"isRefunded\",c,p,1),c,p,0,2128,2137,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"/refunded\");});c.pop();}t.b(\" to \");if(t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,0,2178,2181,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"you\");});c.pop();}if(!t.s(t.f(\"repaidAmountToYou\",c,p,1),c,p,1,0,0,\"\")){t.b(\"Kiva\");};t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"sharedArrearsAmount\",c,p,1),c,p,0,2309,2391,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t(\");t.b(t.v(t.f(\"sharedArrearsAmount\",c,p,0)));t.b(\" in arrears)\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"lenderRepaymentTerm\",c,p,0)));t.b(\" mos\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"loanAmount\",c,p,0)));t.b(\"\\n\" + i);if(t.s(t.f(\"arrearsAmount\",c,p,1),c,p,0,2517,2593,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t(\");t.b(t.v(t.f(\"arrearsAmount\",c,p,0)));t.b(\" in arrears)\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);if(t.s(t.f(\"canChangeTeamAssignment\",c,p,1),c,p,0,2652,2848,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"canChangeTeamAssignment\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"teams\",c,p,1),c,p,0,2919,3171,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"teamImage\",c,p,1),c,p,0,2994,3116,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"\\n\\t\\n\\t\\t\\n\\t\\n\\t{{#matchedLoan}}\\n\\t\\t{{#matchRatio}}\\n\\t\\t\\t

        \\n\\t\\t\\t\\t{{matchRatio}}x matched\\n\\t\\t\\t

        \\n\\t\\t{{/matchRatio}}\\n\\t\\t{{^matchRatio}}\\n\\t\\t\\t

        \\n\\t\\t\\t\\tMatched\\n\\t\\t\\t

        \\n\\t\\t{{/matchRatio}}\\n\\t{{/matchedLoan}}\\n\\t{{#dedication}}\\n\\t\\t{{^toKiva}}\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t{{/toKiva}}\\n\\t{{/dedication}}\\n\\n\\n\\t{{name}} (#{{id}})\\n\\t
        \\n\\t\\t{{activity.name}}\\n\\t
        \\n\\t{{#hasCountry}}\\n\\t\\t
        \\n\\t\\t\\t{{geocode.country.name}}\\n\\t\\t
        \\n\\t{{/hasCountry}}\\n\\t\\n\\t{{#dedication}}\\n\\t\\t
        \\n\\t\\t\\t{{#toKiva}}\\n\\t\\t\\t\\tYou opted to donate repayments from this loan to Kiva (Thanks!)\\n\\t\\t\\t{{/toKiva}}\\n\\t\\t\\t{{^toKiva}}\\n\\t\\t\\t\\tDedicated to {{recipient}}\\n\\t\\t\\t\\tRepayments for dedications are donated to Kiva\\n\\t\\t\\t{{/toKiva}}\\n\\t\\t
        \\n\\t{{/dedication}}\\n\\n\\n\\t{{statusHuman}}\\n\\n\\n\\t
        \\n\\t\\t{{shareAmount}}\\n\\t
        \\n\\t
        \\n\\t\\t{{dateLent}}\\n\\t
        \\n\\t{{#promoCreditUsedAmount}}\\n\\t\\t
        \\n\\t\\t\\t{{promoCreditUsedAmount}} {{^promoTypeType}}promotional credit{{/promoTypeType}}{{promoTypeType}}\\n\\t\\t
        \\n\\t{{/promoCreditUsedAmount}}\\n\\n\\n\\t\\n\\t
        \\n\\t\\t{{#isFundraising}}\\n\\t\\t\\traised\\n\\t\\t{{/isFundraising}}\\n\\t\\t{{#hasPaidSomething}}\\n\\t\\t\\trepaid{{#isRefunded}}/refunded{{/isRefunded}} to {{#repaidAmountToYou}}you{{/repaidAmountToYou}}{{^repaidAmountToYou}}Kiva{{/repaidAmountToYou}}\\n\\t\\t{{/hasPaidSomething}}\\n\\t
        \\n\\t{{#sharedArrearsAmount}}\\n\\t\\t
        \\n\\t\\t\\t({{sharedArrearsAmount}} in arrears)\\n\\t\\t
        \\n\\t{{/sharedArrearsAmount}}\\n\\n\\n\\t{{lenderRepaymentTerm}} mos\\n\\n\\n\\t{{loanAmount}}\\n\\t{{#arrearsAmount}}\\n\\t\\t
        \\n\\t\\t\\t({{arrearsAmount}} in arrears)\\n\\t\\t
        \\n\\t{{/arrearsAmount}}\\n\\n\\n\\t{{#canChangeTeamAssignment}}\\n\\t\\t\\n\\t{{/canChangeTeamAssignment}}\\n\\t{{^canChangeTeamAssignment}}\\n\\t\\t{{#teams}}\\n\\t\\t\\t\\n\\t\\t\\t\\t{{#teamImage}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t{{/teamImage}}\\n\\t\\t\\t\\t{{teamName}}\\n\\t\\t\\t\\n\\t\\t{{/teams}}\\n\\t{{/canChangeTeamAssignment}}\\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/40-portfolio/07-my-loans-table-row.mustache\n// module id = 714\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t, kv = require('kv')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/40-portfolio/10-loan-filters')\n\n\t\t, events: {\n\t\t\t'change': '_handleChange'\n\t\t\t, 'submit': '_handleSubmit'\n\t\t}\n\n\t\t, model: new Backbone.Model()\n\n\t\t, clearFilters: function() {\n\t\t\tthis.model.unset('sSearch');\n\t\t\tthis.model.unset('sStatus');\n\t\t\tthis.model.unset('sCountries');\n\t\t\tthis.model.unset('sPartners');\n\t\t}\n\n\t\t, setCountries: function (countries) {\n\t\t\tthis.model.set('countries', countries);\n\t\t\tthis.render();\n\t\t}\n\n\t\t, setPartners: function (partners) {\n\t\t\tthis.model.set('partners', partners);\n\t\t\tthis.render();\n\t\t}\n\n\t\t, _handleChange: function (evt) {\n\t\t\tvar $input = this.$(evt.target);\n\t\t\tthis.model.set($input.attr('name'), $input.val());\n\t\t\tthis.trigger('filter-change', $input.attr('name'), $input.val());\n\t\t}\n\n\t\t, _handleSubmit: function (evt) {\n\t\t\tevt.preventDefault();\n\t\t}\n\n\t\t, _optionsWithSelectedValue: function (options, value) {\n\t\t\treturn _.map(options, function (option) {\n\t\t\t\tif (option.value === value) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else {\n\t\t\t\t\tdelete option.selected;\n\t\t\t\t}\n\t\t\t\treturn option;\n\t\t\t});\n\t\t}\n\n\t\t, _serializeCountries: function (countries, current) {\n\t\t\tvar options = [{label: 'Location', value: 'all'}];\n\n\t\t\tcountries = _.chain(countries)\n\t\t\t\t.pairs()\n\t\t\t\t.map(function(pair) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tlabel: pair[1], // country name\n\t\t\t\t\t\tvalue: pair[0] // country iso code\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.sortBy('label')\n\t\t\t\t.value();\n\n\t\t\toptions = options.concat(countries);\n\n\t\t\treturn this._optionsWithSelectedValue(options, current);\n\t\t}\n\n\t\t, _serializePartners: function (partners, current) {\n\t\t\tvar options = [{label: 'Partner', value: 'all'}];\n\n\t\t\tpartners = _.chain(partners)\n\t\t\t\t.pairs()\n\t\t\t\t.map(function(pair) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tlabel: pair[1], // partner name\n\t\t\t\t\t\tvalue: pair[0] // partner id\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.sortBy(function(partner) {\n\t\t\t\t\treturn partner.label.toLowerCase();\n\t\t\t\t})\n\t\t\t\t.value();\n\n\t\t\toptions = options.concat(partners);\n\n\t\t\treturn this._optionsWithSelectedValue(options, current);\n\t\t}\n\n\t\t, onRender: function() {\n\t\t\twindow.kvAccordion.reflow();\n\n\t\t\tvar $toggle = $('[aria-controls=\"loan-filters\"]');\n\t\t\tvar $filters = $('#loan-filters');\n\t\t\tvar is_large = false;\n\n\t\t\tif(window.Foundation.utils.is_large_up()) {\n\t\t\t\t$toggle.attr('aria-expanded', 'true');\n\t\t\t\t$filters.attr('aria-hidden', 'false');\n\t\t\t\t$filters.css('height', '');\n\t\t\t\tis_large = true;\n\t\t\t}\n\n\t\t\t$(window).off('resize.loan-filters').on('resize.loan-filters', window.Foundation.utils.throttle(function() {\n\t\t\t\tif(window.Foundation.utils.is_large_up()) {\n\t\t\t\t\tif($toggle.attr('aria-expanded') === 'false') {\n\t\t\t\t\t\t$toggle.attr('aria-expanded', 'true');\n\t\t\t\t\t\t$filters.attr('aria-hidden', 'false');\n\t\t\t\t\t\t$filters.css('height', '');\n\t\t\t\t\t\tis_large = true;\n\t\t\t\t\t}\n\t\t\t\t} else if(is_large) {\n\t\t\t\t\tis_large = false;\n\t\t\t\t\tif($toggle.attr('aria-expanded') === 'true') {\n\t\t\t\t\t\t$toggle.attr('aria-expanded', 'false');\n\t\t\t\t\t\t$filters.attr('aria-hidden', 'true');\n\t\t\t\t\t\t$filters.css('height', '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 200));\n\t\t}\n\n\t\t/**\n\t\t * prepare the data context for template rendering\n\t\t */\n\t\t, serializeData: function () {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tdata.loanStatusOptions = this._optionsWithSelectedValue(data.loanStatusOptions, data.sStatus);\n\t\t\tdata.loanCountryOptions = this._serializeCountries(data.countries, data.sCountries);\n\t\t\tdata.partnerOptions = this._serializePartners(data.partners, data.sPartners);\n\n\t\t\treturn data;\n\t\t}\n\n\t\t, initialize: function (options) {\n\t\t\tthis.model.set('loanStatusOptions', options.loan_statuses);\n\t\t\tthis.model.set('filters_expanded', options.filters_expanded);\n\t\t}\n\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Portfolio/LoanFiltersView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
        \\n\\t\\t
        \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
        \\n\\t
        \\n
        \\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/40-portfolio/10-loan-filters.mustache\n// module id = 716\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\tSorted by date posted on Kiva\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(!t.s(t.f(\"loan_count\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t0 loans\");t.b(\"\\n\" + i);};if(t.s(t.f(\"loan_count\",c,p,1),c,p,0,216,335,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"single_loan\",c,p,1),c,p,0,236,251,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t1 loan\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"single_loan\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"loan_count\",c,p,0)));t.b(\" loans\");t.b(\"\\n\" + i);};});c.pop();}t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"Filter loans\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);if(t.s(t.f(\"loan_count\",c,p,1),c,p,0,797,850,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Export\");});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"filters_set\",c,p,1),c,p,0,882,943,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Clear filters\");});c.pop();}t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner0\",c,p,\"\t\t\"));t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"loans\",c,p,1),c,p,0,1575,1687,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/40-portfolio/07-my-loans-table-row1\",c,p,\"\t\t\t\t\t\t\"));t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        Loan detailsStatusYou loanedPaid back or raisedLengthAmountTeam
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" You haven't made any loans that match this search.
        \");t.b(\"\\n\" + i);t.b(\" Clear filters\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {\"<01-molecules/03-media/01-loading-spinner0\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }},\"<01-molecules/40-portfolio/07-my-loans-table-row1\":{name:\"01-molecules/40-portfolio/07-my-loans-table-row\", partials: {}, subs: { }}}, subs: { }}, \"
        \\n\\t\\n\\t\\tSorted by date posted on Kiva\\n\\t\\n\\t\\n\\t\\t{{^loan_count}}\\n\\t\\t\\t0 loans\\n\\t\\t{{/loan_count}}\\n\\t\\t{{#loan_count}}\\n\\t\\t\\t{{#single_loan}}\\n\\t\\t\\t\\t1 loan\\n\\t\\t\\t{{/single_loan}}\\n\\t\\t\\t{{^single_loan}}\\n\\t\\t\\t\\t{{loan_count}} loans\\n\\t\\t\\t{{/single_loan}}\\n\\t\\t{{/loan_count}}\\n\\t\\n
        \\nFilter loans\\n\\n{{#loan_count}}Export{{/loan_count}}\\n{{#filters_set}}Clear filters{{/filters_set}}\\n
        \\n
        \\n
        \\n\\t
        \\n\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t
        \\n\\t
        \\n\\t
        \\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t{{#loans}}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{> 01-molecules/40-portfolio/07-my-loans-table-row }}\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t{{/loans}}\\n\\t\\t\\t\\n\\t\\t
        Loan detailsStatusYou loanedPaid back or raisedLengthAmountTeam
        \\n
        \\n You haven't made any loans that match this search.
        \\n Clear filters\\n
        \\n\\t
        \\n
        \\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/40-portfolio/09-my-loans-table.mustache\n// module id = 717\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette');\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'portfolio/loans': 'showLoansView'\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./routers/PortfolioRouter.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t, $ = require('kvjQuery')\n\t, SettingsHeaderView = require('components/Settings/SettingsHeaderView')\n\t, SettingsView = require('views/Settings/SettingsView')\n\t, SettingsAccountView = require('components/Settings/SettingsAccountView')\n\t, SettingsDataView = require('components/Settings/SettingsDataView')\n\t, SettingsCreditView = require('components/Settings/SettingsCreditView')\n\t, SettingsCreditSidebarView = require('components/Settings/SettingsCreditSidebarView');\n\n\treturn Marionette.Controller.extend({\n\n\t\tscrollToTop: function () {\n\t\t\t$('html, body').animate({scrollTop: 0});\n\t\t}\n\n\t\t, showSettingsAccountView: function () {\n\t\t\tvar settingsAccountView = new SettingsAccountView();\n\n\t\t\tthis.scrollToTop();\n\t\t\twwwApp.conf.set({\n\t\t\t\tdocTitle: 'Account Settings'\n\t\t\t\t, pageTitle: 'Account Settings'\n\t\t\t\t, breadcrumb: ['settings', 'account']\n\t\t\t});\n\n\t\t\tthis.view.mainContentRegion.show(settingsAccountView);\n\t\t\tthis.view.sidebarRegion.empty();\n\t\t}\n\n\t\t, showSettingsCreditView: function () {\n\t\t\tvar settingsCreditView = new SettingsCreditView(this.options.moduleData || {})\n\t\t\t, settingsCreditSidebarView = new SettingsCreditSidebarView(this.options.moduleData || {});\n\n\t\t\tthis.scrollToTop();\n\t\t\twwwApp.conf.set({\n\t\t\t\tdocTitle: 'Credit Settings'\n\t\t\t\t, pageTitle: 'Credit Settings'\n\t\t\t\t, breadcrumb: ['settings', 'credit']\n\t\t\t});\n\n\t\t\tthis.view.mainContentRegion.show(settingsCreditView);\n\t\t\tthis.view.sidebarRegion.show(settingsCreditSidebarView);\n\t\t}\n\n\t\t, showSettingsDataView: function () {\n\t\t\tvar settingsDataView = new SettingsDataView();\n\n\t\t\tthis.scrollToTop();\n\t\t\twwwApp.conf.set({\n\t\t\t\tdocTitle: 'Data settings'\n\t\t\t\t, pageTitle: 'Data settings'\n\t\t\t\t, breadcrumb: ['settings', 'data']\n\t\t\t});\n\n\t\t\tthis.view.mainContentRegion.show(settingsDataView);\n\t\t\tthis.view.sidebarRegion.empty();\n\t\t}\n\n\t\t, initialize: function () {\n\t\t\tthis.headerView = new SettingsHeaderView();\n\t\t\tthis.view = new SettingsView();\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./controllers/SettingsController.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t, AccountNavSubView = require('views/Account/AccountNavSubView')\n\t, SettingsTitleView = require('components/Settings/SettingsTitleView');\n\n\n\treturn Marionette.LayoutView.extend({\n\n\t\tel: '.settingsHeader'\n\n\n\t\t, regions: {\n\t\t\t'settingsTitleRegion': '.settingsTitleRegion'\n\t\t\t, 'accountNavRegion': 'Account_AccountNavSubView'\n\t\t}\n\n\n\t\t, initialize: function() {\n\t\t\tvar accountNavSubView = new AccountNavSubView({})\n\t\t\t, settingsTitleView = new SettingsTitleView({});\n\n\t\t\tthis.settingsTitleRegion.show(settingsTitleView);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SettingsHeaderView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t, PageTitleViewHgn = require('hgn!./SettingsTitleView.mustache');\n\n\n\treturn Marionette.View.extend({\n\n\t\ttemplate: PageTitleViewHgn\n\n\n\t\t, render: function (model, pageTitle) {\n\t\t\tvar html = this.template.render({pageTitle: pageTitle});\n\t\t\tthis.$el.html(html);\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\tthis.listenTo(wwwApp.conf, 'change:pageTitle', this.render);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SettingsTitleView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"pageTitle\",c,p,1),c,p,0,14,56,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"

        \");t.b(t.v(t.f(\"pageTitle\",c,p,0)));t.b(\"

        \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#pageTitle}}\\n

        {{pageTitle}}

        \\n{{/pageTitle}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/SettingsTitleView.mustache\n// module id = 722\n// module chunks = 0","define(function (require) {\n 'use strict';\n\n var _ = require('underscore')\n\t, Marionette = require('marionette')\n\t, AccountEmailView = require('components/Settings/AccountEmailView')\n\t, UpdateAccountFormView = require('components/Settings/UpdateAccountFormView')\n\t, UpdateAccountPasswordFormView = require('components/Settings/UpdateAccountPasswordFormView')\n\t, UpdateProfileFormView = require('components/Settings/UpdateProfileFormView');\n\n return Marionette.View.extend({\n\n 'className': 'accountSettingsView'\n\n\n\t /**\n\t * Make sure to close all nested views as well\n\t */\n\t , onClose: function () {\n\t\t _.each(this.views, function (view) {\n\t\t\t view.close();\n\t\t });\n\t }\n\n\n , initialize: function () {\n\t\t var self = this;\n\n\t\t this.views = [];\n this.views.push(new UpdateAccountFormView());\n this.views.push(new AccountEmailView());\n\t\t\t// If MFA is on, we allow change of password through MFA settings\n\t\t\tif (wwwApp.conf.get('view_data.is_mfa_active') === false) {\n\t\t\t\tthis.views.push(new UpdateAccountPasswordFormView());\n\t\t\t}\n this.views.push(new UpdateProfileFormView());\n\n\t\t _.each(this.views, function (view) {\n\t\t\t\tself.$el.append(view.$el);\n\t\t });\n }\n });\n});\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SettingsAccountView.js","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, gql = require('graphql-tag')\n\t\t, Backbone = require('backbone')\n\t\t, Marionette = require('marionette')\n\t\t, Raven = require('raven')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: require('hgn!./AccountEmailView.mustache')\n\n\t\t, tagName: 'form'\n\t\t, className: 'settingsForm xbLegacyNav account-email-form'\n\n\t\t, ui: {\n\t\t\tsubmit: '.submit-email-form'\n\t\t}\n\n\t\t, model: new Backbone.Model()\n\n\t\t, events: {\n\t\t\t'click @ui.submit': '_submitForm'\n\t\t}\n\n\t\t, modelEvents: {\n\t\t\t'change': 'render'\n\t\t}\n\n\t\t, gqlStateQuery: gql(`\n\t\t\t{\n\t\t\t\tmy {\n\t\t\t\t\tuserAccount {\n\t\t\t\t\t\temail\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`)\n\n\t\t, _handleApolloError(response) {\n\t\t\tif(response && (response.errors || response.graphQLErrors)) {\n\t\t\t\tvar errors = response.errors || response.graphQLErrors;\n\t\t\t\tfor(var i = 0; i < errors.length; i++) {\n\t\t\t\t\tswitch(errors[i].code) {\n\t\t\t\t\t\tcase 'api.authenticationRequired':\n\t\t\t\t\t\tcase 'api.notPrivileged':\n\t\t\t\t\t\t\treturn wwwApp.showLogin(null, 'recent');\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tRaven.captureException(new Error(errors[i].code + ': ' + errors[i].message));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(response instanceof Error) {\n\t\t\t\tRaven.captureException(response);\n\t\t\t} else {\n\t\t\t\tconsole.log(arguments);\n\t\t\t}\n\t\t}\n\n\t\t, _submitForm: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (this.model.get('submittable')) {\n\t\t\t\tthis.model.set({\n\t\t\t\t\terror: false\n\t\t\t\t\t, submittable: false\n\t\t\t\t\t, success: false\n\t\t\t\t});\n\n\t\t\t\treturn wwwApp.graphql.mutate({\n\t\t\t\t\tmutation: gql(`\n\t\t\t\t\t\tmutation {\n\t\t\t\t\t\t\tmy {\n\t\t\t\t\t\t\t\trequestEmailChange\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t`)\n\t\t\t\t}).then(() => {\n\t\t\t\t\tthis.model.set({\n\t\t\t\t\t\tsubmittable: true\n\t\t\t\t\t\t, success: true\n\t\t\t\t\t});\n\t\t\t\t}).catch(response => {\n\t\t\t\t\tthis.model.set({\n\t\t\t\t\t\terror: true\n\t\t\t\t\t\t, submittable: true\n\t\t\t\t\t});\n\t\t\t\t\tthis._handleApolloError(response);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\n\t\t\twwwApp.graphql.query({ query: this.gqlStateQuery }).then(result => {\n\t\t\t\tthis.model.set({\n\t\t\t\t\temail_address: result.data.my.userAccount.email\n\t\t\t\t\t, has_mfa: wwwApp.conf.get('has_mfa')\n\t\t\t\t\t, change_email_url: wwwApp.url('email', 'changeEmail')\n\t\t\t\t\t, error: false\n\t\t\t\t\t, submittable: true\n\t\t\t\t\t, success: false\n\t\t\t\t});\n\t\t\t\tthis.render();\n\t\t\t}).catch(this._handleApolloError);\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/AccountEmailView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        Email

        \");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"\tCurrent email address: \");t.b(t.v(t.f(\"email_address\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t
        Use this address to login and to receive messages from Kiva.\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);if(t.s(t.f(\"has_mfa\",c,p,1),c,p,0,204,405,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\tIf you would like to change the email address on your Kiva account, click the button below.\");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\tChange email address\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"has_mfa\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\tIf you would like to change the email address on your Kiva account, click the button below. Clicking this\");t.b(\"\\n\" + i);t.b(\"\t\tbutton will send a verification email to your current email address. You will need to click the link in\");t.b(\"\\n\" + i);t.b(\"\t\tthat email to confirm that you want to change your email address. If you cannot access your old email\");t.b(\"\\n\" + i);t.b(\"\t\taddress, please get in touch at contactus@kiva.org.\");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);};if(t.s(t.f(\"success\",c,p,1),c,p,0,1034,1217,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\tEmail address change successfully requested. To get started, please click the link in the email we just sent to \");t.b(t.v(t.f(\"email_address\",c,p,0)));t.b(\".\");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"error\",c,p,1),c,p,0,1240,1334,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t

        \");t.b(\"\\n\" + i);t.b(\"\t\tThere was a problem with handling your request, please try again.\");t.b(\"\\n\" + i);t.b(\"\t

        \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"

        Email

        \\n

        \\n\\tCurrent email address: {{email_address}}\\n\\t
        Use this address to login and to receive messages from Kiva.\\n

        \\n{{#has_mfa}}\\n\\t

        \\n\\t\\tIf you would like to change the email address on your Kiva account, click the button below.\\n\\t

        \\n\\t\\n\\t\\tChange email address\\n\\t\\n{{/has_mfa}}\\n{{^has_mfa}}\\n\\t

        \\n\\t\\tIf you would like to change the email address on your Kiva account, click the button below. Clicking this\\n\\t\\tbutton will send a verification email to your current email address. You will need to click the link in\\n\\t\\tthat email to confirm that you want to change your email address. If you cannot access your old email\\n\\t\\taddress, please get in touch at contactus@kiva.org.\\n\\t

        \\n\\t\\n{{/has_mfa}}\\n{{#success}}\\n\\t

        \\n\\t\\tEmail address change successfully requested. To get started, please click the link in the email we just sent to {{email_address}}.\\n\\t

        \\n{{/success}}\\n{{#error}}\\n\\t

        \\n\\t\\tThere was a problem with handling your request, please try again.\\n\\t

        \\n{{/error}}\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/AccountEmailView.mustache\n// module id = 725\n// module chunks = 0","define(function (require) {\n 'use strict';\n\n var $ = require('kvjQuery')\n\t, _ = require('underscore')\n\t, FormView = require('marionette.formView')\n\t, UpdateAccountFormView = require('hgn!./UpdateAccountFormView.mustache');\n\n\n\tfunction handleActionSync() {\n\t\twwwApp.tipMsg('Successfully updated your personal info.');\n\t}\n\n\n\tfunction handleActionError(model, jqXhr) {\n\t\twwwApp.showApiError(jqXhr);\n\t}\n\n\n return FormView.extend({\n template: UpdateAccountFormView\n\t , className: 'settingsForm'\n\n , initialize: function () {\n var self = this;\n\n\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\n\t\t wwwApp.siren.resolve('my/account')\n .done(function (accountModel) {\n var updateAccountAction = accountModel.getActionByName('updateAccount');\n\n // Get data for the country drop-down then display all our data in the form\n $.getJSON(accountModel.links()[0].href)\n .done(function (countries) {\n\n\t\t self.addStickit(accountModel, {\n\t\t\t '[name=\"contactRecord.country.isoCode\"]': {\n\t\t\t\t observe: 'contactRecord.country.isoCode'\n\t\t\t\t , selectOptions: {\n\t\t\t\t\t collection: function () {\n\t\t\t\t\t\t return _.map(countries, function (country) {\n\t\t\t\t\t\t\t return {value: country.iso_code, label: country.name};\n\t\t\t\t\t\t });\n\t\t\t\t\t }\n\t\t\t\t\t , defaultOption: {\n\t\t\t\t\t\t value: null\n\t\t\t\t\t\t , label: '-- --'\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t }\n });\n\n\t\t self.stickAll();\n })\n .fail(function () {\n wwwApp.tipMsg('Failed loading countries', 'warning');\n });\n\n self.initializeForm({action: updateAccountAction});\n\n\t\t self.listenTo(accountModel, 'sync:updateAccount', handleActionSync);\n\t\t self.listenTo(accountModel, 'error:updateAccount', handleActionError);\n\n\t\t // We could only bind to stickit once.\n\t\t // Therefore, we need to wait for the country data to be retrieved and manually call stickit. (.stickAll())\n self.render({stickit: false});\n })\n .fail(function () {\n\t\t\t\t\t\twwwApp.tipMsg('An error occurred. Please refresh the page and try again.', 'warning');\n });\n }\n });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/UpdateAccountFormView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        Personal Info

        \");t.b(\"\\n\" + i);t.b(\" * denotes a required field\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n

        Personal Info

        \\n * denotes a required field\\n
        \\n\\n
        \\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n
        \\n\\n
        \\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n
        \\n\\n
        \\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n
        \\n\\n\\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/UpdateAccountFormView.mustache\n// module id = 727\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar viewHelpers = require('viewHelpers')\n\t, UpdateAccountPasswordFormView = require('hgn!./UpdateAccountPasswordFormView.mustache')\n\t, FormView = require('marionette.formView')\n\t, Auth0 = require('auth0-js');\n\n\treturn FormView.extend({\n\n\t\ttemplate: UpdateAccountPasswordFormView\n\t\t, className: 'settingsForm'\n\n\n\t\t, events: {\n\t\t\t'click [type=\"submit\"]': 'handleSubmitButtonClick'\n\t\t}\n\n\n\t\t, handleSubmitButtonClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar username = this.model.get('username');\n\n\t\t\tvar webAuth = new Auth0.WebAuth({\n\t\t\t\tdomain: wwwApp.conf.get('auth0_domain'),\n\t\t\t\tclientID: wwwApp.conf.get('auth0_www_client_id')\n\t\t\t});\n\n\t\t\twebAuth.changePassword({\n\t\t\t\tconnection: 'Username-Password-Authentication',\n\t\t\t\temail: username\n\t\t\t}, function (err, resp) {\n\t\t\t\tif (err) {\n\t\t\t\t\tconsole.log(err.message);\n\t\t\t\t} else {\n\t\t\t\t\t// TODO: remove email from this tip message and set in-context\n\t\t\t\t\t// TODO: cont... an class should be included on the element surrounding the email\n\t\t\t\t\twwwApp.tipMsg('In order to change your password, please click the link in the email we sent to ' + username);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t, initialize: function () {\n\t\t\tvar self = this;\n\n\t\t\twwwApp.siren.resolve('my/account').done(function (accountModel) {\n\t\t\t\tself.initializeForm({action: accountModel.getActionByName('updateAccountPassword'), fields: {}, validate: true});\n\t\t\t\tself.render();\n\t\t\t}).fail(function () {\n\t\t\t\twwwApp.tipMsg('An error occurred. Please refresh the page and try again.', 'warning');\n\t\t\t});\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/UpdateAccountPasswordFormView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        Password

        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"Clicking this button will send you a verification email. As a final step in this process, you'll need to click the link in that email to successfully update your account password.\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"

        Password

        \\n\\n
        \\n\\n
        \\n\\n
        \\n\\n
        \\nClicking this button will send you a verification email. As a final step in this process, you'll need to click the link in that email to successfully update your account password.\\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/UpdateAccountPasswordFormView.mustache\n// module id = 729\n// module chunks = 0","/**\n * auth0-js v9.12.1\n * Author: Auth0\n * Date: 2019-12-17\n * License: MIT\n */\n\nvar commonjsGlobal=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function createCommonjsModule(fn,module){return fn(module={exports:{}},module.exports),module.exports}var urlJoin=createCommonjsModule(function(module){var context,definition;context=commonjsGlobal,definition=function(){function normalize(strArray){var resultArray=[];if(0===strArray.length)return\"\";if(\"string\"!=typeof strArray[0])throw new TypeError(\"Url must be a string. Received \"+strArray[0]);if(strArray[0].match(/^[^\\/:]+:\\/*$/)&&strArray.length>1){var first=strArray.shift();strArray[0]=first+strArray[0]}strArray[0].match(/^file:\\/\\/\\//)?strArray[0]=strArray[0].replace(/^([^\\/:]+):\\/*/,\"$1:///\"):strArray[0]=strArray[0].replace(/^([^\\/:]+):\\/*/,\"$1://\");for(var i=0;i0&&(component=component.replace(/^[\\/]+/,\"\")),component=i0?\"?\":\"\")+parts.join(\"&\")}return function(){return normalize(\"object\"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},module.exports?module.exports=definition():context.urljoin=definition()}),has=Object.prototype.hasOwnProperty,isArray=Array.isArray,hexTable=function(){for(var array=[],i=0;i<256;++i)array.push(\"%\"+((i<16?\"0\":\"\")+i.toString(16)).toUpperCase());return array}(),arrayToObject=function(source,options){for(var obj=options&&options.plainObjects?Object.create(null):{},i=0;i1;){var item=queue.pop(),obj=item.obj[item.prop];if(isArray(obj)){for(var compacted=[],j=0;j=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122?out+=string.charAt(i):c<128?out+=hexTable[c]:c<2048?out+=hexTable[192|c>>6]+hexTable[128|63&c]:c<55296||c>=57344?out+=hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|63&c]:(i+=1,c=65536+((1023&c)<<10|1023&string.charCodeAt(i)),out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|63&c])}return out},isBuffer:function(obj){return!(!obj||\"object\"!=typeof obj||!(obj.constructor&&obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)))},isRegExp:function(obj){return\"[object RegExp]\"===Object.prototype.toString.call(obj)},merge:function merge(target,source,options){if(!source)return target;if(\"object\"!=typeof source){if(isArray(target))target.push(source);else{if(!target||\"object\"!=typeof target)return[target,source];(options&&(options.plainObjects||options.allowPrototypes)||!has.call(Object.prototype,source))&&(target[source]=!0)}return target}if(!target||\"object\"!=typeof target)return[target].concat(source);var mergeTarget=target;return isArray(target)&&!isArray(source)&&(mergeTarget=arrayToObject(target,options)),isArray(target)&&isArray(source)?(source.forEach(function(item,i){if(has.call(target,i)){var targetItem=target[i];targetItem&&\"object\"==typeof targetItem&&item&&\"object\"==typeof item?target[i]=merge(targetItem,item,options):target.push(item)}else target[i]=item}),target):Object.keys(source).reduce(function(acc,key){var value=source[key];return has.call(acc,key)?acc[key]=merge(acc[key],value,options):acc[key]=value,acc},mergeTarget)}},replace=String.prototype.replace,percentTwenties=/%20/g,Format={RFC1738:\"RFC1738\",RFC3986:\"RFC3986\"},formats=utils.assign({default:Format.RFC3986,formatters:{RFC1738:function(value){return replace.call(value,percentTwenties,\"+\")},RFC3986:function(value){return String(value)}}},Format),has$1=Object.prototype.hasOwnProperty,arrayPrefixGenerators={brackets:function(prefix){return prefix+\"[]\"},comma:\"comma\",indices:function(prefix,key){return prefix+\"[\"+key+\"]\"},repeat:function(prefix){return prefix}},isArray$1=Array.isArray,push=Array.prototype.push,pushToArray=function(arr,valueOrArray){push.apply(arr,isArray$1(valueOrArray)?valueOrArray:[valueOrArray])},toISO=Date.prototype.toISOString,defaultFormat=formats.default,defaults={addQueryPrefix:!1,allowDots:!1,charset:\"utf-8\",charsetSentinel:!1,delimiter:\"&\",encode:!0,encoder:utils.encode,encodeValuesOnly:!1,format:defaultFormat,formatter:formats.formatters[defaultFormat],indices:!1,serializeDate:function(date){return toISO.call(date)},skipNulls:!1,strictNullHandling:!1},stringify=function stringify(object,prefix,generateArrayPrefix,strictNullHandling,skipNulls,encoder,filter,sort,allowDots,serializeDate,formatter,encodeValuesOnly,charset){var obj=object;if(\"function\"==typeof filter?obj=filter(prefix,obj):obj instanceof Date?obj=serializeDate(obj):\"comma\"===generateArrayPrefix&&isArray$1(obj)&&(obj=obj.join(\",\")),null===obj){if(strictNullHandling)return encoder&&!encodeValuesOnly?encoder(prefix,defaults.encoder,charset):prefix;obj=\"\"}if(function(v){return\"string\"==typeof v||\"number\"==typeof v||\"boolean\"==typeof v||\"symbol\"==typeof v||\"bigint\"==typeof v}(obj)||utils.isBuffer(obj))return encoder?[formatter(encodeValuesOnly?prefix:encoder(prefix,defaults.encoder,charset))+\"=\"+formatter(encoder(obj,defaults.encoder,charset))]:[formatter(prefix)+\"=\"+formatter(String(obj))];var objKeys,values=[];if(void 0===obj)return values;if(isArray$1(filter))objKeys=filter;else{var keys=Object.keys(obj);objKeys=sort?keys.sort(sort):keys}for(var i=0;i0&&/(\\[[^[\\]]*])/.exec(key),parent=segment?key.slice(0,segment.index):key,keys=[];if(parent){if(!options.plainObjects&&has$2.call(Object.prototype,parent)&&!options.allowPrototypes)return;keys.push(parent)}for(var i=0;options.depth>0&&null!==(segment=child.exec(key))&&i=0;--i){var obj,root=chain[i];if(\"[]\"===root&&options.parseArrays)obj=[].concat(leaf);else{obj=options.plainObjects?Object.create(null):{};var cleanRoot=\"[\"===root.charAt(0)&&\"]\"===root.charAt(root.length-1)?root.slice(1,-1):root,index=parseInt(cleanRoot,10);options.parseArrays||\"\"!==cleanRoot?!isNaN(index)&&root!==cleanRoot&&String(index)===cleanRoot&&index>=0&&options.parseArrays&&index<=options.arrayLimit?(obj=[])[index]=leaf:obj[cleanRoot]=leaf:obj={0:leaf}}leaf=obj}return leaf}(keys,val,options)}},lib_parse=function(str,opts){var options=function(opts){if(!opts)return defaults$1;if(null!==opts.decoder&&void 0!==opts.decoder&&\"function\"!=typeof opts.decoder)throw new TypeError(\"Decoder has to be a function.\");if(void 0!==opts.charset&&\"utf-8\"!==opts.charset&&\"iso-8859-1\"!==opts.charset)throw new Error(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var charset=void 0===opts.charset?defaults$1.charset:opts.charset;return{allowDots:void 0===opts.allowDots?defaults$1.allowDots:!!opts.allowDots,allowPrototypes:\"boolean\"==typeof opts.allowPrototypes?opts.allowPrototypes:defaults$1.allowPrototypes,arrayLimit:\"number\"==typeof opts.arrayLimit?opts.arrayLimit:defaults$1.arrayLimit,charset:charset,charsetSentinel:\"boolean\"==typeof opts.charsetSentinel?opts.charsetSentinel:defaults$1.charsetSentinel,comma:\"boolean\"==typeof opts.comma?opts.comma:defaults$1.comma,decoder:\"function\"==typeof opts.decoder?opts.decoder:defaults$1.decoder,delimiter:\"string\"==typeof opts.delimiter||utils.isRegExp(opts.delimiter)?opts.delimiter:defaults$1.delimiter,depth:\"number\"==typeof opts.depth||!1===opts.depth?+opts.depth:defaults$1.depth,ignoreQueryPrefix:!0===opts.ignoreQueryPrefix,interpretNumericEntities:\"boolean\"==typeof opts.interpretNumericEntities?opts.interpretNumericEntities:defaults$1.interpretNumericEntities,parameterLimit:\"number\"==typeof opts.parameterLimit?opts.parameterLimit:defaults$1.parameterLimit,parseArrays:!1!==opts.parseArrays,plainObjects:\"boolean\"==typeof opts.plainObjects?opts.plainObjects:defaults$1.plainObjects,strictNullHandling:\"boolean\"==typeof opts.strictNullHandling?opts.strictNullHandling:defaults$1.strictNullHandling}}(opts);if(\"\"===str||null==str)return options.plainObjects?Object.create(null):{};for(var tempObj=\"string\"==typeof str?function(str,options){var i,obj={},cleanStr=options.ignoreQueryPrefix?str.replace(/^\\?/,\"\"):str,limit=options.parameterLimit===1/0?void 0:options.parameterLimit,parts=cleanStr.split(options.delimiter,limit),skipIndex=-1,charset=options.charset;if(options.charsetSentinel)for(i=0;i-1&&(val=val.split(\",\")),has$2.call(obj,key)?obj[key]=utils.combine(obj[key],val):obj[key]=val}return obj}(str,options):str,obj=options.plainObjects?Object.create(null):{},keys=Object.keys(tempObj),i=0;i0?prefix+joined:\"\"},componentEmitter=createCommonjsModule(function(module){function Emitter(obj){if(obj)return function(obj){for(var key in Emitter.prototype)obj[key]=Emitter.prototype[key];return obj}(obj)}module.exports=Emitter,Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+event]=this._callbacks[\"$\"+event]||[]).push(fn),this},Emitter.prototype.once=function(event,fn){function on(){this.off(event,on),fn.apply(this,arguments)}return on.fn=fn,this.on(event,on),this},Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var cb,callbacks=this._callbacks[\"$\"+event];if(!callbacks)return this;if(1==arguments.length)return delete this._callbacks[\"$\"+event],this;for(var i=0;i=this._maxRetries)return!1;if(this._retryCallback)try{var override=this._retryCallback(err,res);if(!0===override)return!0;if(!1===override)return!1}catch(e){console.error(e)}if(res&&res.status&&res.status>=500&&501!=res.status)return!0;if(err){if(err.code&&~ERROR_CODES.indexOf(err.code))return!0;if(err.timeout&&\"ECONNABORTED\"==err.code)return!0;if(err.crossDomain)return!0}return!1},RequestBase.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},RequestBase.prototype.then=function(resolve,reject){if(!this._fullfilledPromise){var self=this;this._endCalled&&console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\"),this._fullfilledPromise=new Promise(function(innerResolve,innerReject){self.end(function(err,res){err?innerReject(err):innerResolve(res)})})}return this._fullfilledPromise.then(resolve,reject)},RequestBase.prototype.catch=function(cb){return this.then(void 0,cb)},RequestBase.prototype.use=function(fn){return fn(this),this},RequestBase.prototype.ok=function(cb){if(\"function\"!=typeof cb)throw Error(\"Callback required\");return this._okCallback=cb,this},RequestBase.prototype._isResponseOK=function(res){return!!res&&(this._okCallback?this._okCallback(res):res.status>=200&&res.status<300)},RequestBase.prototype.get=function(field){return this._header[field.toLowerCase()]},RequestBase.prototype.getHeader=RequestBase.prototype.get,RequestBase.prototype.set=function(field,val){if(isObject_1(field)){for(var key in field)this.set(key,field[key]);return this}return this._header[field.toLowerCase()]=val,this.header[field]=val,this},RequestBase.prototype.unset=function(field){return delete this._header[field.toLowerCase()],delete this.header[field],this},RequestBase.prototype.field=function(name,val){if(null==name)throw new Error(\".field(name, val) name can not be empty\");if(this._data&&console.error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\"),isObject_1(name)){for(var key in name)this.field(key,name[key]);return this}if(Array.isArray(val)){for(var i in val)this.field(name,val[i]);return this}if(null==val)throw new Error(\".field(name, val) val can not be empty\");return\"boolean\"==typeof val&&(val=\"\"+val),this._getFormData().append(name,val),this},RequestBase.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit(\"abort\"),this)},RequestBase.prototype._auth=function(user,pass,options,base64Encoder){switch(options.type){case\"basic\":this.set(\"Authorization\",\"Basic \"+base64Encoder(user+\":\"+pass));break;case\"auto\":this.username=user,this.password=pass;break;case\"bearer\":this.set(\"Authorization\",\"Bearer \"+user)}return this},RequestBase.prototype.withCredentials=function(on){return null==on&&(on=!0),this._withCredentials=on,this},RequestBase.prototype.redirects=function(n){return this._maxRedirects=n,this},RequestBase.prototype.maxResponseSize=function(n){if(\"number\"!=typeof n)throw TypeError(\"Invalid argument\");return this._maxResponseSize=n,this},RequestBase.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},RequestBase.prototype.send=function(data){var isObj=isObject_1(data),type=this._header[\"content-type\"];if(this._formData&&console.error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\"),isObj&&!this._data)Array.isArray(data)?this._data=[]:this._isHost(data)||(this._data={});else if(data&&this._data&&this._isHost(this._data))throw Error(\"Can't merge these send calls\");if(isObj&&isObject_1(this._data))for(var key in data)this._data[key]=data[key];else\"string\"==typeof data?(type||this.type(\"form\"),type=this._header[\"content-type\"],this._data=\"application/x-www-form-urlencoded\"==type?this._data?this._data+\"&\"+data:data:(this._data||\"\")+data):this._data=data;return!isObj||this._isHost(data)?this:(type||this.type(\"json\"),this)},RequestBase.prototype.sortQuery=function(sort){return this._sort=void 0===sort||sort,this},RequestBase.prototype._finalizeQueryString=function(){var query=this._query.join(\"&\");if(query&&(this.url+=(this.url.indexOf(\"?\")>=0?\"&\":\"?\")+query),this._query.length=0,this._sort){var index=this.url.indexOf(\"?\");if(index>=0){var queryArr=this.url.substring(index+1).split(\"&\");\"function\"==typeof this._sort?queryArr.sort(this._sort):queryArr.sort(),this.url=this.url.substring(0,index)+\"?\"+queryArr.join(\"&\")}}},RequestBase.prototype._appendQueryString=function(){console.trace(\"Unsupported\")},RequestBase.prototype._timeoutError=function(reason,timeout,errno){if(!this._aborted){var err=new Error(reason+timeout+\"ms exceeded\");err.timeout=timeout,err.code=\"ECONNABORTED\",err.errno=errno,this.timedout=!0,this.abort(),this.callback(err)}},RequestBase.prototype._setTimeouts=function(){var self=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){self._timeoutError(\"Timeout of \",self._timeout,\"ETIME\")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){self._timeoutError(\"Response timeout of \",self._responseTimeout,\"ETIMEDOUT\")},this._responseTimeout))};var utils$1_type=function(str){return str.split(/ *; */).shift()},utils$1_params=function(str){return str.split(/ *; */).reduce(function(obj,str){var parts=str.split(/ *= */),key=parts.shift(),val=parts.shift();return key&&val&&(obj[key]=val),obj},{})},utils$1_parseLinks=function(str){return str.split(/ *, */).reduce(function(obj,str){var parts=str.split(/ *; */),url=parts[0].slice(1,-1);return obj[parts[1].split(/ *= */)[1].slice(1,-1)]=url,obj},{})},responseBase=ResponseBase;function ResponseBase(obj){if(obj)return function(obj){for(var key in ResponseBase.prototype)obj[key]=ResponseBase.prototype[key];return obj}(obj)}function Agent(){this._defaults=[]}ResponseBase.prototype.get=function(field){return this.header[field.toLowerCase()]},ResponseBase.prototype._setHeaderProperties=function(header){var ct=header[\"content-type\"]||\"\";this.type=utils$1_type(ct);var params=utils$1_params(ct);for(var key in params)this[key]=params[key];this.links={};try{header.link&&(this.links=utils$1_parseLinks(header.link))}catch(err){}},ResponseBase.prototype._setStatusProperties=function(status){var type=status/100|0;this.status=this.statusCode=status,this.statusType=type,this.info=1==type,this.ok=2==type,this.redirect=3==type,this.clientError=4==type,this.serverError=5==type,this.error=(4==type||5==type)&&this.toError(),this.created=201==status,this.accepted=202==status,this.noContent=204==status,this.badRequest=400==status,this.unauthorized=401==status,this.notAcceptable=406==status,this.forbidden=403==status,this.notFound=404==status,this.unprocessableEntity=422==status},[\"use\",\"on\",\"once\",\"set\",\"query\",\"type\",\"accept\",\"auth\",\"withCredentials\",\"sortQuery\",\"retry\",\"ok\",\"redirects\",\"timeout\",\"buffer\",\"serialize\",\"parse\",\"ca\",\"key\",\"pfx\",\"cert\"].forEach(function(fn){Agent.prototype[fn]=function(){return this._defaults.push({fn:fn,arguments:arguments}),this}}),Agent.prototype._setDefaults=function(req){this._defaults.forEach(function(def){req[def.fn].apply(req,def.arguments)})};for(var agentBase=Agent,client=createCommonjsModule(function(module,exports){var root;function noop(){}\"undefined\"!=typeof window?root=window:\"undefined\"!=typeof self?root=self:(console.warn(\"Using browser-only version of superagent in non-browser environment\"),root=commonjsGlobal);var request=exports=module.exports=function(method,url){return\"function\"==typeof url?new exports.Request(\"GET\",method).end(url):1==arguments.length?new exports.Request(\"GET\",method):new exports.Request(method,url)};exports.Request=Request,request.getXHR=function(){if(!(!root.XMLHttpRequest||root.location&&\"file:\"==root.location.protocol&&root.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject(\"Microsoft.XMLHTTP\")}catch(e){}try{return new ActiveXObject(\"Msxml2.XMLHTTP.6.0\")}catch(e){}try{return new ActiveXObject(\"Msxml2.XMLHTTP.3.0\")}catch(e){}try{return new ActiveXObject(\"Msxml2.XMLHTTP\")}catch(e){}throw Error(\"Browser-only version of superagent could not find XHR\")};var trim=\"\".trim?function(s){return s.trim()}:function(s){return s.replace(/(^\\s*|\\s*$)/g,\"\")};function serialize(obj){if(!isObject_1(obj))return obj;var pairs=[];for(var key in obj)pushEncodedKeyValuePair(pairs,key,obj[key]);return pairs.join(\"&\")}function pushEncodedKeyValuePair(pairs,key,val){if(null!=val)if(Array.isArray(val))val.forEach(function(v){pushEncodedKeyValuePair(pairs,key,v)});else if(isObject_1(val))for(var subkey in val)pushEncodedKeyValuePair(pairs,key+\"[\"+subkey+\"]\",val[subkey]);else pairs.push(encodeURIComponent(key)+\"=\"+encodeURIComponent(val));else null===val&&pairs.push(encodeURIComponent(key))}function parseString(str){for(var pair,pos,obj={},pairs=str.split(\"&\"),i=0,len=pairs.length;i=2&&self._responseTimeoutTimer&&clearTimeout(self._responseTimeoutTimer),4==readyState){var status;try{status=xhr.status}catch(e){status=0}if(!status){if(self.timedout||self._aborted)return;return self.crossDomainError()}self.emit(\"end\")}};var handleProgress=function(direction,e){e.total>0&&(e.percent=e.loaded/e.total*100),e.direction=direction,self.emit(\"progress\",e)};if(this.hasListeners(\"progress\"))try{xhr.onprogress=handleProgress.bind(null,\"download\"),xhr.upload&&(xhr.upload.onprogress=handleProgress.bind(null,\"upload\"))}catch(e){}try{this.username&&this.password?xhr.open(this.method,this.url,!0,this.username,this.password):xhr.open(this.method,this.url,!0)}catch(err){return this.callback(err)}if(this._withCredentials&&(xhr.withCredentials=!0),!this._formData&&\"GET\"!=this.method&&\"HEAD\"!=this.method&&\"string\"!=typeof data&&!this._isHost(data)){var contentType=this._header[\"content-type\"],serialize=this._serializer||request.serialize[contentType?contentType.split(\";\")[0]:\"\"];!serialize&&isJSON(contentType)&&(serialize=request.serialize[\"application/json\"]),serialize&&(data=serialize(data))}for(var field in this.header)null!=this.header[field]&&this.header.hasOwnProperty(field)&&xhr.setRequestHeader(field,this.header[field]);return this._responseType&&(xhr.responseType=this._responseType),this.emit(\"request\",this),xhr.send(void 0!==data?data:null),this},request.agent=function(){return new agentBase},[\"GET\",\"POST\",\"OPTIONS\",\"PATCH\",\"PUT\",\"DELETE\"].forEach(function(method){agentBase.prototype[method.toLowerCase()]=function(url,fn){var req=new request.Request(method,url);return this._setDefaults(req),fn&&req.end(fn),req}}),agentBase.prototype.del=agentBase.prototype.delete,request.get=function(url,data,fn){var req=request(\"GET\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.query(data),fn&&req.end(fn),req},request.head=function(url,data,fn){var req=request(\"HEAD\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.query(data),fn&&req.end(fn),req},request.options=function(url,data,fn){var req=request(\"OPTIONS\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.del=del,request.delete=del,request.patch=function(url,data,fn){var req=request(\"PATCH\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.post=function(url,data,fn){var req=request(\"POST\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req},request.put=function(url,data,fn){var req=request(\"PUT\",url);return\"function\"==typeof data&&(fn=data,data=null),data&&req.send(data),fn&&req.end(fn),req}}),byteLength_1=(client.Request,function(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}),toByteArray_1=function(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(function(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}(0,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;i>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp);1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp);return arr},fromByteArray_1=function(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],i=0,len2=len-extraBytes;ilen2?len2:i+16383));1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+\"==\")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+\"=\"));return parts.join(\"\")},lookup=[],revLookup=[],Arr=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,code=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",i=0,len=code.length;i0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var validLen=b64.indexOf(\"=\");return-1===validLen&&(validLen=len),[validLen,validLen===len?0:4-validLen%4]}function encodeChunk(uint8,start,end){for(var tmp,num,output=[],i=start;i>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]);return output.join(\"\")}revLookup[\"-\".charCodeAt(0)]=62,revLookup[\"_\".charCodeAt(0)]=63;var base64Js={byteLength:byteLength_1,toByteArray:toByteArray_1,fromByteArray:fromByteArray_1};var base64Url={encode:function(str){return base64Js.fromByteArray(function(str){for(var arr=new Array(str.length),a=0;a=65&&code<=90||!wasPrevNumber&&code>=48&&code<=57?(newKey+=\"_\",newKey+=str[index].toLowerCase()):newKey+=str[index].toLowerCase(),wasPrevNumber=code>=48&&code<=57,wasPrevUppercase=code>=65&&code<=90,index++;return newKey}(key):key]=toSnakeCase(object[key]),p},{}))},toCamelCase:function toCamelCase(object,exceptions,options){return\"object\"!=typeof object||assert.isArray(object)||null===object?object:(exceptions=exceptions||[],options=options||{},Object.keys(object).reduce(function(p,key){var parts,newKey=-1===exceptions.indexOf(key)?(parts=key.split(\"_\")).reduce(function(p,c){return p+c.charAt(0).toUpperCase()+c.slice(1)},parts.shift()):key;return p[newKey]=toCamelCase(object[newKey]||object[key],[],options),options.keepOriginal&&(p[key]=toCamelCase(object[key],[],options)),p},{}))},blacklist:function(object,blacklistedKeys){return Object.keys(object).reduce(function(p,key){return-1===blacklistedKeys.indexOf(key)&&(p[key]=object[key]),p},{})},merge:function(object,keys){return{base:keys?pick(object,keys):object,with:function(object2,keys2){return object2=keys2?pick(object2,keys2):object2,extend(this.base,object2)}}},pick:pick,getKeysNotIn:function(obj,allowedKeys){var notAllowed=[];for(var key in obj)-1===allowedKeys.indexOf(key)&¬Allowed.push(key);return notAllowed},extend:extend,getOriginFromUrl:function(url){if(url){var parsed=getLocationFromUrl(url),origin=parsed.protocol+\"//\"+parsed.hostname;return parsed.port&&(origin+=\":\"+parsed.port),origin}},getLocationFromUrl:getLocationFromUrl,trimUserDetails:function(options){return function(options,keys){return keys.reduce(trim,options)}(options,[\"username\",\"email\",\"phoneNumber\"])}};function RequestWrapper(req){this.request=req,this.method=req.method,this.url=req.url,this.body=req._data,this.headers=req._header}function RequestObj(req){this.request=req}function RequestBuilder(options){this._sendTelemetry=!1!==options._sendTelemetry||options._sendTelemetry,this._telemetryInfo=options._telemetryInfo||null,this._timesToRetryFailedRequests=options._timesToRetryFailedRequests,this.headers=options.headers||{},this._universalLoginPage=options.universalLoginPage}function getWindow(){return window}RequestWrapper.prototype.abort=function(){this.request.abort()},RequestWrapper.prototype.getMethod=function(){return this.method},RequestWrapper.prototype.getBody=function(){return this.body},RequestWrapper.prototype.getUrl=function(){return this.url},RequestWrapper.prototype.getHeaders=function(){return this.headers},RequestObj.prototype.set=function(key,value){return this.request=this.request.set(key,value),this},RequestObj.prototype.send=function(body){return this.request=this.request.send(objectHelper.trimUserDetails(body)),this},RequestObj.prototype.withCredentials=function(){return this.request=this.request.withCredentials(),this},RequestObj.prototype.end=function(cb){return this.request=this.request.end(cb),new RequestWrapper(this.request)},RequestBuilder.prototype.setCommonConfiguration=function(ongoingRequest,options){if(options=options||{},this._timesToRetryFailedRequests>0&&(ongoingRequest=ongoingRequest.retry(this._timesToRetryFailedRequests)),options.noHeaders)return ongoingRequest;var headers=this.headers;ongoingRequest=ongoingRequest.set(\"Content-Type\",\"application/json\");for(var keys=Object.keys(this.headers),a=0;a0&&warn.warning(\"Following parameters are not allowed on the `/authorize` endpoint: [\"+notAllowed.join(\",\")+\"]\"),params}},t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=e(function(t,e){var r;t.exports=r=r||function(t,e){var r=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),i={},n=i.lib={},o=n.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty(\"init\")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]|=(r[o>>>2]>>>24-o%4*8&255)<<24-(i+o)%4*8;else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r,i=[],n=function(e){e=e;var r=987654321,i=4294967295;return function(){var n=((r=36969*(65535&r)+(r>>16)&i)<<16)+(e=18e3*(65535&e)+(e>>16)&i)&i;return n/=4294967296,(n+=.5)*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(r,e/2)}},u=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255));return i.join(\"\")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(r,e)}},f=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},c=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,h=n/(4*o),a=(h=e?t.ceil(h):t.max((0|h)-this._minBufferSize,0))*o,u=t.min(4*a,n);if(a){for(var f=0;f>>7)^(d<<14|d>>>18)^d>>>3)+u[l-7]+((m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10)+u[l-16]}var v=i&n^i&o^n&o,y=p+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&f^~h&c)+a[l]+u[l];p=c,c=f,f=h,h=s+y|0,s=o,o=n,n=i,i=y+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+v)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+h|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+p|0},_doFinalize:function(){var e=this._data,r=e.words,i=8*this._nDataBytes,n=8*e.sigBytes;return r[n>>>5]|=128<<24-n%32,r[14+(n+64>>>9<<4)]=t.floor(i/4294967296),r[15+(n+64>>>9<<4)]=i,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(f),e.HmacSHA256=o._createHmacHelper(f)}(Math),i.SHA256)}),n=e(function(t,e){var i,n;t.exports=(n=(i=r).lib.WordArray,i.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,h=0;h<4&&o+.75*h>>6*(3-h)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join(\"\")},parse:function(t){var e=t.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var o=0;o>>6-s%4*2;i[o>>>2]|=(h|a)<<24-o%4*8,o++}return n.create(i,o)}(t,e,i)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"},i.enc.Base64)}),o=e(function(t,e){t.exports=r.enc.Hex}),s=e(function(e,r){(function(){var t;function r(t,e,r){null!=t&&(\"number\"==typeof t?this.fromNumber(t,e,r):this.fromString(t,null==e&&\"string\"!=typeof t?256:e))}function i(){return new r(null)}var n=\"undefined\"!=typeof navigator;n&&\"Microsoft Internet Explorer\"==navigator.appName?(r.prototype.am=function(t,e,r,i,n,o){for(var s=32767&e,h=e>>15;--o>=0;){var a=32767&this[t],u=this[t++]>>15,f=h*a+u*s;n=((a=s*a+((32767&f)<<15)+r[i]+(1073741823&n))>>>30)+(f>>>15)+h*u+(n>>>30),r[i++]=1073741823&a}return n},t=30):n&&\"Netscape\"!=navigator.appName?(r.prototype.am=function(t,e,r,i,n,o){for(;--o>=0;){var s=e*this[t++]+r[i]+n;n=Math.floor(s/67108864),r[i++]=67108863&s}return n},t=26):(r.prototype.am=function(t,e,r,i,n,o){for(var s=16383&e,h=e>>14;--o>=0;){var a=16383&this[t],u=this[t++]>>14,f=h*a+u*s;n=((a=s*a+((16383&f)<<14)+r[i]+n)>>28)+(f>>14)+h*u,r[i++]=268435455&a}return n},t=28),r.prototype.DB=t,r.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function l(t){this.m=t}function d(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function T(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function b(){}function _(t){return t}function A(t){this.r2=i(),this.q3=i(),r.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}l.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},l.prototype.revert=function(t){return t},l.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},l.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},l.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},d.prototype.convert=function(t){var e=i();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(r.ZERO)>0&&this.m.subTo(e,e),e},d.prototype.revert=function(t){var e=i();return t.copyTo(e),this.reduce(e),e},d.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,i,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},d.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},d.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},r.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},r.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},r.prototype.fromString=function(t,e){var i;if(16==e)i=4;else if(8==e)i=3;else if(256==e)i=8;else if(2==e)i=1;else if(32==e)i=5;else{if(4!=e)return void this.fromRadix(t,e);i=2}this.t=0,this.s=0;for(var n=t.length,o=!1,s=0;--n>=0;){var h=8==i?255&t[n]:f(t,n);h<0?\"-\"==t.charAt(n)&&(o=!0):(o=!1,0==s?this[this.t++]=h:s+i>this.DB?(this[this.t-1]|=(h&(1<>this.DB-s):this[this.t-1]|=h<=this.DB&&(s-=this.DB))}8==i&&0!=(128&t[0])&&(this.s=-1,s>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},r.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},r.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>n|h,h=(this[r]&o)<=0;--r)e[r]=0;e[s]=h,e.t=this.t+s+1,e.s=this.s,e.clamp()},r.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var i=t%this.DB,n=this.DB-i,o=(1<>i;for(var s=r+1;s>i;i>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;i+=this.s}else{for(i+=this.s;r>=this.DB;i-=t.s}e.s=i<0?-1:0,i<-1?e[r++]=this.DV+i:i>0&&(e[r++]=i),e.t=r,e.clamp()},r.prototype.multiplyTo=function(t,e){var i=this.abs(),n=t.abs(),o=i.t;for(e.t=o+n.t;--o>=0;)e[o]=0;for(o=0;o=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},r.prototype.divRemTo=function(t,e,n){var o=t.abs();if(!(o.t<=0)){var s=this.abs();if(s.t0?(o.lShiftTo(f,h),s.lShiftTo(f,n)):(o.copyTo(h),s.copyTo(n));var c=h.t,l=h[c-1];if(0!=l){var d=l*(1<1?h[c-2]>>this.F2:0),m=this.FV/d,v=(1<=0&&(n[n.t++]=1,n.subTo(T,n)),r.ONE.dlShiftTo(c,T),T.subTo(h,h);h.t=0;){var b=n[--g]==l?this.DM:Math.floor(n[g]*m+(n[g-1]+y)*v);if((n[g]+=h.am(0,b,n,w,0,c))0&&n.rShiftTo(f,n),a<0&&r.ZERO.subTo(n,n)}}},r.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},r.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},r.prototype.exp=function(t,e){if(t>4294967295||t<1)return r.ONE;var n=i(),o=i(),s=e.convert(this),h=p(t)-1;for(s.copyTo(n);--h>=0;)if(e.sqrTo(n,o),(t&1<0)e.mulTo(o,s,n);else{var a=n;n=o,o=a}return e.revert(n)},r.prototype.toString=function(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,i=(1<0)for(h>h)>0&&(n=!0,o=u(r));s>=0;)h>(h+=this.DB-e)):(r=this[s]>>(h-=e)&i,h<=0&&(h+=this.DB,--s)),r>0&&(n=!0),n&&(o+=u(r));return n?o:\"0\"},r.prototype.negate=function(){var t=i();return r.ZERO.subTo(this,t),t},r.prototype.abs=function(){return this.s<0?this.negate():this},r.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},r.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+p(this[this.t-1]^this.s&this.DM)},r.prototype.mod=function(t){var e=i();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(r.ZERO)>0&&t.subTo(e,e),e},r.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new l(e):new d(e),this.exp(t,r)},r.ZERO=c(0),r.ONE=c(1),b.prototype.convert=_,b.prototype.revert=_,b.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},b.prototype.sqrTo=function(t,e){t.squareTo(e)},A.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=i();return t.copyTo(e),this.reduce(e),e},A.prototype.revert=function(t){return t},A.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},A.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},A.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var S,D,B,x=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],k=(1<<26)/x[x.length-1];function E(){var t;t=(new Date).getTime(),D[B++]^=255&t,D[B++]^=t>>8&255,D[B++]^=t>>16&255,D[B++]^=t>>24&255,B>=N&&(B-=N)}if(r.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},r.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=c(r),o=i(),s=i(),h=\"\";for(this.divRemTo(n,o,s);o.signum()>0;)h=(r+s.intValue()).toString(t).substr(1)+h,o.divRemTo(n,o,s);return s.intValue().toString(t)+h},r.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var i=this.chunkSize(e),n=Math.pow(e,i),o=!1,s=0,h=0,a=0;a=i&&(this.dMultiply(n),this.dAddOffset(h,0),s=0,h=0))}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(h,0)),o&&r.ZERO.subTo(this,this)},r.prototype.fromNumber=function(t,e,i){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(r.ONE.shiftLeft(t-1),v,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(r.ONE.shiftLeft(t-1),this);else{var n=new Array,o=7&t;n.length=1+(t>>3),e.nextBytes(n),o>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;i+=this.s}else{for(i+=this.s;r>=this.DB;i+=t.s}e.s=i<0?-1:0,i>0?e[r++]=i:i<-1&&(e[r++]=this.DV+i),e.t=r,e.clamp()},r.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},r.prototype.dAddOffset=function(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},r.prototype.multiplyLowerTo=function(t,e,r){var i,n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r[--n]=0;for(i=r.t-this.t;n=0;)r[i]=0;for(i=Math.max(e-this.t,0);i0)if(0==e)r=this[0]%t;else for(var i=this.t-1;i>=0;--i)r=(e*r+this[i])%t;return r},r.prototype.millerRabin=function(t){var e=this.subtract(r.ONE),n=e.getLowestSetBit();if(n<=0)return!1;var o=e.shiftRight(n);(t=t+1>>1)>x.length&&(t=x.length);for(var s=i(),h=0;h>24},r.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},r.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},r.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,i=this.DB-t*this.DB%8,n=0;if(t-- >0)for(i>i)!=(this.s&this.DM)>>i&&(e[n++]=r|this.s<=0;)i<8?(r=(this[t]&(1<>(i+=this.DB-8)):(r=this[t]>>(i-=8)&255,i<=0&&(i+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==n&&(128&this.s)!=(128&r)&&++n,(n>0||r!=this.s)&&(e[n++]=r);return e},r.prototype.equals=function(t){return 0==this.compareTo(t)},r.prototype.min=function(t){return this.compareTo(t)<0?this:t},r.prototype.max=function(t){return this.compareTo(t)>0?this:t},r.prototype.and=function(t){var e=i();return this.bitwiseTo(t,m,e),e},r.prototype.or=function(t){var e=i();return this.bitwiseTo(t,v,e),e},r.prototype.xor=function(t){var e=i();return this.bitwiseTo(t,y,e),e},r.prototype.andNot=function(t){var e=i();return this.bitwiseTo(t,g,e),e},r.prototype.not=function(){for(var t=i(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var m=i();for(n.sqrTo(h[1],m);a<=f;)h[a]=i(),n.mulTo(m,h[a-2],h[a]),a+=2}var v,y,g=t.t-1,w=!0,T=i();for(o=p(t[g])-1;g>=0;){for(o>=u?v=t[g]>>o-u&f:(v=(t[g]&(1<0&&(v|=t[g-1]>>this.DB+o-u)),a=r;0==(1&v);)v>>=1,--a;if((o-=a)<0&&(o+=this.DB,--g),w)h[v].copyTo(s),w=!1;else{for(;a>1;)n.sqrTo(s,T),n.sqrTo(T,s),a-=2;a>0?n.sqrTo(s,T):(y=s,s=T,T=y),n.mulTo(T,h[v],s)}for(;g>=0&&0==(t[g]&1<=0?(i.subTo(n,i),e&&o.subTo(h,o),s.subTo(a,s)):(n.subTo(i,n),e&&h.subTo(o,h),a.subTo(s,a))}return 0!=n.compareTo(r.ONE)?r.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},r.prototype.pow=function(t){return this.exp(t,new b)},r.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var i=e;e=r,r=i}var n=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(n0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(n=e.getLowestSetBit())>0&&e.rShiftTo(n,e),(n=r.getLowestSetBit())>0&&r.rShiftTo(n,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},r.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=x[x.length-1]){for(e=0;e>>8,D[B++]=255&M;B=0,E()}function R(){if(null==S){for(E(),(S=new O).init(D),B=0;B0&&e.length>0))throw new Error(\"Invalid key data\");this.n=new s(t,16),this.e=parseInt(e,16)}u.prototype.verify=function(t,e){e=e.replace(/[^0-9a-f]|[\\s\\n]]/gi,\"\");var r=new s(e,16);if(r.bitLength()>this.n.bitLength())throw new Error(\"Signature does not match with the key modulus.\");var i=function(t){for(var e in h){var r=h[e],i=r.length;if(t.substring(0,i)===r)return{alg:e,hash:t.substring(i)}}return[]}(r.modPowInt(this.e,this.n).toString(16).replace(/^1f+00/,\"\"));if(0===i.length)return!1;if(!a.hasOwnProperty(i.alg))throw new Error(\"Hashing algorithm is not supported.\");var n=a[i.alg](t).toString();return i.hash===n};for(var f=[],c=[],p=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,l=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",d=0,m=l.length;d0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function y(t,e,r){for(var i,n=[],o=e;o>18&63]+f[i>>12&63]+f[i>>6&63]+f[63&i]);return n.join(\"\")}c[\"-\".charCodeAt(0)]=62,c[\"_\".charCodeAt(0)]=63;var g={byteLength:function(t){var e=v(t),r=e[1];return 3*(e[0]+r)/4-r},toByteArray:function(t){var e,r,i=v(t),n=i[0],o=i[1],s=new p(3*(n+o)/4-o),h=0,a=o>0?n-4:n;for(r=0;r>16&255,s[h++]=e>>8&255,s[h++]=255&e;return 2===o&&(e=c[t.charCodeAt(r)]<<2|c[t.charCodeAt(r+1)]>>4,s[h++]=255&e),1===o&&(e=c[t.charCodeAt(r)]<<10|c[t.charCodeAt(r+1)]<<4|c[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e),s},fromByteArray:function(t){for(var e,r=t.length,i=r%3,n=[],o=0,s=r-i;os?s:o+16383));return 1===i?n.push(f[(e=t[r-1])>>2]+f[e<<4&63]+\"==\"):2===i&&n.push(f[(e=(t[r-2]<<8)+t[r-1])>>10]+f[e>>4&63]+f[e<<2&63]+\"=\"),n.join(\"\")}};function w(t){var e=t.length%4;return 0===e?t:t+new Array(4-e+1).join(\"=\")}function T(t){return t=w(t).replace(/\\-/g,\"+\").replace(/_/g,\"/\"),decodeURIComponent(function(t){for(var e=\"\",r=0;r1){var r=t.shift();t[0]=r+t[0]}t[0]=t[0].match(/^file:\\/\\/\\//)?t[0].replace(/^([^\\/:]+):\\/*/,\"$1:///\"):t[0].replace(/^([^\\/:]+):\\/*/,\"$1://\");for(var i=0;i0&&(n=n.replace(/^[\\/]+/,\"\")),n=n.replace(/[\\/]+$/,i0?\"?\":\"\")+s.join(\"&\")}(\"object\"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}},e.exports?e.exports=i():r.urljoin=i()});function S(t){if(t.ok)return t.json();var e=new Error(t.statusText);return e.response=t,Promise.reject(e)}function D(t){this.name=\"ConfigurationError\",this.message=t||\"\"}function B(t){this.name=\"TokenValidationError\",this.message=t||\"\"}_.polyfill(),D.prototype=Error.prototype,B.prototype=Error.prototype;var x=function(){};x.prototype.get=function(){return null},x.prototype.has=function(){return null},x.prototype.set=function(){return null};var k=\"RS256\",E=function(t){return\"number\"==typeof t},M=function(){return new Date},I=60;function C(t){var e=t||{};if(this.jwksCache=e.jwksCache||new x,this.expectedAlg=e.expectedAlg||\"RS256\",this.issuer=e.issuer,this.audience=e.audience,this.leeway=0===e.leeway?0:e.leeway||I,this.jwksURI=e.jwksURI,this.maxAge=e.maxAge,this.__clock=\"function\"==typeof e.__clock?e.__clock:M,this.leeway<0||this.leeway>300)throw new D(\"The leeway should be positive and lower than five minutes.\");if(k!==this.expectedAlg)throw new D('Signature algorithm of \"'+this.expectedAlg+'\" is not supported. Expected the ID token to be signed with \"'+k+'\".')}function PluginHandler(webAuth,plugins){this.plugins=plugins;for(var a=0;a1){if(!d||\"string\"!=typeof d)return r(new B(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\",!1));if(d!==g.audience)return r(new B('Authorized Party (azp) claim mismatch in the ID token; expected \"'+g.audience+'\", found \"'+d+'\"',!1))}if(!c||!E(c))return r(new B(\"Expiration Time (exp) claim must be a number present in the ID token\",!1));if(!l||!E(l))return r(new B(\"Issued At (iat) claim must be a number present in the ID token\"));var h=c+g.leeway,w=new Date(0);if(w.setUTCSeconds(h),y>w)return r(new B('Expiration Time (exp) claim error in the ID token; current time \"'+y+'\" is after expiration time \"'+w+'\"',!1));var T=l-g.leeway,b=new Date(0);if(b.setUTCSeconds(T),yD)return r(new B('Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time \"'+y+'\" is after last auth time at \"'+D+'\"'))}return r(null,i.payload)})},C.prototype.getRsaVerifier=function(t,e,r){var i=this,n=t+e;if(this.jwksCache.has(n)){var o=this.jwksCache.get(n);r(null,new u(o.modulus,o.exp))}else!function(t,e){(\"undefined\"==typeof fetch?function(t,e){return e=e||{},new Promise(function(r,i){var n=new XMLHttpRequest,o=[],s=[],h={},a=function(){return{ok:2==(n.status/100|0),statusText:n.statusText,status:n.status,url:n.responseURL,text:function(){return Promise.resolve(n.responseText)},json:function(){return Promise.resolve(JSON.parse(n.responseText))},blob:function(){return Promise.resolve(new Blob([n.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return s},get:function(t){return h[t.toLowerCase()]},has:function(t){return t.toLowerCase()in h}}}};for(var u in n.open(e.method||\"get\",t,!0),n.onload=function(){n.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(t,e,r){o.push(e=e.toLowerCase()),s.push([e,r]),h[e]=h[e]?h[e]+\",\"+r:r}),r(a())},n.onerror=i,n.withCredentials=\"include\"==e.credentials,e.headers)n.setRequestHeader(u,e.headers[u]);n.send(e.body||null)})}:fetch)(t.jwksURI||A(t.iss,\".well-known\",\"jwks.json\")).then(S).then(function(r){var i,n,o,s=null;for(i=0;i-1&&null!==new RegExp(\"rv:([0-9]{2,2}[.0-9]{0,})\").exec(ua)&&(rv=parseFloat(RegExp.$1));return rv>=8}();return\"undefined\"!=typeof window&&window.JSON&&window.JSON.stringify&&window.JSON.parse&&window.postMessage?{open:function(opts,cb){if(!cb)throw\"missing required callback argument\";var err,iframe;opts.url||(err=\"missing required 'url' parameter\"),opts.relay_url||(err=\"missing required 'relay_url' parameter\"),err&&setTimeout(function(){cb(err)},0),opts.window_name||(opts.window_name=null),opts.window_features&&!function(){try{var userAgent=navigator.userAgent;return-1!=userAgent.indexOf(\"Fennec/\")||-1!=userAgent.indexOf(\"Firefox/\")&&-1!=userAgent.indexOf(\"Android\")}catch(e){}return!1}()||(opts.window_features=void 0);var messageTarget,origin=opts.origin||extractOrigin(opts.url);if(origin!==extractOrigin(opts.relay_url))return setTimeout(function(){cb(\"invalid arguments: origin of url and relay_url must match\")},0);isIE&&((iframe=document.createElement(\"iframe\")).setAttribute(\"src\",opts.relay_url),iframe.style.display=\"none\",iframe.setAttribute(\"name\",RELAY_FRAME_NAME),document.body.appendChild(iframe),messageTarget=iframe.contentWindow);var w=opts.popup||window.open(opts.url,opts.window_name,opts.window_features);opts.popup&&(w.location.href=opts.url),messageTarget||(messageTarget=w);var closeInterval=setInterval(function(){w&&w.closed&&(cleanup(),cb&&(cb(\"User closed the popup window\"),cb=null))},500),req=JSON.stringify({a:\"request\",d:opts.params});function cleanup(){if(iframe&&document.body.removeChild(iframe),iframe=void 0,closeInterval&&(closeInterval=clearInterval(closeInterval)),removeListener(window,\"message\",onMessage),removeListener(window,\"unload\",cleanup),w)try{w.close()}catch(securityViolation){messageTarget.postMessage(CLOSE_CMD,origin)}w=messageTarget=void 0}function onMessage(e){if(e.origin===origin){try{var d=JSON.parse(e.data)}catch(err){if(cb)return cb(err);throw err}\"ready\"===d.a?messageTarget.postMessage(req,origin):\"error\"===d.a?(cleanup(),cb&&(cb(d.d),cb=null)):\"response\"===d.a&&(cleanup(),cb&&(cb(null,d.d),cb=null))}}return addListener(window,\"unload\",cleanup),addListener(window,\"message\",onMessage),{originalPopup:w,close:cleanup,focus:function(){if(w)try{w.focus()}catch(e){}}}},onOpen:function(cb){var o=\"*\",msgTarget=isIE?function(){window.location;for(var frames=window.opener.frames,i=frames.length-1;i>=0;i--)try{if(frames[i].location.protocol===window.location.protocol&&frames[i].location.host===window.location.host&&frames[i].name===RELAY_FRAME_NAME)return frames[i]}catch(e){}}():window.opener;if(!msgTarget)throw\"can't find relay frame\";function doPost(msg){msg=JSON.stringify(msg),isIE?msgTarget.doPost(msg,o):msgTarget.postMessage(msg,o)}function onDie(e){if(e.data===CLOSE_CMD)try{window.close()}catch(o_O){}}addListener(isIE?msgTarget:window,\"message\",function onMessage(e){var d;try{d=JSON.parse(e.data)}catch(err){}d&&\"request\"===d.a&&(removeListener(window,\"message\",onMessage),o=e.origin,cb&&setTimeout(function(){cb(o,d.d,function(r){cb=void 0,doPost({a:\"response\",d:r})})},0))}),addListener(isIE?msgTarget:window,\"message\",onDie);try{doPost({a:\"ready\"})}catch(e){addListener(msgTarget,\"load\",function(e){doPost({a:\"ready\"})})}var onUnload=function(){try{removeListener(isIE?msgTarget:window,\"message\",onDie)}catch(ohWell){}cb&&doPost({a:\"error\",d:\"client closed window\"}),cb=void 0;try{window.close()}catch(e){}};return addListener(window,\"unload\",onUnload),{detach:function(){removeListener(window,\"unload\",onUnload)}}}}:{open:function(url,winopts,arg,cb){setTimeout(function(){cb(\"unsupported browser\")},0)},onOpen:function(cb){setTimeout(function(){cb(\"unsupported browser\")},0)}}}();module.exports&&(module.exports=WinChan)});var urlHelper={extractOrigin:function(url){/^https?:\\/\\//.test(url)||(url=window.location.href);var m=/^(https?:\\/\\/[-_a-zA-Z.0-9:]+)/.exec(url);return m?m[1]:url}};function PopupHandler(){this._current_popup=null}function Popup(webAuth,options){this.baseOptions=options,this.baseOptions.popupOrigin=options.popupOrigin,this.client=webAuth.client,this.webAuth=webAuth,this.transactionManager=new TransactionManager(this.baseOptions),this.crossOriginAuthentication=new CrossOriginAuthentication(webAuth,this.baseOptions),this.warn=new Warn({disableWarnings:!!options._disableDeprecationWarnings})}function SilentAuthenticationHandler(options){this.authenticationUrl=options.authenticationUrl,this.timeout=options.timeout||6e4,this.handler=null,this.postMessageDataType=options.postMessageDataType||!1,this.postMessageOrigin=options.postMessageOrigin||windowHelper.getWindow().location.origin||windowHelper.getWindow().location.protocol+\"//\"+windowHelper.getWindow().location.hostname+(windowHelper.getWindow().location.port?\":\"+windowHelper.getWindow().location.port:\"\")}function UsernamePassword(options){this.baseOptions=options,this.request=new RequestBuilder(options),this.transactionManager=new TransactionManager(this.baseOptions)}function HostedPages(client,options){this.baseOptions=options,this.client=client,this.baseOptions.universalLoginPage=!0,this.request=new RequestBuilder(this.baseOptions),this.warn=new Warn({disableWarnings:!!options._disableDeprecationWarnings})}function defaultClock(){return new Date}function WebAuth(options){assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{domain:{type:\"string\",message:\"domain option is required\"},clientID:{type:\"string\",message:\"clientID option is required\"},responseType:{optional:!0,type:\"string\",message:\"responseType is not valid\"},responseMode:{optional:!0,type:\"string\",message:\"responseMode is not valid\"},redirectUri:{optional:!0,type:\"string\",message:\"redirectUri is not valid\"},scope:{optional:!0,type:\"string\",message:\"scope is not valid\"},audience:{optional:!0,type:\"string\",message:\"audience is not valid\"},popupOrigin:{optional:!0,type:\"string\",message:\"popupOrigin is not valid\"},leeway:{optional:!0,type:\"number\",message:\"leeway is not valid\"},plugins:{optional:!0,type:\"array\",message:\"plugins is not valid\"},maxAge:{optional:!0,type:\"number\",message:\"maxAge is not valid\"},_disableDeprecationWarnings:{optional:!0,type:\"boolean\",message:\"_disableDeprecationWarnings option is not valid\"},_sendTelemetry:{optional:!0,type:\"boolean\",message:\"_sendTelemetry option is not valid\"},_telemetryInfo:{optional:!0,type:\"object\",message:\"_telemetryInfo option is not valid\"},_timesToRetryFailedRequests:{optional:!0,type:\"number\",message:\"_timesToRetryFailedRequests option is not valid\"}}),options.overrides&&assert.check(options.overrides,{type:\"object\",message:\"overrides option is not valid\"},{__tenant:{optional:!0,type:\"string\",message:\"__tenant option is required\"},__token_issuer:{optional:!0,type:\"string\",message:\"__token_issuer option is required\"},__jwks_uri:{optional:!0,type:\"string\",message:\"__jwks_uri is required\"}}),this.baseOptions=options,this.baseOptions.plugins=new PluginHandler(this,this.baseOptions.plugins||[]),this.baseOptions._sendTelemetry=!1!==this.baseOptions._sendTelemetry||this.baseOptions._sendTelemetry,this.baseOptions._timesToRetryFailedRequests=options._timesToRetryFailedRequests?parseInt(options._timesToRetryFailedRequests,0):0,this.baseOptions.tenant=this.baseOptions.overrides&&this.baseOptions.overrides.__tenant||this.baseOptions.domain.split(\".\")[0],this.baseOptions.token_issuer=this.baseOptions.overrides&&this.baseOptions.overrides.__token_issuer||\"https://\"+this.baseOptions.domain+\"/\",this.baseOptions.jwksURI=this.baseOptions.overrides&&this.baseOptions.overrides.__jwks_uri,this.transactionManager=new TransactionManager(this.baseOptions),this.client=new Authentication(this.baseOptions),this.redirect=new Redirect(this,this.baseOptions),this.popup=new Popup(this,this.baseOptions),this.crossOriginAuthentication=new CrossOriginAuthentication(this,this.baseOptions),this.webMessageHandler=new WebMessageHandler(this),this._universalLogin=new HostedPages(this,this.baseOptions),this.ssodataStorage=new SSODataStorage(this.baseOptions)}function PasswordlessAuthentication(request,options){this.baseOptions=options,this.request=request}function DBConnection(request,options){this.baseOptions=options,this.request=request}function Authentication(auth0,options){2===arguments.length?this.auth0=auth0:options=auth0,assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{domain:{type:\"string\",message:\"domain option is required\"},clientID:{type:\"string\",message:\"clientID option is required\"},responseType:{optional:!0,type:\"string\",message:\"responseType is not valid\"},responseMode:{optional:!0,type:\"string\",message:\"responseMode is not valid\"},redirectUri:{optional:!0,type:\"string\",message:\"redirectUri is not valid\"},scope:{optional:!0,type:\"string\",message:\"scope is not valid\"},audience:{optional:!0,type:\"string\",message:\"audience is not valid\"},_disableDeprecationWarnings:{optional:!0,type:\"boolean\",message:\"_disableDeprecationWarnings option is not valid\"},_sendTelemetry:{optional:!0,type:\"boolean\",message:\"_sendTelemetry option is not valid\"},_telemetryInfo:{optional:!0,type:\"object\",message:\"_telemetryInfo option is not valid\"}}),this.baseOptions=options,this.baseOptions._sendTelemetry=!1!==this.baseOptions._sendTelemetry||this.baseOptions._sendTelemetry,this.baseOptions.rootUrl=\"https://\"+this.baseOptions.domain,this.request=new RequestBuilder(this.baseOptions),this.passwordless=new PasswordlessAuthentication(this.request,this.baseOptions),this.dbConnection=new DBConnection(this.request,this.baseOptions),this.warn=new Warn({disableWarnings:!!options._disableDeprecationWarnings}),this.ssodataStorage=new SSODataStorage(this.baseOptions)}function Management(options){assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{domain:{type:\"string\",message:\"domain option is required\"},token:{type:\"string\",message:\"token option is required\"},_sendTelemetry:{optional:!0,type:\"boolean\",message:\"_sendTelemetry option is not valid\"},_telemetryInfo:{optional:!0,type:\"object\",message:\"_telemetryInfo option is not valid\"}}),this.baseOptions=options,this.baseOptions.headers={Authorization:\"Bearer \"+this.baseOptions.token},this.request=new RequestBuilder(this.baseOptions),this.baseOptions.rootUrl=urlJoin(\"https://\"+this.baseOptions.domain,\"api\",\"v2\")}PopupHandler.prototype.calculatePosition=function(options){var width=options.width||500,height=options.height||600,_window=windowHelper.getWindow(),screenX=void 0!==_window.screenX?_window.screenX:_window.screenLeft,screenY=void 0!==_window.screenY?_window.screenY:_window.screenTop,outerWidth=void 0!==_window.outerWidth?_window.outerWidth:_window.document.body.clientWidth,outerHeight=void 0!==_window.outerHeight?_window.outerHeight:_window.document.body.clientHeight;return{width:width,height:height,left:options.left||screenX+(outerWidth-width)/2,top:options.top||screenY+(outerHeight-height)/2}},PopupHandler.prototype.preload=function(options){var _this=this,_window=windowHelper.getWindow(),popupPosition=this.calculatePosition(options.popupOptions||{}),popupOptions=objectHelper.merge(popupPosition).with(options.popupOptions),url=options.url||\"about:blank\",windowFeatures=lib_stringify(popupOptions,{encode:!1,delimiter:\",\"});return this._current_popup&&!this._current_popup.closed?this._current_popup:(this._current_popup=_window.open(url,\"auth0_signup_popup\",windowFeatures),this._current_popup.kill=function(){this.close(),_this._current_popup=null},this._current_popup)},PopupHandler.prototype.load=function(url,relayUrl,options,cb){var _this=this,popupPosition=this.calculatePosition(options.popupOptions||{}),popupOptions=objectHelper.merge(popupPosition).with(options.popupOptions),winchanOptions=objectHelper.merge({url:url,relay_url:relayUrl,window_features:lib_stringify(popupOptions,{delimiter:\",\",encode:!1}),popup:this._current_popup}).with(options),popup=winchan.open(winchanOptions,function(err,data){if(!err||\"SyntaxError\"!==err.name)return _this._current_popup=null,cb(err,data)});return popup.focus(),popup},Popup.prototype.buildPopupHandler=function(){var pluginHandler=this.baseOptions.plugins.get(\"popup.getPopupHandler\");return pluginHandler?pluginHandler.getPopupHandler():new PopupHandler},Popup.prototype.preload=function(options){options=options||{};var popup=this.buildPopupHandler();return popup.preload(options),popup},Popup.prototype.getPopupHandler=function(options,preload){return options.popupHandler?options.popupHandler:preload?this.preload(options):this.buildPopupHandler()},Popup.prototype.callback=function(options){var _this=this,theWindow=windowHelper.getWindow(),originUrl=(options=options||{}).popupOrigin||this.baseOptions.popupOrigin||windowHelper.getOrigin();theWindow.opener?winchan.onOpen(function(popupOrigin,r,cb){if(popupOrigin!==originUrl)return cb({error:\"origin_mismatch\",error_description:\"The popup's origin (\"+popupOrigin+\") should match the `popupOrigin` parameter (\"+originUrl+\").\"});_this.webAuth.parseHash(options||{},function(err,data){return cb(err||data)})}):theWindow.doPost=function(msg){theWindow.parent&&theWindow.parent.postMessage(msg,originUrl)}},Popup.prototype.authorize=function(options,cb){var url,relayUrl,popOpts={},pluginHandler=this.baseOptions.plugins.get(\"popup.authorize\"),params=objectHelper.merge(this.baseOptions,[\"clientID\",\"scope\",\"domain\",\"audience\",\"tenant\",\"responseType\",\"redirectUri\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(objectHelper.blacklist(options,[\"popupHandler\"]));return assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),relayUrl=urlJoin(this.baseOptions.rootUrl,\"relay.html\"),options.owp?params.owp=!0:(popOpts.origin=urlHelper.extractOrigin(params.redirectUri),relayUrl=params.redirectUri),options.popupOptions&&(popOpts.popupOptions=objectHelper.pick(options.popupOptions,[\"width\",\"height\",\"top\",\"left\"])),pluginHandler&&(params=pluginHandler.processParams(params)),(params=this.transactionManager.process(params)).scope=params.scope||\"openid profile email\",delete params.domain,url=this.client.buildAuthorizeUrl(params),this.getPopupHandler(options).load(url,relayUrl,popOpts,wrapCallback(cb,{keepOriginalCasing:!0}))},Popup.prototype.loginWithCredentials=function(options,cb){options.realm=options.realm||options.connection,options.popup=!0,options=objectHelper.merge(this.baseOptions,[\"redirectUri\",\"responseType\",\"state\",\"nonce\"]).with(objectHelper.blacklist(options,[\"popupHandler\",\"connection\"])),options=this.transactionManager.process(options),this.crossOriginAuthentication.login(options,cb)},Popup.prototype.passwordlessVerify=function(options,cb){var _this=this;return this.client.passwordless.verify(objectHelper.blacklist(options,[\"popupHandler\"]),function(err){if(err)return cb(err);options.username=options.phoneNumber||options.email,options.password=options.verificationCode,delete options.email,delete options.phoneNumber,delete options.verificationCode,delete options.type,_this.client.loginWithResourceOwner(options,cb)})},Popup.prototype.signupAndLogin=function(options,cb){var _this=this;return this.client.dbConnection.signup(options,function(err){if(err)return cb(err);_this.loginWithCredentials(options,cb)})},SilentAuthenticationHandler.create=function(options){return new SilentAuthenticationHandler(options)},SilentAuthenticationHandler.prototype.login=function(usePostMessage,callback){this.handler=new IframeHandler({auth0:this.auth0,url:this.authenticationUrl,eventListenerType:usePostMessage?\"message\":\"load\",callback:this.getCallbackHandler(callback,usePostMessage),timeout:this.timeout,eventValidator:this.getEventValidator(),timeoutCallback:function(){callback(null,\"#error=timeout&error_description=Timeout+during+authentication+renew.\")},usePostMessage:usePostMessage||!1}),this.handler.init()},SilentAuthenticationHandler.prototype.getEventValidator=function(){var _this=this;return{isValid:function(eventData){switch(eventData.event.type){case\"message\":return eventData.event.origin===_this.postMessageOrigin&&eventData.event.source===_this.handler.iframe.contentWindow&&(!1===_this.postMessageDataType||eventData.event.data.type&&eventData.event.data.type===_this.postMessageDataType);case\"load\":if(\"about:\"===eventData.sourceObject.contentWindow.location.protocol)return!1;default:return!0}}}},SilentAuthenticationHandler.prototype.getCallbackHandler=function(callback,usePostMessage){return function(eventData){var callbackValue;callbackValue=usePostMessage?\"object\"==typeof eventData.event.data&&eventData.event.data.hash?eventData.event.data.hash:eventData.event.data:eventData.sourceObject.contentWindow.location.hash,callback(null,callbackValue)}},UsernamePassword.prototype.login=function(options,cb){var url,body;return url=urlJoin(this.baseOptions.rootUrl,\"usernamepassword\",\"login\"),options.username=options.username||options.email,options=objectHelper.blacklist(options,[\"email\"]),body=objectHelper.merge(this.baseOptions,[\"clientID\",\"redirectUri\",\"tenant\",\"responseType\",\"responseMode\",\"scope\",\"audience\"]).with(options),body=this.transactionManager.process(body),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),this.request.post(url).send(body).end(wrapCallback(cb))},UsernamePassword.prototype.callback=function(formHtml){var div,_document=windowHelper.getDocument();(div=_document.createElement(\"div\")).innerHTML=formHtml,_document.body.appendChild(div).children[0].submit()},HostedPages.prototype.login=function(options,cb){if(windowHelper.getWindow().location.host!==this.baseOptions.domain)throw new Error(\"This method is meant to be used only inside the Universal Login Page.\");var usernamePassword,params=objectHelper.merge(this.baseOptions,[\"clientID\",\"redirectUri\",\"tenant\",\"responseType\",\"responseMode\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);return assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),(usernamePassword=new UsernamePassword(this.baseOptions)).login(params,function(err,data){return err?cb(err):usernamePassword.callback(data)})},HostedPages.prototype.signupAndLogin=function(options,cb){var _this=this;return _this.client.client.dbConnection.signup(options,function(err){return err?cb(err):_this.login(options,cb)})},HostedPages.prototype.getSSOData=function(withActiveDirectories,cb){var url,params=\"\";return\"function\"==typeof withActiveDirectories&&(cb=withActiveDirectories,withActiveDirectories=!1),assert.check(withActiveDirectories,{type:\"boolean\",message:\"withActiveDirectories parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),withActiveDirectories&&(params=\"?\"+lib_stringify({ldaps:1,client_id:this.baseOptions.clientID})),url=urlJoin(this.baseOptions.rootUrl,\"user\",\"ssodata\",params),this.request.get(url,{noHeaders:!0}).withCredentials().end(wrapCallback(cb))},WebAuth.prototype.parseHash=function(options,cb){var parsedQs,err;cb||\"function\"!=typeof options?options=options||{}:(cb=options,options={});var _window=windowHelper.getWindow(),hashStr=void 0===options.hash?_window.location.hash:options.hash;if(hashStr=hashStr.replace(/^#?\\/?/,\"\"),(parsedQs=lib_parse(hashStr)).hasOwnProperty(\"error\"))return err=error.buildResponse(parsedQs.error,parsedQs.error_description),parsedQs.state&&(err.state=parsedQs.state),cb(err);if(!parsedQs.hasOwnProperty(\"access_token\")&&!parsedQs.hasOwnProperty(\"id_token\")&&!parsedQs.hasOwnProperty(\"refresh_token\"))return cb(null,null);var responseTypes=(this.baseOptions.responseType||options.responseType||\"\").split(\" \");return responseTypes.length>0&&-1!==responseTypes.indexOf(\"token\")&&!parsedQs.hasOwnProperty(\"access_token\")?cb(error.buildResponse(\"invalid_hash\",\"response_type contains `token`, but the parsed hash does not contain an `access_token` property\")):responseTypes.length>0&&-1!==responseTypes.indexOf(\"id_token\")&&!parsedQs.hasOwnProperty(\"id_token\")?cb(error.buildResponse(\"invalid_hash\",\"response_type contains `id_token`, but the parsed hash does not contain an `id_token` property\")):this.validateAuthenticationResponse(options,parsedQs,cb)},WebAuth.prototype.validateAuthenticationResponse=function(options,parsedHash,cb){var _this=this;options.__enableIdPInitiatedLogin=options.__enableIdPInitiatedLogin||options.__enableImpersonation;var state=parsedHash.state,transaction=this.transactionManager.getStoredTransaction(state),transactionState=options.state||transaction&&transaction.state||null,transactionStateMatchesState=transactionState===state;if(!(!state&&!transactionState&&options.__enableIdPInitiatedLogin)&&!transactionStateMatchesState)return cb({error:\"invalid_token\",errorDescription:\"`state` does not match.\"});var transactionNonce=options.nonce||transaction&&transaction.nonce||null,appState=options.state||transaction&&transaction.appState||null,callback=function(err,payload){if(err)return cb(err);var sub;transaction&&transaction.lastUsedConnection&&(payload&&(sub=payload.sub),_this.ssodataStorage.set(transaction.lastUsedConnection,sub));return cb(null,function(qsParams,appState,token){return{accessToken:qsParams.access_token||null,idToken:qsParams.id_token||null,idTokenPayload:token||null,appState:appState||null,refreshToken:qsParams.refresh_token||null,state:qsParams.state||null,expiresIn:qsParams.expires_in?parseInt(qsParams.expires_in,10):null,tokenType:qsParams.token_type||null,scope:qsParams.scope||null}}(parsedHash,appState,payload))};return parsedHash.id_token?this.validateToken(parsedHash.id_token,transactionNonce,function(validationError,payload){if(!validationError)return parsedHash.access_token&&payload.at_hash?(new C).validateAccessToken(parsedHash.access_token,\"RS256\",payload.at_hash,function(err){return err?callback(error.invalidToken(err.message)):callback(null,payload)}):callback(null,payload);if(\"invalid_token\"!==validationError.error||validationError.errorDescription&&validationError.errorDescription.indexOf(\"Nonce (nonce) claim value mismatch in the ID token\")>-1)return callback(validationError);var decodedToken=(new C).decode(parsedHash.id_token);if(\"HS256\"!==decodedToken.header.alg)return callback(validationError);if((decodedToken.payload.nonce||null)!==transactionNonce)return callback({error:\"invalid_token\",errorDescription:'Nonce (nonce) claim value mismatch in the ID token; expected \"'+transactionNonce+'\", found \"'+decodedToken.payload.nonce+'\"'});if(!parsedHash.access_token){return callback({error:\"invalid_token\",description:\"The id_token cannot be validated because it was signed with the HS256 algorithm and public clients (like a browser) can’t store secrets. Please read the associated doc for possible ways to fix this. Read more: https://auth0.com/docs/errors/libraries/auth0-js/invalid-token#parsing-an-hs256-signed-id-token-without-an-access-token\"})}return _this.client.userInfo(parsedHash.access_token,function(errUserInfo,profile){return errUserInfo?callback(errUserInfo):callback(null,profile)})}):callback(null,null)},WebAuth.prototype.validateToken=function(token,nonce,cb){new C({issuer:this.baseOptions.token_issuer,jwksURI:this.baseOptions.jwksURI,audience:this.baseOptions.clientID,leeway:this.baseOptions.leeway||60,maxAge:this.baseOptions.maxAge,__clock:this.baseOptions.__clock||defaultClock}).verify(token,nonce,function(err,payload){if(err)return cb(error.invalidToken(err.message));cb(null,payload)})},WebAuth.prototype.renewAuth=function(options,cb){var usePostMessage=!!options.usePostMessage,postMessageDataType=options.postMessageDataType||!1,postMessageOrigin=options.postMessageOrigin||windowHelper.getWindow().origin,timeout=options.timeout,_this=this,params=objectHelper.merge(this.baseOptions,[\"clientID\",\"redirectUri\",\"responseType\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);params.responseType=params.responseType||\"token\",params.responseMode=params.responseMode||\"fragment\",params=this.transactionManager.process(params),assert.check(params,{type:\"object\",message:\"options parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),params.prompt=\"none\",params=objectHelper.blacklist(params,[\"usePostMessage\",\"tenant\",\"postMessageDataType\",\"postMessageOrigin\"]),SilentAuthenticationHandler.create({authenticationUrl:this.client.buildAuthorizeUrl(params),postMessageDataType:postMessageDataType,postMessageOrigin:postMessageOrigin,timeout:timeout}).login(usePostMessage,function(err,hash){if(\"object\"==typeof hash)return cb(err,hash);_this.parseHash({hash:hash},cb)})},WebAuth.prototype.checkSession=function(options,cb){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);return\"code\"===params.responseType?cb({error:\"error\",error_description:\"responseType can't be `code`\"}):(options.nonce||(params=this.transactionManager.process(params)),params.redirectUri?(assert.check(params,{type:\"object\",message:\"options parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),params=objectHelper.blacklist(params,[\"usePostMessage\",\"tenant\",\"postMessageDataType\"]),void this.webMessageHandler.run(params,wrapCallback(cb,{forceLegacyError:!0,ignoreCasing:!0}))):cb({error:\"error\",error_description:\"redirectUri can't be empty\"}))},WebAuth.prototype.changePassword=function(options,cb){return this.client.dbConnection.changePassword(options,cb)},WebAuth.prototype.passwordlessStart=function(options,cb){var authParams=objectHelper.merge(this.baseOptions,[\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options.authParams);return options.authParams=this.transactionManager.process(authParams),this.client.passwordless.start(options,cb)},WebAuth.prototype.signup=function(options,cb){return this.client.dbConnection.signup(options,cb)},WebAuth.prototype.authorize=function(options){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),(params=this.transactionManager.process(params)).scope=params.scope||\"openid profile email\",windowHelper.redirect(this.client.buildAuthorizeUrl(params))},WebAuth.prototype.signupAndAuthorize=function(options,cb){var _this=this;return this.client.dbConnection.signup(objectHelper.blacklist(options,[\"popupHandler\"]),function(err){if(err)return cb(err);options.realm=options.connection,options.username||(options.username=options.email),_this.client.login(options,cb)})},WebAuth.prototype.login=function(options,cb){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);params=this.transactionManager.process(params),windowHelper.getWindow().location.host===this.baseOptions.domain?(params.connection=params.realm,delete params.realm,this._universalLogin.login(params,cb)):this.crossOriginAuthentication.login(params,cb)},WebAuth.prototype.passwordlessLogin=function(options,cb){var params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);if(params=this.transactionManager.process(params),windowHelper.getWindow().location.host===this.baseOptions.domain)this.passwordlessVerify(params,cb);else{var crossOriginOptions=objectHelper.extend({credentialType:\"http://auth0.com/oauth/grant-type/passwordless/otp\",realm:params.connection,username:params.email||params.phoneNumber,otp:params.verificationCode},objectHelper.blacklist(params,[\"connection\",\"email\",\"phoneNumber\",\"verificationCode\"]));this.crossOriginAuthentication.login(crossOriginOptions,cb)}},WebAuth.prototype.crossOriginAuthenticationCallback=function(){this.crossOriginVerification()},WebAuth.prototype.crossOriginVerification=function(){this.crossOriginAuthentication.callback()},WebAuth.prototype.logout=function(options){windowHelper.redirect(this.client.buildLogoutUrl(options))},WebAuth.prototype.passwordlessVerify=function(options,cb){var _this=this,params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"nonce\"]).with(options);return assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{responseType:{type:\"string\",message:\"responseType option is required\"}}),params=this.transactionManager.process(params),this.client.passwordless.verify(params,function(err){return err?cb(err):windowHelper.redirect(_this.client.passwordless.buildVerifyUrl(params))})},PasswordlessAuthentication.prototype.buildVerifyUrl=function(options){var params,qString;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},verificationCode:{type:\"string\",message:\"verificationCode option is required\"},phoneNumber:{optional:!1,type:\"string\",message:\"phoneNumber option is required\",condition:function(o){return!o.email}},email:{optional:!1,type:\"string\",message:\"email option is required\",condition:function(o){return!o.phoneNumber}}}),params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\",\"_csrf\",\"state\",\"_intstate\",\"protocol\",\"nonce\"]).with(options),this.baseOptions._sendTelemetry&&(params.auth0Client=this.request.getTelemetryData()),params=objectHelper.toSnakeCase(params,[\"auth0Client\"]),qString=lib_stringify(params),urlJoin(this.baseOptions.rootUrl,\"passwordless\",\"verify_redirect\",\"?\"+qString)},PasswordlessAuthentication.prototype.start=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},send:{type:\"string\",message:\"send option is required\",values:[\"link\",\"code\"],value_message:\"send is not valid ([link, code])\"},phoneNumber:{optional:!0,type:\"string\",message:\"phoneNumber option is required\",condition:function(o){return\"code\"===o.send||!o.email}},email:{optional:!0,type:\"string\",message:\"email option is required\",condition:function(o){return\"link\"===o.send||!o.phoneNumber}},authParams:{optional:!0,type:\"object\",message:\"authParams option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"passwordless\",\"start\"),(body=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"redirectUri\",\"scope\"]).with(options)).scope&&(body.authParams=body.authParams||{},body.authParams.scope=body.authParams.scope||body.scope),body.redirectUri&&(body.authParams=body.authParams||{},body.authParams.redirect_uri=body.authParams.redirectUri||body.redirectUri),body.responseType&&(body.authParams=body.authParams||{},body.authParams.response_type=body.authParams.responseType||body.responseType),delete body.redirectUri,delete body.responseType,delete body.scope,body=objectHelper.toSnakeCase(body,[\"auth0Client\",\"authParams\"]),this.request.post(url).send(body).end(wrapCallback(cb))},PasswordlessAuthentication.prototype.verify=function(options,cb){var url,cleanOption;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},verificationCode:{type:\"string\",message:\"verificationCode option is required\"},phoneNumber:{optional:!1,type:\"string\",message:\"phoneNumber option is required\",condition:function(o){return!o.email}},email:{optional:!1,type:\"string\",message:\"email option is required\",condition:function(o){return!o.phoneNumber}}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),cleanOption=objectHelper.pick(options,[\"connection\",\"verificationCode\",\"phoneNumber\",\"email\",\"auth0Client\"]),cleanOption=objectHelper.toSnakeCase(cleanOption,[\"auth0Client\"]),url=urlJoin(this.baseOptions.rootUrl,\"passwordless\",\"verify\"),this.request.post(url).send(cleanOption).end(wrapCallback(cb))},DBConnection.prototype.signup=function(options,cb){var url,body,metadata;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},email:{type:\"string\",message:\"email option is required\"},password:{type:\"string\",message:\"password option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"dbconnections\",\"signup\"),metadata=(body=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options)).user_metadata||body.userMetadata,body=objectHelper.blacklist(body,[\"scope\",\"userMetadata\",\"user_metadata\"]),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),metadata&&(body.user_metadata=metadata),this.request.post(url).send(body).end(wrapCallback(cb))},DBConnection.prototype.changePassword=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{connection:{type:\"string\",message:\"connection option is required\"},email:{type:\"string\",message:\"email option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"dbconnections\",\"change_password\"),body=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options,[\"email\",\"connection\"]),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.buildAuthorizeUrl=function(options){var params,qString;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"}),params=objectHelper.merge(this.baseOptions,[\"clientID\",\"responseType\",\"responseMode\",\"redirectUri\",\"scope\",\"audience\"]).with(options),assert.check(params,{type:\"object\",message:\"options parameter is not valid\"},{clientID:{type:\"string\",message:\"clientID option is required\"},redirectUri:{optional:!0,type:\"string\",message:\"redirectUri option is required\"},responseType:{type:\"string\",message:\"responseType option is required\"},nonce:{type:\"string\",message:\"nonce option is required\",condition:function(o){return-1===o.responseType.indexOf(\"code\")&&-1!==o.responseType.indexOf(\"id_token\")}},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),this.baseOptions._sendTelemetry&&(params.auth0Client=this.request.getTelemetryData()),params.connection_scope&&assert.isArray(params.connection_scope)&&(params.connection_scope=params.connection_scope.join(\",\")),params=objectHelper.blacklist(params,[\"username\",\"popupOptions\",\"domain\",\"tenant\",\"timeout\",\"appState\"]),params=objectHelper.toSnakeCase(params,[\"auth0Client\"]),params=parametersWhitelist.oauthAuthorizeParams(this.warn,params),qString=lib_stringify(params),urlJoin(this.baseOptions.rootUrl,\"authorize\",\"?\"+qString)},Authentication.prototype.buildLogoutUrl=function(options){var params,qString;return assert.check(options,{optional:!0,type:\"object\",message:\"options parameter is not valid\"}),params=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options||{}),this.baseOptions._sendTelemetry&&(params.auth0Client=this.request.getTelemetryData()),params=objectHelper.toSnakeCase(params,[\"auth0Client\",\"returnTo\"]),qString=lib_stringify(objectHelper.blacklist(params,[\"federated\"])),options&&void 0!==options.federated&&!1!==options.federated&&\"false\"!==options.federated&&(qString+=\"&federated\"),urlJoin(this.baseOptions.rootUrl,\"v2\",\"logout\",\"?\"+qString)},Authentication.prototype.loginWithDefaultDirectory=function(options,cb){return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{username:{type:\"string\",message:\"username option is required\"},password:{type:\"string\",message:\"password option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),options.grantType=\"password\",this.oauthToken(options,cb)},Authentication.prototype.login=function(options,cb){return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{username:{type:\"string\",message:\"username option is required\"},password:{type:\"string\",message:\"password option is required\"},realm:{type:\"string\",message:\"realm option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),options.grantType=\"http://auth0.com/oauth/grant-type/password-realm\",this.oauthToken(options,cb)},Authentication.prototype.oauthToken=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"oauth\",\"token\"),body=objectHelper.merge(this.baseOptions,[\"clientID\",\"scope\",\"audience\"]).with(options),assert.check(body,{type:\"object\",message:\"options parameter is not valid\"},{clientID:{type:\"string\",message:\"clientID option is required\"},grantType:{type:\"string\",message:\"grantType option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"},audience:{optional:!0,type:\"string\",message:\"audience option is required\"}}),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),body=parametersWhitelist.oauthTokenParams(this.warn,body),this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.loginWithResourceOwner=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{username:{type:\"string\",message:\"username option is required\"},password:{type:\"string\",message:\"password option is required\"},connection:{type:\"string\",message:\"connection option is required\"},scope:{optional:!0,type:\"string\",message:\"scope option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"oauth\",\"ro\"),body=objectHelper.merge(this.baseOptions,[\"clientID\",\"scope\"]).with(options,[\"username\",\"password\",\"scope\",\"connection\",\"device\"]),(body=objectHelper.toSnakeCase(body,[\"auth0Client\"])).grant_type=body.grant_type||\"password\",this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.getSSOData=function(withActiveDirectories,cb){if(this.auth0||(this.auth0=new WebAuth(this.baseOptions)),windowHelper.getWindow().location.host===this.baseOptions.domain)return this.auth0._universalLogin.getSSOData(withActiveDirectories,cb);\"function\"==typeof withActiveDirectories&&(cb=withActiveDirectories),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"});var clientId=this.baseOptions.clientID,ssodataInformation=this.ssodataStorage.get()||{};this.auth0.checkSession({responseType:\"token id_token\",scope:\"openid profile email\",connection:ssodataInformation.lastUsedConnection,timeout:5e3},function(err,result){return err?\"login_required\"===err.error?cb(null,{sso:!1}):(\"consent_required\"===err.error&&(err.error_description=\"Consent required. When using `getSSOData`, the user has to be authenticated with the following scope: `openid profile email`.\"),cb(err,{sso:!1})):ssodataInformation.lastUsedSub&&ssodataInformation.lastUsedSub!==result.idTokenPayload.sub?cb(err,{sso:!1}):cb(null,{lastUsedConnection:{name:ssodataInformation.lastUsedConnection},lastUsedUserID:result.idTokenPayload.sub,lastUsedUsername:result.idTokenPayload.email||result.idTokenPayload.name,lastUsedClientID:clientId,sessionClients:[clientId],sso:!0})})},Authentication.prototype.userInfo=function(accessToken,cb){var url;return assert.check(accessToken,{type:\"string\",message:\"accessToken parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"userinfo\"),this.request.get(url).set(\"Authorization\",\"Bearer \"+accessToken).end(wrapCallback(cb,{ignoreCasing:!0}))},Authentication.prototype.getChallenge=function(cb){if(assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),!this.baseOptions.state)return cb();var url=urlJoin(this.baseOptions.rootUrl,\"usernamepassword\",\"challenge\");return this.request.post(url).send({state:this.baseOptions.state}).end(wrapCallback(cb,{ignoreCasing:!0}))},Authentication.prototype.delegation=function(options,cb){var url,body;return assert.check(options,{type:\"object\",message:\"options parameter is not valid\"},{grant_type:{type:\"string\",message:\"grant_type option is required\"}}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"delegation\"),body=objectHelper.merge(this.baseOptions,[\"clientID\"]).with(options),body=objectHelper.toSnakeCase(body,[\"auth0Client\"]),this.request.post(url).send(body).end(wrapCallback(cb))},Authentication.prototype.getUserCountry=function(cb){var url;return assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"user\",\"geoloc\",\"country\"),this.request.get(url).end(wrapCallback(cb))},Management.prototype.getUser=function(userId,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId),this.request.get(url).end(wrapCallback(cb,{ignoreCasing:!0}))},Management.prototype.patchUserMetadata=function(userId,userMetadata,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(userMetadata,{type:\"object\",message:\"userMetadata parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId),this.request.patch(url).send({user_metadata:userMetadata}).end(wrapCallback(cb,{ignoreCasing:!0}))},Management.prototype.patchUserAttributes=function(userId,user,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(user,{type:\"object\",message:\"user parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId),this.request.patch(url).send(user).end(wrapCallback(cb,{ignoreCasing:!0}))},Management.prototype.linkUser=function(userId,secondaryUserToken,cb){var url;return assert.check(userId,{type:\"string\",message:\"userId parameter is not valid\"}),assert.check(secondaryUserToken,{type:\"string\",message:\"secondaryUserToken parameter is not valid\"}),assert.check(cb,{type:\"function\",message:\"cb parameter is not valid\"}),url=urlJoin(this.baseOptions.rootUrl,\"users\",userId,\"identities\"),this.request.post(url).send({link_with:secondaryUserToken}).end(wrapCallback(cb,{ignoreCasing:!0}))};var index={Authentication:Authentication,Management:Management,WebAuth:WebAuth,version:version};export default index;export{Authentication,Management,WebAuth,version};\n//# sourceMappingURL=auth0.min.esm.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/auth0-js/dist/auth0.min.esm.js\n// module id = 730\n// module chunks = 0","define(function (require) {\n 'use strict';\n\n\t// @todo %hack% the implementation of /image needs work.\n\t// There is currently no way to store an updated model, representing the current user image\n\t// and taking into account that the user may update the his/her image multiple times on one page load.\n\n var Backbone = require('kvBackbone')\n\t, viewHelpers = require('viewHelpers')\n\t, $ = require('kvjQuery')\n\t, UpdateProfileFormView = require('hgn!./UpdateProfileFormView.mustache')\n\t, FormView = require('marionette.formView');\n\n return FormView.extend({\n\n template: UpdateProfileFormView\n\n\n\t , className: 'settingsForm'\n\n\n\t , events: {\n\t\t 'change .chooseFileInput': 'handleInputFileChange'\n\t\t , 'click .chooseImageButton': 'handleChooseImageButtonClick'\n\t\t\t, 'click .deleteImageButton': 'handleDeleteImageButtonClick'\n\t\t , 'click .resetImageButton': 'handleResetImageButtonClick'\n\t }\n\n\n\t , ui: {\n\t\t $resetImageButton: '.resetImageButton'\n\t\t , $deleteImageButton: '.deleteImageButton'\n\t\t , $chooseFileInput: '.chooseFileInput'\n\t }\n\n\n\t , handleDeleteImageButtonClick: function (event) {\n\t\t event.preventDefault();\n\t\t // @todo replace confirm with a custom ui control\n\t\t if (window.confirm('This will permanently delete your picture. Are you sure you want to do this?')) {\n\t\t\t this.model.getActionByName('deleteProfileImage').execute();\n\t\t }\n\t }\n\n\n\t , handleResetImageButtonClick: function () {\n\t\t this.updateProfileImage();\n\t\t this.clientImageModel.unset('fileData');\n\t }\n\n\n\t , handleInputFileChange: function (event) {\n\t\t event.preventDefault();\n\t\t var self = this;\n\n\t\t viewHelpers.readInputFile(event.target).done(function (data) {\n\t\t\t self.clientImageModel.set('fileData', data);\n\t\t });\n\t }\n\n\n\t , handleUpdateProfileError: function (model, jqXhr) {\n\t\t wwwApp.showApiError(jqXhr);\n\t }\n\n\n\t , handleUpdateProfileSync: function () {\n\t\t this.clientImageModel.updatePersistedImage();\n\t\t this.clientImageModel.unset('fileData');\n\n\t\t wwwApp.tipMsg('Your profile information has been updated');\n\t }\n\n\n\t , handleDeleteProfileImageError: function (model, jqXhr) {\n\t\t wwwApp.showApiError(jqXhr);\n\t }\n\n\n\t , handleDeleteProfileImageSync: function () {\n\t\t this.clientImageModel.setDefaultImage();\n\t\t this.clientImageModel.unset('fileData');\n\n\t\t wwwApp.tipMsg('Your profile image has been deleted');\n\t }\n\n\n\t , handlePersistedImageChange: function (model, val) {\n\t\t if (! val) {\n\t\t\t return;\n\t\t }\n\n\t\t this.updateLoggedInImage(val);\n\t\t this.updateProfileImage(val);\n\t\t if (model.isDefault()) {\n\t\t\t this.ui.$deleteImageButton.hide();\n\t\t } else {\n\t\t\t this.ui.$deleteImageButton.show();\n\t\t }\n\t }\n\n\n\t , handleFileDataChange: function (model, val) {\n\t\t this.updateProfileImage(val);\n\n\t\t if (val) {\n\t\t\t this.ui.$resetImageButton.show();\n\t\t } else {\n\t\t\t this.resetImageInput();\n\t\t\t this.ui.$resetImageButton.hide();\n\t\t }\n\t }\n\n\n\t , resetImageInput: function () {\n\t\t this.ui.$chooseFileInput.wrap('
        ').closest('form')[0].reset();\n\t\t this.ui.$chooseFileInput.unwrap();\n\t }\n\n\n\t /**\n\t * Update the user's logged in image in the UI.\n\t * @todo This logic should live a \"utilLinksView\"\n\t *\n\t * @param {String} src\n\t */\n\t , updateLoggedInImage: function (src) {\n\t\t return $('.logged-in-user-image').attr('src', src);\n\t }\n\n\n\t /**\n\t * Updates the user image in the UI\n\t *\n\t * @param {String} url\n\t */\n\t , updateProfileImage: function (src) {\n\t\t if (src) {\n\t\t\t return this.$('.profileImageWrapper img').attr('src', src);\n\t\t } else {\n\t\t\t return this.$('.profileImageWrapper img').attr('src', this.clientImageModel.get('persistedImage'));\n\t\t }\n\t }\n\n\t , getFileData: function () {\n\t\t return this.clientImageModel.get('fileData');\n\t }\n\n\n\t , serializeData: function () {\n\t\t var data;\n\n\t\t if (this.model) {\n\t\t\t data = {\n\t\t\t\t baseUrl: 'http://' + window.location.host + '/lender/'\n\t\t\t\t , showUpdateImageButton: Modernizr.filereader\n\t\t\t };\n\n\t\t\t return $.extend(this.model.toJSON(), data);\n\t\t }\n\t }\n\n\n\t , onRender: function () {\n\t\t this.updateProfileImage();\n\n\t\t this.clientImageModel.on('change:fileData', $.proxy(this.handleFileDataChange, this));\n\t\t this.clientImageModel.on('change:persistedImage', $.proxy(this.handlePersistedImageChange, this));\n\n\t\t this.ui.$resetImageButton.hide();\n\t\t this.clientImageModel.updatePersistedImage(this.imageModel.get('id'));\n\t }\n\n\n\t\t, stickThatShit: function() {\n\t\t\tvar self = this;\n\n\t\t\tthis.addStickit(this.accountModel, {\n\t\t\t\t'.linkToLenderProfile': {\n\t\t\t\t\tobserve: 'publicId'\n\t\t\t\t\t, updateView: false\n\t\t\t\t\t, updateModel: false\n\t\t\t\t\t, attributes: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'href'\n\t\t\t\t\t\t\t, observe: 'publicId'\n\t\t\t\t\t\t\t, onGet: function (value) {\n\t\t\t\t\t\t\t\treturn '/lender/' + value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t\t// Slightly different selector\n\t\t\t\t, 'a.linkToLenderProfile': {\n\t\t\t\t\tobserve: 'public'\n\t\t\t\t\t, updateModel: false\n\t\t\t\t\t, updateView: false\n\t\t\t\t\t, visible: true\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t // Get data for the country drop-down then display all our data in the form\n\t\t return $.getJSON(this.accountModel.links()[0].href)\n\t\t\t .done(function (countries) {\n\t\t\t\t self.addStickit(self.model, {\n\t\t\t\t\t '[name=\"country.isoCode\"]': {\n\t\t\t\t\t\t observe: 'country.isoCode'\n\t\t\t\t\t\t , selectOptions: {\n\t\t\t\t\t\t\t collection: function () {\n\t\t\t\t\t\t\t\t return $.map(countries, function (country) {\n\t\t\t\t\t\t\t\t\t return {value: country.iso_code, label: country.name};\n\t\t\t\t\t\t\t\t });\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t , defaultOption: {\n\t\t\t\t\t\t\t\t value: null\n\t\t\t\t\t\t\t\t , label: '-- --'\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t }\n\t\t\t\t\t }\n\t\t\t\t });\n\t\t\t });\n\t\t}\n\n , initialize: function () {\n var self = this\n\t , myAccountRequest = wwwApp.siren.resolve('my/account')\n , profileRequest = wwwApp.siren.resolve('my/account#profile')\n , imageRequest = wwwApp.siren.resolve('my/account#image');\n\n $.when(myAccountRequest, profileRequest, imageRequest)\n .done(function (accountModel, profileModel, imageModel) {\n var updateProfileAction = profileModel.getActionByName('updateProfile')\n\n // Let bbSiren know which model the following fields exist on.\n , fields = {\n 'name': {\n\t model: accountModel\n }\n , 'public': {\n\t\t model: accountModel\n }\n , 'image': {\n model: self.getFileData\n }\n\t\t , 'publicId': {\n\t\t\t model: accountModel\n\t\t }\n };\n\n\t\t self.imageModel = imageModel;\n\t\t self.accountModel = accountModel;\n\n\t\t // %HACK% to get around the fact that there is no server side `/image` endpoint that we can persist with/to\n\t\t var ClientImageModel = Backbone.Model.extend({\n\t\t\t defaultImageId: 726677\n\t\t\t , updatePersistedImage: function (image) {\n\t\t\t\t var url;\n\n\t\t\t\t if ($.isNumeric(image)) {\n\t\t\t\t\t url = wwwApp.imageUrl(image, 's100');\n\t\t\t\t } else if (image) {\n\t\t\t\t\t url = image;\n\t\t\t\t } else {\n\t\t\t\t\t url = this.get('fileData');\n\t\t\t\t }\n\n\t\t\t\t this.set('persistedImage', url);\n\t\t\t }\n\t\t\t , setDefaultImage: function () {\n\t\t\t\t this.updatePersistedImage(this.defaultImageId);\n\t\t\t }\n\t\t\t , isDefault: function () {\n\t\t\t\t var persistedImage = this.attributes.persistedImage;\n\n\t\t\t\t if (persistedImage) {\n\t\t\t\t\t return persistedImage.indexOf('/' + this.defaultImageId + '.') > -1;\n\t\t\t\t }\n\n\t\t\t\t return false;\n\t\t\t }\n\t\t });\n\n\t\t self.clientImageModel = new ClientImageModel();\n\t\t self.stickThatShit().done(function () {\n\t\t\t self.render();\n\t\t });\n\n self.initializeForm({action: updateProfileAction, fields: fields});\n\n\t\t self.listenTo(profileModel, 'sync:updateProfile', self.handleUpdateProfileSync);\n\t\t self.listenTo(profileModel, 'error:updateProfile', self.handleUpdateProfileError);\n\n\t\t self.listenTo(profileModel, 'sync:deleteProfileImage', self.handleDeleteProfileImageSync);\n\t\t self.listenTo(profileModel, 'error:deleteProfileImage', self.handleDeleteProfileImageError);\n })\n .fail(function () {\n\t\t\t\t\twwwApp.tipMsg('An error occurred. Please refresh the page and try again.', 'warning');\n });\n }\n });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/UpdateProfileFormView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        My Lender Profile

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\" \t\");t.b(\"\\n\" + i);t.b(\" \t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        (Must be a .gif, .jpg or .png)
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\tView your lender page »\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"baseUrl\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"\t \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        Your lender page will also include information about your loans, teams and accepted invitations. All posted information on Kiva falls under our Terms of Use.
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n

        My Lender Profile

        \\n
        \\n\\n
        \\n\\t\\n\\t
        \\n \\t\\n \\t\\n\\t\\t\\n\\t\\t\\n\\t\\t
        (Must be a .gif, .jpg or .png)
        \\n\\t
        \\n
        \\n\\n
        \\n\\t
        \\n\\t\\t\\n\\t\\tView your lender page »\\n\\t
        \\n\\t{{baseUrl}}\\n
        \\n\\n
        \\n \\n \\n
        \\n\\n
        \\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n\\n
        \\n \\n\\t \\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\\t\\n\\t\\n
        \\n\\n
        \\n\\t\\n
        \\n\\n
        Your lender page will also include information about your loans, teams and accepted invitations. All posted information on Kiva falls under our Terms of Use.
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/UpdateProfileFormView.mustache\n// module id = 732\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, Marionette = require('marionette')\n\t\t, UpdateDataSettingsFormView = require('./UpdateDataSettingsFormView');\n\n\treturn Marionette.View.extend({\n\n\t\t'className': 'xbLegacyNav'\n\n\t\t/**\n\t\t * Make sure to close all nested views as well\n\t\t */\n\t\t, onClose: function () {\n\t\t\t_.each(this.views, function (view) {\n\t\t\t\tview.close();\n\t\t\t});\n\t\t}\n\n\t\t, initialize: function () {\n\t\t\tvar self = this;\n\n\t\t\tthis.views = [];\n\t\t\tthis.views.push(new UpdateDataSettingsFormView());\n\n\t\t\t_.each(this.views, function (view) {\n\t\t\t\tself.$el.append(view.$el);\n\t\t\t});\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SettingsDataView.js","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t, gql = require('graphql-tag')\n\t\t, uri = require('simpleUri')\n\t\t, cookie = require('jscookie')\n\t\t, Backbone = require('backbone')\n\t\t, DecisionLightbox = require('lib/lightbox/DecisionLightBox')\n\t\t, Marionette = require('marionette')\n\t\t, Raven = require('raven')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\t\ttemplate: require('hgn!./UpdateDataSettingsFormView.mustache')\n\t\t, partials: {\n\t\t\t'molecules-loading-spinner': require('hgn!patterns/01-molecules/03-media/01-loading-spinner')\n\t\t}\n\n\t\t, tagName: 'div'\n\t\t, className: 'data-settings row collapse'\n\t\t, attributes: {\n\t\t\t'data-abide': 'ajax'\n\t\t\t, 'data-options': 'focus_on_invalid:false'\n\t\t}\n\n\t\t, ui: {\n\t\t\tcookie_opt_out: '.cookie-opt-out-input'\n\t\t\t, pii_sharing_opt_out: '.pii-sharing-opt-out-input'\n\t\t\t, submit: '.submit-form'\n\t\t\t, submit_save_data_label: '.submit-form .save-data'\n\t\t\t, submit_saving_label: '.submit-form .saving'\n\t\t}\n\n\t\t, model: new Backbone.Model()\n\n\t\t, events: {\n\t\t\t'click @ui.cookie_opt_out': '_changeCookieOptOut'\n\t\t\t, 'click @ui.pii_sharing_opt_out': '_changePiiSharingOptOut'\n\t\t\t, 'click @ui.submit': '_submitForm'\n\t\t\t, 'click .closeAccount': '_handleCloseAccountClick'\n\t\t}\n\n\t\t, modelEvents: {\n\t\t\t'change:local_cookie_opt_out': '_checkValuesChanged'\n\t\t\t, 'change:local_pii_sharing_opt_out': '_checkValuesChanged'\n\t\t}\n\n\t\t, gqlStateQuery: gql`\n\t\t\t{\n\t\t\t my {\n\t\t\t\tuserAccount {\n\t\t\t\t cookieOptOut\n\t\t\t\t piiSharingOptOut\n\t\t\t\t}\n\t\t\t }\n\t\t\t}\n\t\t\t`\n\n\t\t, _changeCookieOptOut: function (event) {\n\t\t\tthis._updateLocalValue(event.target.checked, 'my.userAccount.cookieOptOut', 'local_cookie_opt_out');\n\t\t}\n\n\t\t, _changePiiSharingOptOut: function (event) {\n\t\t\tthis._updateLocalValue(event.target.checked, 'my.userAccount.piiSharingOptOut', 'local_pii_sharing_opt_out');\n\t\t}\n\n\t\t/**\n\t\t * If value is different than model[remote_key] set model[local_key] = value.\n\t\t * If compare_value is not undefined, it is used for comparison instead of value.\n\t\t *\n\t\t * @param value {*}\n\t\t * @param remote_key {string}\n\t\t * @param local_key {string}\n\t\t * @param compare_value [{*}]\n\t\t * @private\n\t\t */\n\t\t, _updateLocalValue: function (value, remote_key, local_key, compare_value) {\n\t\t\tvar new_value = value;\n\t\t\tvar old_value = this.model.get(remote_key);\n\n\t\t\tcompare_value = typeof compare_value === 'undefined' ? new_value : compare_value;\n\n\t\t\tif (new_value !== null) {\n\t\t\t\tif (compare_value !== old_value) {\n\t\t\t\t\tthis.model.set(local_key, new_value);\n\t\t\t\t} else {\n\t\t\t\t\tthis.model.unset(local_key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// update ui state if any local values are set/unset\n\t\t, _checkValuesChanged: function () {\n\t\t\tthis._checkSubmitButton();\n\t\t}\n\n\t\t// update submit button state\n\t\t, _checkSubmitButton: function () {\n\t\t\tif (this._isSubmittable()) {\n\t\t\t\tthis.ui.submit.removeAttr('disabled');\n\t\t\t} else {\n\t\t\t\tthis.ui.submit.attr('disabled', 'disabled');\n\t\t\t}\n\t\t}\n\n\t\t, _submitForm: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (this._isSubmittable()) {\n\t\t\t\tvar self = this;\n\t\t\t\tthis.ui.submit_save_data_label.hide();\n\t\t\t\tthis.ui.submit_saving_label.show();\n\n\t\t\t\tvar localCookieValue = self.model.get('local_cookie_opt_out')\n\t\t\t\t\t, remoteCookieValue = (_.isNull(self.model.get('my.userAccount.cookieOptOut')) ? false : self.model.get('my.userAccount.cookieOptOut'))\n\t\t\t\t\t, localPiiSharingValue = self.model.get('local_pii_sharing_opt_out')\n\t\t\t\t\t, remotePiiSharingValue = self.model.get('my.userAccount.piiSharingOptOut');\n\n\t\t\t\tvar newCookieValue = typeof localCookieValue !== 'undefined' ? localCookieValue : remoteCookieValue\n\t\t\t\t\t, newPiiSharingValue =typeof localPiiSharingValue !== 'undefined' ? localPiiSharingValue : remotePiiSharingValue;\n\n\t\t\t\twwwApp.graphql.mutate({\n\t\t\t\t\tmutation: gql`\n\t\t\t\t\t\tmutation ($cookieOptOut: Boolean!, $piiSharingOptOut: Boolean!) {\n\t\t\t\t\t\t\tmy {\n\t\t\t\t\t\t\t\tupdateCookieOptOut(cookieOptOut: $cookieOptOut)\n\t\t\t\t\t\t\t\tupdatePiiSharingOptOut(piiSharingOptOut: $piiSharingOptOut)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}`\n\t\t\t\t\t, variables: {\n\t\t\t\t\t\tcookieOptOut: newCookieValue\n\t\t\t\t\t\t, piiSharingOptOut: newPiiSharingValue\n\t\t\t\t\t}\n\t\t\t\t\t, refetchQueries: [{\n\t\t\t\t\t\tquery: this.gqlStateQuery\n\t\t\t\t\t}]\n\t\t\t\t}).then(function () {\n\t\t\t\t\t// update cookie with opted out value if true, otherwise remove value\n\t\t\t\t\tvar kvgdpr = self._queryStringToJSON(cookie.get('kvgdpr'));\n\n\t\t\t\t\tif (self.model.get('local_cookie_opt_out') === true) {\n\t\t\t\t\t\tkvgdpr.opted_out = 'true';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete kvgdpr.opted_out;\n\t\t\t\t\t}\n\n\t\t\t\t\tcookie.set('kvgdpr', $.param(kvgdpr), 31536000);\n\n\t\t\t\t\twwwApp.tipMsg('Your cookie preferences has been saved', 'confirmation');\n\n\t\t\t\t\t// prefill apollo store with expected results for state query\n\t\t\t\t\twwwApp.graphql.writeQuery({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tmy: {\n\t\t\t\t\t\t\t\tuserAccount: {\n\t\t\t\t\t\t\t\t\tcookieOptOut: newCookieValue\n\t\t\t\t\t\t\t\t\t, piiSharingOptOut: newPiiSharingValue\n\t\t\t\t\t\t\t\t\t, __typename: 'UserAccount'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t,__typename: 'My'\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t, query: self.gqlStateQuery\n\t\t\t\t\t});\n\t\t\t\t}).catch(function (response) {\n\t\t\t\t\tif (response && response.errors) {\n\t\t\t\t\t\tfor (var i = 0; i < response.errors.length; i++) {\n\t\t\t\t\t\t\tswitch(response.errors[i].code) {\n\t\t\t\t\t\t\t\tcase 'api.authenticationRequired':\n\t\t\t\t\t\t\t\t\treturn wwwApp.showLogin();\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\twwwApp.tipMsg('Your changes couldn\\'t be saved because your data settings couldn\\'t be found', 'warning');\n\t\t\t\t\t\t\t\t\tRaven.captureException(new Error(response.errors[i].code + ': ' + response.errors[i].message));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (response instanceof Error) {\n\t\t\t\t\t\tRaven.captureException(response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log(arguments);\n\t\t\t\t\t}\n\t\t\t\t\twwwApp.tipMsg('There was an error trying to save your data settings. Please try again later.', 'error');\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t, _handleCloseAccountClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar self = this;\n\t\t\tDecisionLightbox.render({\n\t\t\t\tlightboxId: 'close-account-confirmation'\n\n\t\t\t\t, title: 'Are you sure?'\n\t\t\t\t, message: 'By clicking \"yes\" to close your account, you agree that your current account balance and future loan repayments (if any) will be automatically donated to Kiva\\'s operating expenses. After your account is closed you\\'ll be unable to access your past lending activity and you\\'ll be removed from Kiva\\'s email lists. This action cannot be undone.'\n\n\t\t\t\t, mainOptionButtonText : 'Yes, close my account'\n\t\t\t\t, onClickMain: function () {\n\t\t\t\t\tself._closeAccount();\n\t\t\t\t}\n\n\t\t\t\t, alternativeOptionButtonText: 'No, go back'\n\t\t\t});\n\n\t\t\t// add xb styling\n\t\t\t$('.reveal-modal-bg').addClass('xbLegacyNav');\n\t\t}\n\n\t\t, _closeAccount: function() {\n\t\t\tvar crumb_string = wwwApp.cookie.get('kvis').replace('crumb=','');\n\n\t\t\t$.ajax({\n\t\t\t\t\turl: wwwApp.ajaxUrl('closeUserAccount'),\n\t\t\t\t\tdata: {crumb: crumb_string},\n\t\t\t\t\ttype: 'POST'}\n\t\t\t\t)\n\t\t\t\t.done(function(result) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresult = JSON.parse(result);\n\t\t\t\t\t\tif (result.errors) {\n\t\t\t\t\t\t\tif (result.errors === 'api.authenticationRequired') {\n\t\t\t\t\t\t\t\treturn wwwApp.showLogin(null, 'recent');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (result.errors === 'org.kiva.EmailVerificationRequired') {\n\t\t\t\t\t\t\t\treturn wwwApp.redirect('ui', 'start-verification', null, {\n\t\t\t\t\t\t\t\t\tdoneUrl: uri().href,\n\t\t\t\t\t\t\t\t\tprocess: 'closing your account',\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar msg = result.errors !== 'FAIL' ? result.errors : 'There was an error trying to close your account';\n\t\t\t\t\t\t\treturn wwwApp.tipMsg(msg, 'error');\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t// no-op\n\t\t\t\t\t}\n\t\t\t\t\t// only redirect on success\n\t\t\t\t\t// this is going to redirect to cancelled account info page if the ajax call returns before the kiva app forces the redirect\n\t\t\t\t\twwwApp.redirect('account', 'closeAccountPage');\n\t\t\t\t})\n\n\t\t\t\t// on error have a tip message\n\t\t\t\t.error(function(error) {\n\t\t\t\t\twwwApp.tipMsg('There was an error trying to close your account', 'error');\n\t\t\t\t});\n\t\t}\n\n\t\t, _isChanged: function () {\n\t\t\treturn this.model.has('local_cookie_opt_out') || this.model.has('local_pii_sharing_opt_out');\n\t\t}\n\n\t\t, _isSubmittable: function () {\n\t\t\treturn this._isChanged();\n\t\t}\n\n\t\t, _queryStringToJSON: function(qs) {\n\t\t\tqs = qs || location.search.slice(1);\n\n\t\t\tvar pairs = qs.split('&');\n\t\t\tvar result = {};\n\t\t\tpairs.forEach(function(p) {\n\t\t\t\tvar pair = p.split('=');\n\t\t\t\tvar key = pair[0];\n\t\t\t\tvar value = decodeURIComponent(pair[1] || '');\n\n\t\t\t\tif (result[key]) {\n\t\t\t\t\tif (Object.prototype.toString.call(result[key]) === '[object Array]') {\n\t\t\t\t\t\tresult[key].push(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult[key] = [result[key], value];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresult[key] = value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn JSON.parse(JSON.stringify(result));\n\t\t}\n\n\t\t/**\n\t\t * @returns {{}}\n\t\t */\n\t\t, serializeData: function () {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tif (!data.my) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t{\n\t\t\t\t\tcookie_opt_out: (_.isNull(data.my.userAccount.cookieOptOut) ? false : data.my.userAccount.cookieOptOut)\n\t\t\t\t\t, pii_sharing_opt_out: data.my.userAccount.piiSharingOptOut || false\n\t\t\t\t\t, legal_cookie_url: wwwApp.url('about', 'cookiePolicy')\n\t\t\t\t\t, legal_pii_data_url: wwwApp.url('about', 'privacyPolicy')\n\t\t\t\t\t, withdraw_funds_url: wwwApp.url('withdraw', 'withdraw')\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t */\n\t\t, initialize: function () {\n\t\t\tvar self = this;\n\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\n\t\t\tthis.stateWatcher = wwwApp.graphql.watchQuery({ query: this.gqlStateQuery });\n\n\t\t\tthis.stateWatcher.subscribe({\n\t\t\t\tnext: function (response) {\n\t\t\t\t\tself.model.clear({silent: true});\n\t\t\t\t\tself.model.set(response.data, {silent: true});\n\t\t\t\t\tself.render();\n\t\t\t\t}\n\t\t\t\t, error: function (response) {\n\t\t\t\t\tif (response && response.errors) {\n\t\t\t\t\t\tfor(var i = 0; i < response.errors.length; i++) {\n\t\t\t\t\t\t\tswitch(response.errors[i].code) {\n\t\t\t\t\t\t\t\tcase 'api.authenticationRequired':\n\t\t\t\t\t\t\t\t\treturn wwwApp.showLogin();\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tRaven.captureException(new Error(response.errors[i].code + ': ' + response.errors[i].message));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (response instanceof Error) {\n\t\t\t\t\t\tRaven.captureException(response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log(arguments);\n\t\t\t\t\t}\n\n\t\t\t\t\t// hide the loading spinner if we haven't rendered yet\n\t\t\t\t\tif (!self.$('h3').length) {\n\t\t\t\t\t\tself.$el.html('');\n\t\t\t\t\t}\n\n\t\t\t\t\twwwApp.tipMsg('There was an error loading data settings information. Please reload the page.', 'error');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/UpdateDataSettingsFormView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Manage your data settings on Kiva or close your account\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Cookie preferences\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" Opt out of non-essential analytics and marketing cookies.
        \");t.b(\"\\n\" + i);t.b(\" This setting will be applied automatically whenever you sign into your account and will override any session-based cookie settings.
        \");t.b(\"\\n\" + i);t.b(\" Learn more about our Cookie Policy and manage session-based cookies here.\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Advertising data sharing preferences\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" Opt out of sharing your data with third parties for advertising purposes.
        \");t.b(\"\\n\" + i);t.b(\" Learn more in the \\\"How Kiva Uses Your Personal Information\\\" section of Kiva's privacy policy.\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Account termination\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" Permanently delete your Kiva account and all personally identifying information associated with your account.\");t.b(\"\\n\" + i);t.b(\" When you delete your account, you'll authorize any current balance and future repayments on your outstanding loans to be donated to Kiva.\");t.b(\"\\n\" + i);t.b(\" If you'd like your current balance returned to you, please withdraw funds prior to deleting your account.\");t.b(\"\\n\" + i);t.b(\" After deleting your account you'll be unable to access your past lending activity.\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {\"\\n Manage your data settings on Kiva or close your account\\n

        \\n
        \\n
        \\n

        \\n Cookie preferences\\n

        \\n
        \\n
        \\n
        \\n
        \\n \\n
        \\n
        \\n Opt out of non-essential analytics and marketing cookies.
        \\n This setting will be applied automatically whenever you sign into your account and will override any session-based cookie settings.
        \\n Learn more about our Cookie Policy and manage session-based cookies here.\\n
        \\n
        \\n
        \\n
        \\n
        \\n\\n
        \\n\\n
        \\n

        \\n Advertising data sharing preferences\\n

        \\n
        \\n
        \\n
        \\n
        \\n \\n
        \\n
        \\n Opt out of sharing your data with third parties for advertising purposes.
        \\n Learn more in the \\\"How Kiva Uses Your Personal Information\\\" section of Kiva's privacy policy.\\n
        \\n
        \\n
        \\n
        \\n
        \\n\\n
        \\n
        \\n \\n
        \\n
        \\n\\n
        \\n\\n
        \\n

        \\n Account termination\\n

        \\n
        \\n
        \\n
        \\n
        \\n Permanently delete your Kiva account and all personally identifying information associated with your account.\\n When you delete your account, you'll authorize any current balance and future repayments on your outstanding loans to be donated to Kiva.\\n If you'd like your current balance returned to you, please withdraw funds prior to deleting your account.\\n After deleting your account you'll be unable to access your past lending activity.\\n

        \\n \\n
        \\n
        \\n
        \\n
        \\n
        \\n\\n
        \\n
        \\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/UpdateDataSettingsFormView.mustache\n// module id = 735\n// module chunks = 0","define(function (require) {\n 'use strict';\n\n var _ = require('underscore')\n\t\t, Marionette = require('marionette')\n\t\t, UpdateUserFundAccountFormView = require('./UpdateUserFundAccountFormView')\n\t\t, AutolendRedirectView = require('./AutolendRedirect')\n\t\t, SubscriptionsRedirectView = require('./SubscriptionsRedirect');\n\n\n return Marionette.View.extend({\n\n attributes: {\n 'class': 'creditSettingsView'\n }\n\n , render: function () {\n\t\t var self = this;\n\n\t\t this.views = [];\n\n\t\t\tthis.views.push(new SubscriptionsRedirectView());\n\n\t\t\tthis.views.push(new AutolendRedirectView({isMonthlyGoodSubscriber: this.options.is_subscriber}));\n\t\t\t\n\t\t this.views.push(new UpdateUserFundAccountFormView());\n\n\t\t\t_.each(this.views, function (view) {\n\t\t\t self.$el.append(view.$el);\n\t\t });\n }\n });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SettingsCreditView.js","define(function (require) {\n 'use strict';\n\n\tvar Marionette = require('marionette')\n\t, FormView = require('marionette.formView')\n\t, UpdateUserFundAccountFormView\t= require('hgn!./UpdateUserFundAccountFormView.mustache');\n\n\treturn FormView.extend({\n\n template: UpdateUserFundAccountFormView\n\t , className: 'settingsForm'\n\n\n\t , handleUpdateUserFundAccountSync: function () {\n\t\t wwwApp.tipMsg('Your settings have been saved.');\n\t }\n\n\n\t , handleUpdateUserFundAccountError: function (model, jqXhr) {\n\t\t wwwApp.showApiError(jqXhr, { process: 'updating your repayment and inactivity settings' });\n\t }\n\n\n , initialize: function () {\n var self = this;\n\n\t\t\twwwApp.siren.resolve('my/account#defaultFundAccount')\n .done(function (defaultFundAccount) {\n var updateUserFundAccountAction = defaultFundAccount.getActionByName('updateUserFundAccount');\n\n self.initializeForm({action: updateUserFundAccountAction});\n\t\t self.addStickit(defaultFundAccount, {\n\t\t\t '.inactiveCreditEmailControlSet': {\n\t\t\t\t observe: 'account.inactiveCreditRecipient'\n\t\t\t\t , updateModel: false\n\t\t\t\t , updateView: false\n\t\t\t\t , visible: function (val) {\n\t\t\t\t\t return val == 'email_address';\n\t\t\t\t }\n\t\t\t }\n\t\t });\n\n\t\t self.listenTo(defaultFundAccount, 'sync:updateUserFundAccount', self.handleUpdateUserFundAccountSync);\n\t\t self.listenTo(defaultFundAccount, 'error:updateUserFundAccount', self.handleUpdateUserFundAccountError);\n\n self.render();\n })\n .fail(function () {\n\t\t wwwApp.tipMsg('There was an error loading the page, please try again.', 'warning');\n });\n }\n });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/UpdateUserFundAccountFormView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        Repayment settings

        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        When my loans are repaid:
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"

        Inactivity settings

        \");t.b(\"\\n\" + i);t.b(\"
        If my account becomes inactive:
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\" \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"

        Repayment settings

        \\n\\n
        When my loans are repaid:
        \\n
        \\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n
        \\n\\n

        Inactivity settings

        \\n
        If my account becomes inactive:
        \\n
        \\n
        \\n \\n \\n
        \\n\\n
        \\n \\n \\n
        \\n
        \\n\\n
        \\n\\t\\n\\t\\n
        \\n\\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/UpdateUserFundAccountFormView.mustache\n// module id = 738\n// module chunks = 0","define(function (require) {\n 'use strict';\n\n var $ = require('kvjQuery')\n , Marionette = require('marionette')\n , AutolendLink = require('hgn!./AutolendRedirect.mustache');\n\n\n return Marionette.View.extend({\n\n template: AutolendLink\n\n , className: 'settingsForm lessPadding'\n\n , render: function (templateVariables) {\n var html = this.template.render(templateVariables);\n this.$el.html(html);\n }\n\n , initialize: function (templateVariables) {\n this.render(templateVariables);\n }\n });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/AutolendRedirect.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        Auto-lending settings

        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"isMonthlyGoodSubscriber\",c,p,1),c,p,0,155,283,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Auto-lending is not available to users with a Monthly Good subscription.\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"isMonthlyGoodSubscriber\",c,p,1),c,p,1,0,0,\"\")){t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Turn auto-lending on or off and customize how your balance is put to work\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);};t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n

        Auto-lending settings

        \\n\\n
        \\n\\t {{#isMonthlyGoodSubscriber}}\\n

        \\n Auto-lending is not available to users with a Monthly Good subscription.\\n

        \\n \\t{{/isMonthlyGoodSubscriber}}\\n {{^isMonthlyGoodSubscriber}}\\n

        \\n Turn auto-lending on or off and customize how your balance is put to work\\n

        \\n \\t{{/isMonthlyGoodSubscriber}}\\n
        \\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/AutolendRedirect.mustache\n// module id = 740\n// module chunks = 0","define(function (require) {\n 'use strict';\n\n var $ = require('kvjQuery')\n , Marionette = require('marionette')\n , SubscriptionsLink = require('hgn!./SubscriptionsRedirect.mustache');\n\n\n return Marionette.View.extend({\n\n template: SubscriptionsLink\n\n , className: 'settingsForm lessPadding'\n\n , render: function () {\n var html = this.template.render();\n this.$el.html(html);\n }\n\n , initialize: function () {\n this.render();\n }\n });\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SubscriptionsRedirect.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"

        Subscriptions settings

        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\" Manage your Monthly Good or Auto Deposit settings\");t.b(\"\\n\" + i);t.b(\"

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n
        \\n\\n

        Subscriptions settings

        \\n\\n \\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/SubscriptionsRedirect.mustache\n// module id = 742\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Backbone = require('kvBackbone')\n\t, Marionette = require('marionette')\n\t, AvailableKivaCreditView = require('./AvailableKivaCreditView')\n\t, $ = require('kvjQuery')\n\t, SettingsCreditSidebarViewStache = require('hgn!components/Settings/SettingsCreditSidebarView.mustache');\n\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: SettingsCreditSidebarViewStache\n\n\n\t\t, events: {\n\t\t\t'click .learnMore': 'handleLearnMoreClick'\n\t\t}\n\n\t\t, model: new Backbone.Model()\n\n\n\t\t, handleLearnMoreClick: function (event) {\n\t\t\tvar hash = event.target.getAttribute('href');\n\n\t\t\tevent.preventDefault();\n\n\t\t\t// @todo temporary solution for figuring out why some clients are returning NULL for the href property\n\t\t\tif (hash) {\n\t\t\t\tthis.showLightbox(hash.slice(1));\n\t\t\t} else {\n\t\t\t\tthrow new Error('unable to get href from: ' + event.target.outerHTML);\n\t\t\t}\n\t\t}\n\n\t\t, showLightbox: function(name) {\n\t\t\tif (name == 'whatIsAutoLending') {\n\t\t\t\t$.colorbox({href: '/ajax/sfSolution/50150000000SrTp', width: 500, className: 'settingsModule'});\n\t\t\t} else {\n\t\t\t\t$.colorbox({href: '.' + name + 'Lightbox', inline: true, width: 400, className: 'settingsModule'});\n\t\t\t}\n\n\t\t}\n\n\t\t, onRender: function () {\n\t\t\tthis.$el.prepend(this.availableKivaCreditView.$el);\n\t\t}\n\n\n\t\t, initialize: function (options) {\n\t\t\tthis.availableKivaCreditView = new AvailableKivaCreditView();\n\t\t\tthis.availableKivaCreditView.render();\n\t\t\tthis.model.set('is_auto_deposit_active', !!options.is_auto_deposit_active);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/SettingsCreditSidebarView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t, $ = require('kvjQuery')\n\t, numeral = require('numeral')\n\t, AvailableKivaCreditView = require('hgn!./AvailableKivaCreditView.mustache');\n\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: AvailableKivaCreditView\n\n\t\t, events: {\n\t\t\t'click .kivaCreditNumber': 'handleKivaCreditClick'\n\t\t}\n\n\n\t\t, handleKivaCreditClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.showMyCreditSummaryLightbox();\n\t\t}\n\n\n\t\t, showMyCreditSummaryLightbox: function () {\n\t\t\t$.colorbox({href: '/ajax/myCreditSummary'}).resize();\n\t\t}\n\n\n\t\t, onRender: function () {\n\t\t\tif (! this.model) {\n\t\t\t\tthis.$el.html(wwwApp.ajaxIndicator());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.stickit(this.model, {\n\t\t\t\t'.kivaCreditNumber': {\n\t\t\t\t\tobserve: 'account.balance.amount'\n\t\t\t\t\t, onGet: function (val) {\n\t\t\t\t\t\treturn numeral(val).format('$0,0.00');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\tvar self = this;\n\n\t\t\twwwApp.siren.resolve('my/account#defaultFundAccount')\n\t\t\t\t.done(function (defaultFundAccountModel) {\n\t\t\t\t\tself.model = defaultFundAccountModel;\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Settings/AvailableKivaCreditView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t
        Available Kiva credit
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t
        • Add credit
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        • Donate
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        • Kiva gifts
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        • Withdraw
        • \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        \\n\\t
        Available Kiva credit
        \\n
        \\n\\n
        \\n\\t\\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/AvailableKivaCreditView.mustache\n// module id = 745\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        Important note:
        \");t.b(\"\\n\" + i);t.b(\"\t

        If you haven’t set an inactivity preference or don’t provide a valid PayPal account, Kiva may be required to send your funds to a state government if your account becomes inactive. Learn more

        \");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        FAQ
        \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        How does Kiva use donations?

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        100% of every dollar you lend on Kiva goes directly to funding loans. We rely on small optional donations from you and others to keep Kiva running.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Every $1 donated to Kiva makes $8 in loans possible around the world. Your donation will enable us to:

        \");t.b(\"\\n\" + i);t.b(\"\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Send expert staff to over 60 countries to vet and monitor loans and partners.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Build and maintain a website that facilitates over $1 million in loans each week.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Provide comprehensive customer support to thousands of lenders worldwide.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Train and support hundreds of volunteers -- 4 for every 1 staff member at Kiva.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        If you live in the United States, your donation is tax-deductible. Thank you for considering a donation to Kiva.

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        What is inactive withdrawal?

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        If your account becomes inactive, you can choose to have Kiva send your remaining Kiva credit to a PayPal account of your choosing. Just select “Return my Kiva credit to my PayPal account” and enter the email address you use on PayPal.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Remember, there are other options for your credit if your account becomes inactive:

        \");t.b(\"\\n\" + i);t.b(\"\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • You can automatically make a donation to Kiva’s operating expenses.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • You can enable auto lending. Click here to change your auto lending settings.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        If we are unable to send Kiva credit to your PayPal account (i.e. we have the wrong email address), automatic withdrawal may not be available to you. If you have questions about this, please contact Kiva’s Community Support team.

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Inactive credit and abandoned property laws.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Organizations like Kiva are required by many state governments to turn over unclaimed property for safekeeping after several years. This may affect Kiva lenders who have Kiva credit in their accounts if they become inactive.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Kiva accounts are considered inactive if they aren’t used or modified for 24 consecutive months. The great news is that you only need to log in to keep your account active!

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        You'll receive emails from Kiva if you've been inactive to remind you to use your Kiva credit. You can also choose to have your funds automatically lent with our auto lending tool, donated to Kiva's operating expenses or withdrawn into a PayPal account.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        We want to make sure you have every opportunity to use your Kiva credit while you still can – helping make an impact in the lives of borrowers around the world!

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Inactive credit and abandoned property laws

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Organizations like Kiva are required by many state governments to turn over unclaimed property to the state for safekeeping after several years.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        If your account becomes inactive, Kiva will need instructions for what to do with any funds left in your account.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Kiva accounts are considered inactive for purposes of unclaimed property laws if they have no activity for 24 consecutive months.

        \");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t

        “Activity” includes things like logins, loan purchases (even via autolending), repayments, and withdrawals.

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        If you haven’t selected an option in your account settings for inactivity, or if you have asked us to return your remaining credit to you but you haven’t provided a valid PayPal account for withdrawals, Kiva will send your funds to your home state for safekeeping (or to the state of California if we do not know your location).

        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.f(\"is_auto_deposit_active\",c,p,1),c,p,0,4878,5301,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t

        Auto Deposits

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t

        An auto deposit allows you to automatically add money to your Kiva account every month via PayPal, making it easier for you to lend to the borrowers that inspire you the most. When you set up an auto deposit you also have the option to make an automatic donation to Kiva with each new contribution.

        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"is_auto_deposit_active\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\t

        Subscriptions

        \");t.b(\"\\n\" + i);t.b(\"\t\t\t

        Set up a subscription to automatically make monthly deposits to your Kiva account and/or monthly donations to Kiva's operating expenses.

        \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);};t.b(\"
        \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t
        Important note:
        \\n\\t

        If you haven’t set an inactivity preference or don’t provide a valid PayPal account, Kiva may be required to send your funds to a state government if your account becomes inactive. Learn more

        \\n
        \\n\\n
        \\n\\t
        FAQ
        \\n\\t\\n
        \\n\\n
        \\n\\t
        \\n\\t\\t

        How does Kiva use donations?

        \\n\\t\\t

        100% of every dollar you lend on Kiva goes directly to funding loans. We rely on small optional donations from you and others to keep Kiva running.

        \\n\\t\\t

        Every $1 donated to Kiva makes $8 in loans possible around the world. Your donation will enable us to:

        \\n\\t\\t
          \\n\\t\\t\\t
        • Send expert staff to over 60 countries to vet and monitor loans and partners.
        • \\n\\t\\t\\t
        • Build and maintain a website that facilitates over $1 million in loans each week.
        • \\n\\t\\t\\t
        • Provide comprehensive customer support to thousands of lenders worldwide.
        • \\n\\t\\t\\t
        • Train and support hundreds of volunteers -- 4 for every 1 staff member at Kiva.
        • \\n\\t\\t
        \\n\\t\\t

        If you live in the United States, your donation is tax-deductible. Thank you for considering a donation to Kiva.

        \\n\\t
        \\n\\n\\t
        \\n\\t\\t

        What is inactive withdrawal?

        \\n\\t\\t

        If your account becomes inactive, you can choose to have Kiva send your remaining Kiva credit to a PayPal account of your choosing. Just select “Return my Kiva credit to my PayPal account” and enter the email address you use on PayPal.

        \\n\\t\\t

        Remember, there are other options for your credit if your account becomes inactive:

        \\n\\t\\t
          \\n\\t\\t\\t
        • You can automatically make a donation to Kiva’s operating expenses.
        • \\n\\t\\t\\t
        • You can enable auto lending. Click here to change your auto lending settings.
        • \\n\\t\\t
        \\n\\t\\t

        If we are unable to send Kiva credit to your PayPal account (i.e. we have the wrong email address), automatic withdrawal may not be available to you. If you have questions about this, please contact Kiva’s Community Support team.

        \\n\\t
        \\n\\n\\t
        \\n\\t\\t

        Inactive credit and abandoned property laws.

        \\n\\t\\t

        Organizations like Kiva are required by many state governments to turn over unclaimed property for safekeeping after several years. This may affect Kiva lenders who have Kiva credit in their accounts if they become inactive.

        \\n\\t\\t

        Kiva accounts are considered inactive if they aren’t used or modified for 24 consecutive months. The great news is that you only need to log in to keep your account active!

        \\n\\t\\t

        You'll receive emails from Kiva if you've been inactive to remind you to use your Kiva credit. You can also choose to have your funds automatically lent with our auto lending tool, donated to Kiva's operating expenses or withdrawn into a PayPal account.

        \\n\\t\\t

        We want to make sure you have every opportunity to use your Kiva credit while you still can – helping make an impact in the lives of borrowers around the world!

        \\n\\t
        \\n\\n\\t
        \\n\\t\\t

        Inactive credit and abandoned property laws

        \\n\\t\\t

        Organizations like Kiva are required by many state governments to turn over unclaimed property to the state for safekeeping after several years.

        \\n\\t\\t

        If your account becomes inactive, Kiva will need instructions for what to do with any funds left in your account.

        \\n\\t\\t

        Kiva accounts are considered inactive for purposes of unclaimed property laws if they have no activity for 24 consecutive months.

        \\n\\t\\t\\n\\t\\t

        “Activity” includes things like logins, loan purchases (even via autolending), repayments, and withdrawals.

        \\n\\t\\t

        If you haven’t selected an option in your account settings for inactivity, or if you have asked us to return your remaining credit to you but you haven’t provided a valid PayPal account for withdrawals, Kiva will send your funds to your home state for safekeeping (or to the state of California if we do not know your location).

        \\n\\t
        \\n\\n\\t{{#is_auto_deposit_active}}\\n\\t\\t
        \\n\\t\\t\\t

        Auto Deposits

        \\n\\t\\t\\t

        An auto deposit allows you to automatically add money to your Kiva account every month via PayPal, making it easier for you to lend to the borrowers that inspire you the most. When you set up an auto deposit you also have the option to make an automatic donation to Kiva with each new contribution.

        \\n\\t\\t
        \\n\\t{{/is_auto_deposit_active}}\\n\\t{{^is_auto_deposit_active}}\\n\\t\\t
        \\n\\t\\t\\t

        Subscriptions

        \\n\\t\\t\\t

        Set up a subscription to automatically make monthly deposits to your Kiva account and/or monthly donations to Kiva's operating expenses.

        \\n\\t\\t
        \\n\\t{{/is_auto_deposit_active}}\\n
        \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Settings/SettingsCreditSidebarView.mustache\n// module id = 746\n// module chunks = 0","define(function () {\n\t'use strict';\n\n\tvar _ = require('underscore');\n\tvar Marionette = require('marionette');\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'settings/account': 'showSettingsAccountView'\n\t\t\t, 'settings/credit': 'showSettingsCreditView'\n\t\t\t, 'settings/data': 'showSettingsDataView'\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./routers/SettingsRouter.js","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t, Raven = require('raven')\n\t, $ = require('kvjQuery')\n\t, Marionette = require('marionette')\n\t, TeamActivityView = require('views/Team/TeamActivityView')\n\t, Dropdown = require('dropdown');\n\n\treturn Marionette.Controller.extend({\n\n\n\t\t/**\n\t\t * Given a teams collection, will recursively resolve any \"next\" links\n\t\t *\n\t\t * @param {Backbone.Collection} myTeamsCollection\n\t\t * @returns {Promise}\n\t\t */\n\t\tresolveNextTeams: function (myTeamsCollection) {\n\t\t\tvar nextUrl = myTeamsCollection.link('next')\n\t\t\t, fullCollectionUrl;\n\n\t\t\tif (nextUrl) {\n\t\t\t\t// Resolve the next teams\n\t\t\t\treturn wwwApp.siren.resolve(nextUrl).then(this.resolveNextTeams);\n\t\t\t} else {\n\t\t\t\t// No more teams to resolve. Resolve the request with the full collection\n\t\t\t\tfullCollectionUrl = myTeamsCollection.link('self');\n\t\t\t\treturn new $.Deferred().resolve(wwwApp.siren.store.get(fullCollectionUrl));\n\t\t\t}\n\t\t}\n\n\n\t\t, myTeamsRequestFail: function (errorModel) {\n\t\t\tvar errorString = JSON.stringify(errorModel.toJSON());\n\t\t\tRaven.captureMessage('There was an error loading teams: ' + errorString, {level: 'info'});\n\t\t\twwwApp.tipMsg('There was an error loading your teams. Please try again.', 'warning');\n\t\t}\n\n\n\t\t, activitiesRequestFail: function (errorModel) {\n\t\t\tvar errorString = JSON.stringify(errorModel.toJSON());\n\t\t\tRaven.captureMessage('There was an error loading the activity feed: ' + errorString, {level: 'info'});\n\t\t\twwwApp.tipMsg('There was an error loading your activity feed. Please try again.', 'warning');\n\t\t}\n\n\n\t\t, showTeamActivityFeed: function () {\n\t\t\tvar myTeamsRequest, activitiesRequest;\n\n\t\t\t_.bindAll(this\n\t\t\t\t, 'resolveNextTeams'\n\t\t\t);\n\n\t\t\tthis.dropdown = new Dropdown('#topSecondaryNav');\n\n\t\t\t// Redefine the mainRegion\n\t\t\t// @todo - shouldn't have to redefine the mainRegion, this is sloppy\n\t\t\twwwApp.mainRegion = new Marionette.Region({\n\t\t\t\tel: '#main'\n\t\t\t});\n\n\t\t\tmyTeamsRequest = wwwApp.siren.resolve('my/teams')\n\t\t\t\t.then(this.resolveNextTeams)\n\t\t\t\t.fail(this.myTeamsRequestFail);\n\n\n\t\t\tactivitiesRequest = wwwApp.siren.resolve('my/feed', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tq: 'actions:team_message'\n\t\t\t\t\t}\n\t\t\t\t}).fail(this.activitiesRequestFail);\n\n\t\t\t$.when(myTeamsRequest, activitiesRequest).done(function (myTeamsCollection, activitiesCollection) {\n\t\t\t\tvar teamActivityView = new TeamActivityView({\n\t\t\t\t\tmyTeamsCollection: myTeamsCollection\n\t\t\t\t\t, activitiesCollection: activitiesCollection\n\t\t\t\t});\n\n\t\t\t\twwwApp.mainRegion.show(teamActivityView);\n\t\t\t});\n\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./controllers/TeamActivityController.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"hasTeams\",c,p,1),c,p,0,56,134,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t

        There aren't any recent activities in your feed

        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"hasTeams\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t

        You haven't joined a team...yet!

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Lending teams are self-organized groups where members connect and rally around shared lending goals. Joining a lending team gives you a chance to:

        \");t.b(\"\\n\" + i);t.b(\"\t\t
          \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Connect with other lenders on team message boards.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Join forces to get loans funded faster
        • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
        • Discover the impact a group of individuals can have when working together.
        • \");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);};t.b(\"
        \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
        \");t.b(\"\\n\" + i);t.b(\"\t
        \");t.b(\"\\n\" + i);if(t.s(t.f(\"hasTeams\",c,p,1),c,p,0,729,939,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t

        About Teams

        \");t.b(\"\\n\" + i);t.b(\"\t\t

        Lending teams are self-organized groups where members connect and rally around shared lending goals. Learn more

        \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"hasTeams\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);t.b(\"\t\t\tExplore All Teams\");t.b(\"\\n\" + i);t.b(\"\t\t
        \");t.b(\"\\n\" + i);};t.b(\"
        \");return t.fl(); },partials: {}, subs: { }}, \"
        \\n\\t{{#hasTeams}}\\n\\t\\t

        There aren't any recent activities in your feed

        \\n\\t{{/hasTeams}}\\n\\t{{^hasTeams}}\\n\\t\\t

        You haven't joined a team...yet!

        \\n\\t\\t

        Lending teams are self-organized groups where members connect and rally around shared lending goals. Joining a lending team gives you a chance to:

        \\n\\t\\t
          \\n\\t\\t\\t
        • Connect with other lenders on team message boards.
        • \\n\\t\\t\\t
        • Join forces to get loans funded faster
        • \\n\\t\\t\\t
        • Discover the impact a group of individuals can have when working together.
        • \\n\\t\\t
        \\n\\t{{/hasTeams}}\\n
        \\n\\n
        \\n\\t
        \\n\\t{{#hasTeams}}\\n\\t\\t

        About Teams

        \\n\\t\\t

        Lending teams are self-organized groups where members connect and rally around shared lending goals. Learn more

        \\n\\t{{/hasTeams}}\\n\\t{{^hasTeams}}\\n\\t\\t\\n\\t\\t
        \\n\\t\\t\\tExplore All Teams\\n\\t\\t
        \\n\\t{{/hasTeams}}\\n
        \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/views/Team/TeamActivityView.mustache\n// module id = 749\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\n\tvar Marionette = require('marionette');\n\tvar TeamActivityFeedViewStache = require('hgn!./TeamActivityFeedView.mustache');\n\tvar TeamActivityItemView = require('./TeamActivityFeedItemView');\n\n\n\treturn Marionette.CompositeView.extend({\n\t\tchildView: TeamActivityItemView\n\t\t, childViewContainer: '.teamActivitiesList'\n\t\t, template: TeamActivityFeedViewStache\n\n\n\t\t, events: {\n\t\t\t'click .moreTeamActivitiesButton': 'handleShowMoreLinkClick'\n\t\t}\n\n\n\t\t, serializeData: function () {\n\t\t\treturn {\n\t\t\t\tshowMoreLink: !!this.collection.link('next')\n\t\t\t};\n\t\t}\n\n\n\t\t, handleShowMoreLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this\n\t\t\t, $button = this.$(event.target);\n\n\t\t\tif (this.isLoadingButton($button)) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tthis.loadingButton($button);\n\t\t\t}\n\n\t\t\twwwApp.siren.resolve(this.collection.link('next'))\n\t\t\t\t.always(function () {\n\t\t\t\t\tself.loadingButton($button, false);\n\t\t\t\t})\n\t\t\t\t.done(function () {\n\t\t\t\t\tself.render();\n\t\t\t\t})\n\t\t\t\t.fail(function () {\n\t\t\t\t\twwwApp.tipMsg('There was an error loading more activities. Please try again.', 'warning');\n\t\t\t\t});\n\t\t}\n\n\n\t\t, isLoadingButton: function ($button) {\n\t\t\treturn $button.data('kvLoadingButton');\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery} $button\n\t\t * @param {Boolean} [enableLoading]\n\t\t * @returns {*}\n\t\t */\n\t\t, loadingButton: function ($button, enableLoading) {\n\t\t\tif (enableLoading === false) {\n\t\t\t\treturn $button\n\t\t\t\t\t.removeClass('loadingButton')\n\t\t\t\t\t.removeData('kvLoadingButton');\n\t\t\t}\n\n\t\t\t// Default is to \"enable\"\n\t\t\treturn $button\n\t\t\t\t.addClass('loadingButton')\n\t\t\t\t.data('kvLoadingButton', true);\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\t// Render the entire \"self\" collection\n\t\t\tthis.collection = wwwApp.siren.store.get(this.collection.link('self'));\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamActivity/TeamActivityFeedView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

        Activity Feed

        \");t.b(\"\\n\" + i);t.b(\"
          \");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.f(\"showMoreLink\",c,p,1),c,p,0,95,235,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t
          \");t.b(\"\\n\" + i);t.b(\"\t\tShow more activities\");t.b(\"\\n\" + i);t.b(\"\t
          \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"

          Activity Feed

          \\n
            \\n\\n{{#showMoreLink}}\\n\\t
            \\n\\t\\tShow more activities\\n\\t
            \\n{{/showMoreLink}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamActivity/TeamActivityFeedView.mustache\n// module id = 751\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Backbone = require('backbone')\n\t, TeamActivityItemViewStache = require('hgn!./TeamActivityFeedItemView.mustache')\n\t, TeamJoinActivityView = require('components/LenderActivity/TeamJoinActivityView')\n\t, TeamLoanActivityView = require('components/LenderActivity/TeamLoanActivityView')\n\t, TeamMessageActivityView = require('components/LenderActivity/TeamMessageActivityView');\n\n\n\treturn Backbone.View.extend({\n\t\ttagName: 'li'\n\t\t, className: 'TeamActivityItemView'\n\t\t, template: TeamActivityItemViewStache\n\n\n\t\t, render: function () {\n\t\t\tvar data, activityView, actor, actorPublicId, actorUrl, actorName, teamImageId\n\t\t\t, model = this.model\n\t\t\t, activityType = model.get('action')\n\t\t\t, options = {\n\t\t\t\tmodel: model\n\t\t\t};\n\n\t\t\tswitch (activityType) {\n\t\t\t\tcase 'team_message':\n\t\t\t\t\tactivityView = new TeamMessageActivityView(options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'loan_make':\n\t\t\t\t\tactivityView = new TeamLoanActivityView(options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'team_join':\n\t\t\t\t\tactivityView = new TeamJoinActivityView(options);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}\n\n\t\t\tactor = this.model.get('actor');\n\t\t\tif (actor) {\n\t\t\t\tactorPublicId = this.model.get('actor.publicId');\n\t\t\t\tactorUrl = wwwApp.url('lender', 'view', {publicId: actorPublicId});\n\t\t\t\tactorName = this.model.get('actor.name');\n\t\t\t} else {\n\t\t\t\tactorPublicId = 'Anonymous';\n\t\t\t\tactorName = 'Anonymous';\n\t\t\t}\n\n\t\t\tteamImageId = this.model.get('team.image.id');\n\n\t\t\tdata = {\n\t\t\t\tteamImageSrc: teamImageId\n\t\t\t\t\t? wwwApp.imageUrl(teamImageId, 's35')\n\t\t\t\t\t: wwwApp.staticUrl('img/entity/team_s135.png')\n\t\t\t\t, teamUrl: wwwApp.url('community', 'viewTeamSummary', {teamPublicId: model.get('team.teamPublicId')})\n\t\t\t\t, teamName: model.get('team.name')\n\t\t\t\t, time: activityView.formatTimestamp()\n\t\t\t\t, isTeamMessage: activityType == 'team_message'\n\t\t\t\t, isLoanMake: activityType == 'loan_make'\n\t\t\t\t, isTeamJoin: activityType == 'team_join'\n\t\t\t\t, actorPublicId: actorPublicId\n\t\t\t\t, actorUrl: actorUrl\n\t\t\t\t, actorName: actorName\n\t\t\t};\n\n\t\t\tif (activityView) {\n\t\t\t\tthis.$el.html(this.template.render(data));\n\n\t\t\t\tactivityView.render();\n\t\t\t\tthis.$el.append(activityView.$el);\n\t\t\t}\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamActivity/TeamActivityFeedItemView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);if(t.s(t.f(\"isTeamMessage\",c,p,1),c,p,0,201,376,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,218,241,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(t.v(t.f(\"actorName\",c,p,0)));if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,280,284,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\tposted on\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"isLoanMake\",c,p,1),c,p,0,412,497,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\tA loan was made on \");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}if(t.s(t.f(\"isTeamJoin\",c,p,1),c,p,0,530,712,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\");if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,547,570,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"actorPublicId\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"actorUrl\",c,p,1),c,p,0,622,626,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\tjoined \");t.b(t.v(t.f(\"teamName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
            \");t.b(\"\\n\" + i);if(t.s(t.f(\"isNew\",c,p,1),c,p,0,747,843,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            New
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
            \");t.b(t.v(t.f(\"time\",c,p,0)));t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
            \\n\\t\\n\\t\\t\\n\\t\\n\\t
            \\n\\t\\t{{#isTeamMessage}}\\n\\t\\t\\t{{#actorUrl}}{{/actorUrl}}{{actorName}}{{#actorUrl}}{{/actorUrl}}\\n\\t\\t\\tposted on\\n\\t\\t\\t{{teamName}}\\n\\t\\t{{/isTeamMessage}}\\n\\t\\t{{#isLoanMake}}\\n\\t\\t\\tA loan was made on {{teamName}}\\n\\t\\t{{/isLoanMake}}\\n\\t\\t{{#isTeamJoin}}\\n\\t\\t\\t{{#actorUrl}}{{/actorUrl}}\\n\\t\\t\\t\\t{{actorPublicId}}\\n\\t\\t\\t{{#actorUrl}}{{/actorUrl}}\\n\\t\\t\\tjoined {{teamName}}\\n\\t\\t{{/isTeamJoin}}\\n\\t
            \\n\\t{{#isNew}} {{! @todo - implement the \\\"new\\\" notification }}\\n\\t\\t
            New
            \\n\\t{{/isNew}}\\n\\t
            {{time}}
            \\n
            \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamActivity/TeamActivityFeedItemView.mustache\n// module id = 753\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\n\tvar LenderActivityAbstractView = require('./LenderActivityAbstractView')\n\t, TeamJoinActivityViewStache = require('hgn!./TeamJoinActivityView.mustache');\n\n\n\treturn LenderActivityAbstractView.extend({\n\t\ttemplate: TeamJoinActivityViewStache\n\n\n\t\t, serializeData: function () {\n\t\t\tvar lenderPublicId\n\t\t\t, data = this.model.toJSON();\n\n\t\t\tdata.__lenderImageUrl = wwwApp.imageUrl(this.model.get('lender.image.id'), 's100');\n\t\t\tlenderPublicId = this.model.get('lender.publicId');\n\t\t\tif (lenderPublicId) {\n\t\t\t\tdata.__lenderProfileUrl = wwwApp.url('lender', 'view', {publicId: lenderPublicId});\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/LenderActivity/TeamJoinActivityView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"__lenderProfileUrl\",c,p,1),c,p,0,23,56,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"__lenderProfileUrl\",c,p,1),c,p,0,184,188,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#__lenderProfileUrl}}{{/__lenderProfileUrl}}\\n\\t\\n{{#__lenderProfileUrl}}{{/__lenderProfileUrl}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/LenderActivity/TeamJoinActivityView.mustache\n// module id = 755\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\n\tvar LenderActivityAbstractView = require('./LenderActivityAbstractView')\n\t, TeamLoanActivityViewStache = require('hgn!./TeamLoanActivityView.mustache');\n\n\n\treturn LenderActivityAbstractView.extend({\n\t\ttemplate: TeamLoanActivityViewStache\n\n\n\t\t, serializeData: function () {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tdata.__loanImageUrl = wwwApp.imageUrl(this.model.get('loan.image.id'), 's100');\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/LenderActivity/TeamLoanActivityView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/LenderActivity/TeamLoanActivityView.mustache\n// module id = 757\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\n\tvar Backbone = require('backbone')\n\t, LenderActivityAbstractView = require('./LenderActivityAbstractView')\n\t, TeamMessageActivityViewStache = require('hgn!./TeamMessageActivityView.mustache');\n\n\n\treturn LenderActivityAbstractView.extend({\n\t\ttemplate: TeamMessageActivityViewStache\n\n\n\t\t, serializeData: function () {\n\t\t\tvar model = this.model;\n\t\t\tvar data = model.toJSON();\n\t\t\tvar messageId = model.get('teamMessage.id');\n\t\t\tvar actor = model.get('actor');\n\n\t\t\t// There is no actor with Anon users.\n\t\t\tdata.__lenderImageSrc = actor && (actor instanceof Backbone.Model)\n\t\t\t\t? wwwApp.imageUrl(actor.get('image.id'), 's50')\n\t\t\t\t: wwwApp.staticUrl('img/entity/lender_s100.png');\n\n\t\t\tdata.__messageBody = this.processTeamMessage();\n\t\t\tdata.__teamMessageDirectUrl = wwwApp.url(\n\t\t\t\t'community'\n\t\t\t\t, 'viewMessages'\n\t\t\t\t, {teamPublicId: model.get('team.teamPublicId')}\n\t\t\t\t, {msgID: messageId}\n\t\t\t\t, 'msg_' + messageId\n\t\t\t);\n\n\t\t\treturn data;\n\t\t}\n\n\n\t\t/**\n\t\t * Processes the message body.\n\t\t *\n\t\t * @returns {string|*}\n\t\t */\n\t\t, processTeamMessage: function () {\n\t\t\tvar teamPublicId\n\t\t\t, message = this.model.get('teamMessage.body');\n\n\t\t\tif (!message) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tteamPublicId = this.model.get('team.teamPublicId');\n\n\t\t\tmessage = message.split('\\n').join('
            ');\n\n\t\t\t// Find and replace any message ids with a link\n\t\t\treturn message.replace(/#\\d+/g, function (match) {\n\t\t\t\tmatch = match.substring(1);\n\t\t\t\treturn '#' + match + '';\n\t\t\t});\n\t\t}\n\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/LenderActivity/TeamMessageActivityView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"#\");t.b(t.v(t.d(\"teamMessage.id\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.t(t.f(\"__messageBody\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"#{{teamMessage.id}}\\n\\n
            \\n\\t{{{__messageBody}}}\\n
            \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/LenderActivity/TeamMessageActivityView.mustache\n// module id = 759\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, Backbone = require('backbone')\n\t\t, DropdownMenu = require('dropdownMenu')\n\t\t, TeamActivityMyTeamsViewStache = require('hgn!./TeamActivityMyTeamsView.mustache');\n\n\n\treturn Backbone.View.extend({\n\n\t\ttemplate: TeamActivityMyTeamsViewStache\n\t\t, className: 'TeamActivityMyTeamsView'\n\n\n\t\t, genTeamUrl: function (teamPublicId) {\n\t\t\treturn wwwApp.url('community', 'viewTeamSummary', { teamPublicId: teamPublicId });\n\t\t}\n\n\n\t\t, serializeData: function () {\n\t\t\tvar myTeams = this.collection.toJSON();\n\n\t\t\t_.each(myTeams, function (team) {\n\t\t\t\tteam.__imageUrl = team.image && team.image.id\n\t\t\t\t\t? wwwApp.imageUrl(team.image.id, 's35')\n\t\t\t\t\t: wwwApp.staticUrl('img/entity/team_s135.png');\n\n\t\t\t\tteam.__teamUrl = this.genTeamUrl(team.teamPublicId);\n\t\t\t\tteam.__teamMessagesUrl = wwwApp.url('community', 'viewMessages', { teamPublicId: team.teamPublicId });\n\t\t\t\tteam.__setAsPreferredTeamUrl = wwwApp.url('account', 'updatePreferredTeam', null, { preferredTeamId: team.id });\n\t\t\t\tteam.__quitTeamUrl = wwwApp.url('community', 'quitTeamProcess', null, { team_id: team.id, doneUrl: wwwApp.url('account', 'teams') });\n\t\t\t}, this);\n\n\t\t\treturn {\n\t\t\t\tnumTeams: this.collection.meta('count')\n\t\t\t\t, myTeams: myTeams\n\t\t\t\t, allTeamsUrl: wwwApp.url('ui', 'teams')\n\t\t\t};\n\t\t}\n\n\n\t\t, render: function () {\n\t\t\tthis.$el.html(this.template.render(this.serializeData()));\n\n\t\t\tthis.$('.teamActivityTeamActions').each(function (index, el) {\n\t\t\t\tnew DropdownMenu(el, 'sidebar', 'teamsListMenu');\n\t\t\t});\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamActivity/TeamActivityMyTeamsView.js","define(function (require) {\n\t'use strict';\n\n\n\tvar $ = require('jquery');\n\n\n\t/**\n\t *\n\t * @param {jQuery.Element} $target\n\t * @param {String} style - Can be left empty or set to \"sidebar\"\n\t * @param {String} name - Useful when you have multiple sets of menus and want to group them.\n\t * @constructor\n\t */\n\tfunction Menu($target, style, name) {\n\t\t$target = $($target);\n\n\t\tvar self = this;\n\n\t\tif (style) {\n\t\t\t$target.addClass(style);\n\t\t}\n\n\t\t// For storing data specific to the group (e.g. which dropdown menu item is visible)\n\t\tif (name) {\n\t\t\tMenu.data[name] = {};\n\t\t}\n\n\t\tthis.name = name;\n\t\tthis.$target = $target;\n\t\tthis.$dropdownIcon = $target.find(this.classSelector(Menu.options.iconClass));\n\t\tthis.$dropdownContent = $target.find(this.classSelector(Menu.options.contentClass)).addClass(Menu.options.hiddenClass);\n\n\t\tthis.$dropdownIcon.on('click.dropdownMenu', function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (! self.isVisible(self.$dropdownContent)) {\n\t\t\t\tself.show();\n\t\t\t}\n\t\t});\n\t}\n\n\n\tMenu.options = {\n\t\ticonClass: 'dropdownIcon'\n\t\t, contentClass: 'dropdownContent'\n\t\t, hiddenClass: 'dropdownMenuHidden'\n\t\t, visibleClass: 'dropdownMenuVisible'\n\t};\n\n\n\t/**\n\t * Store library data\n\t *\n\t * @type {Object}\n\t */\n\tMenu.data = {};\n\n\n\t/**\n\t * Hide any visible dropdown within the given group name\n\t *\n\t * @param {string} name - the name of the group to hide\n\t */\n\tMenu.hide = function (name) {\n\t\tvar group = name\n\t\t\t? Menu.data[name]\n\t\t\t: Menu.data; // Use the \"global\" group if there is no name\n\n\t\tif (group.visible) {\n\t\t\tgroup.visible.hide();\n\t\t}\n\t};\n\n\n\t/**\n\t * Set the visible flag for the group\n\t * The visible flag lets us know which menu item is visible for each group.\n\t *\n\t * @param {Menu} menu\n\t */\n\tMenu.setVisible = function (menu) {\n\t\tvar name = menu.name\n\t\t, group = name\n\t\t\t? Menu.data[name]\n\t\t\t: Menu.data; // Use the \"global\" group if there is no name\n\n\t\tMenu.hide(name);\n\t\tgroup.visible = menu;\n\t};\n\n\n\tMenu.prototype = {\n\n\t\t/**\n\t\t *\n\t\t * @param {Element} el\n\t\t * @returns {*}\n\t\t */\n\t\tisDropdownElement: function (el) {\n\t\t\treturn $.contains(this.$target[0], el);\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {string} str\n\t\t * @returns {string}\n\t\t */\n\t\t, classSelector: function (str) {\n\t\t\treturn '.' + str;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Element} $el\n\t\t * @returns {*}\n\t\t */\n\t\t, isVisible: function ($el) {\n\t\t\treturn $el.hasClass(Menu.options.visibleClass);\n\t\t}\n\n\n\t\t/**\n\t\t * Shows the dropdown menu\n\t\t *\n\t\t */\n\t\t, show: function () {\n\t\t\tvar self = this;\n\n\t\t\tMenu.setVisible(this);\n\n\t\t\t$('body').on('click.dropdownMenu', function (event) {\n\t\t\t\tvar $target = $(event.target);\n\n\t\t\t\t// @todo think through this implementation a bit better\n\t\t\t\t// Hide the clicked element is not inside of the dropdown and if its not the initial open\n\t\t\t\tif ((!$.contains(self.$dropdownContent[0], $target[0]) && $target.next()[0] !== self.$dropdownContent[0])) {\n\t\t\t\t\tself.hide();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$dropdownContent\n\t\t\t\t.stop()\n\t\t\t\t.removeClass(Menu.options.hiddenClass)\n\t\t\t\t.addClass(Menu.options.visibleClass);\n\t\t}\n\n\n\t\t/**\n\t\t * Hides the dropdown menu\n\t\t *\n\t\t */\n\t\t, hide: function () {\n\t\t\t$('body').off('click.dropdownMenu'); // Don't leave the click event handler dangling around\n\n\t\t\tthis.$dropdownContent\n\t\t\t\t.stop()\n\t\t\t\t.removeClass(Menu.options.visibleClass)\n\t\t\t\t.addClass(Menu.options.hiddenClass);\n\t\t}\n\t};\n\n\treturn Menu;\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/dropdownMenu/dropdownMenu.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

            My Teams (\");t.b(t.v(t.f(\"numTeams\",c,p,0)));t.b(\")\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\tAll teams\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"

            \");t.b(\"\\n\" + i);t.b(\"
              \");t.b(\"\\n\" + i);if(t.s(t.f(\"myTeams\",c,p,1),c,p,0,155,1237,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"hasNewActivities\",c,p,1),c,p,0,489,649,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"
              \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
                \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              • Jump to Message Board
              • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              • Go to Overview
              • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              • Set as preferred Team
              • \");t.b(t.v(t.f(\"@todo - update to use team action\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              • Quit Team
              • \");t.b(t.v(t.f(\"@todo - update to use teamMember action\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t
            • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
            \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"

            My Teams ({{numTeams}})\\n\\t\\n\\t\\tAll teams\\n\\t\\n

            \\n
              \\n\\t{{#myTeams}}\\n\\t\\t
            • \\n\\t\\t\\t
              \\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t{{#hasNewActivities}} {{! @todo - the \\\"new activities\\\" feature has yet to be implemented }}\\n
              \\n {{/hasNewActivities}}\\n\\t\\t\\t
              \\n\\t\\t\\t
              \\n\\t\\t\\t\\t
              \\n\\t\\t\\t\\t\\n\\t\\t\\t
              \\n\\t\\t
            • \\n\\t{{/myTeams}}\\n
            \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamActivity/TeamActivityMyTeamsView.mustache\n// module id = 762\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette');\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'teams/my-teams': 'showTeamActivityFeed'\n\t\t\t, 'teams/my-teams/:teamPublicId': 'showTeamActivityFeed'\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./routers/TeamActivityRouter.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, _ = require('underscore')\n\t\t, SirenSearch = require('lib/Backbone.Model.SirenSearch/Backbone.Model.SirenSearch')\n\t\t, TrusteeListingView = require('views/Xb/Trustee/TrusteeListingView')\n\t\t;\n\n\tvar LIMIT = 20;\n\n\treturn Marionette.Controller.extend({\n\n\n\t\tshowListingView: function() {\n\t\t\tthis._executeSearch();\n\n\t\t}\n\t\t, _handleFilterChange: function(attrName,attrValue) {\n\t\t\tif (attrValue === '' || attrValue === 'all' || attrValue === false) {\n\t\t\t\tthis.searchModel.unset(attrName);\n\t\t\t} else {\n\t\t\t\tthis.searchModel.set(attrName,attrValue);\n\t\t\t}\n\t\t\tthis.searchModel.unset('offset');\n\t\t\tthis._executeSearch();\n\t\t}\n\t\t, _handleResultPrevious: function() {\n\t\t\tvar offset = this.searchModel.get('offset') || 0;\n\t\t\t// if offset is not set, prev is noop\n\t\t\tif (offset > 0) {\n\t\t\t\toffset -= LIMIT;\n\t\t\t\tif (offset > 0) {\n\t\t\t\t\tthis.searchModel.set('offset',offset);\n\t\t\t\t} else {\n\t\t\t\t\tthis.searchModel.unset('offset');\n\t\t\t\t}\n\t\t\t\tthis._executeSearch();\n\t\t\t}\n\t\t}\n\t\t, _handleResultNext: function() {\n\t\t\tvar offset = this.searchModel.get('offset') || 0;\n\t\t\toffset += LIMIT;\n\t\t\tthis.searchModel.set('offset',offset);\n\t\t\tthis._executeSearch();\n\t\t}\n\n\t\t, _handleResultFirst: function() {\n\t\t\tthis.searchModel.set('offset', 0);\n\t\t\tthis._executeSearch();\n\t\t}\n\n\t\t, _handleResultLast: function() {\n\t\t\tthis.searchModel.set('offset', (Math.floor(this.trusteeCollection._meta.count / LIMIT) * LIMIT));\n\t\t\tthis._executeSearch();\n\t\t}\n\n\t\t// broken out for theoretical future testing.\n\t\t, _handleSearchDone: function(results) {\n\t\t\tvar current_criteria = this.searchModel.getCriteria();\n\t\t\tvar offset = isNaN(current_criteria.offset) ? 0 : current_criteria.offset;\n\t\t\tthis.trusteeCollection = results;\n\n\t\t\t// pagination: first/last disabled. to re-enable, replace false variables with the following:\n\t\t\t// offset\n\t\t\t// (parseInt(offset) < parseInt(results._meta.count) - LIMIT)\n\n\t\t\tthis.view.updateResults(\n\t\t\t\tresults.models\n\t\t\t\t, results._meta.count\n\t\t\t\t, !!results.link('prev')\n\t\t\t\t, !!results.link('next')\n\t\t\t\t, false\n\t\t\t\t, false\n\t\t\t);\n\t\t}\n\t\t, _executeSearch: function() {\n\t\t\tthis.searchModel.resolveSearch().done(this._handleSearchDone);\n\t\t}\n\n\t\t, _executeLast: function (results) {\n\t\t\tthis.searchModel.set('offset', 0);\n\t\t\tthis._executeSearch().done(this._scrollToTop);\n\t\t}\n\n\t\t/**\n\t\t * moduleData - would be the view's data\n\t\t * @param options\n\t\t */\n\t\t, initialize: function (options) {\n\n\t\t\tthis.searchModel = new SirenSearch({\n\t\t\t\tname: 'search-trustees'\n\t\t\t\t, title: 'Search Trustees'\n\t\t\t\t, method: 'GET'\n\t\t\t\t, href: 'trustees'\n\t\t\t\t, type: 'application/json'\n\t\t\t\t, fields: [\n\t\t\t\t\t{name:'status'},\n\t\t\t\t\t{name:'fundRaisingOnly'},\n\t\t\t\t\t{name:'queryString'}\n\t\t\t\t]\n\t\t\t\t, criteria: ['offset', 'limit', 'sortBy', 'type', 'q']\n\t\t\t}, {\n\t\t\t\tsiren: wwwApp.siren\n\t\t\t});\n\t\t\tthis.searchModel.set({\n\t\t\t\t'limit':LIMIT,\n\t\t\t\t'status':'approved',\n\t\t\t\t'sortBy':'repaymentRate',\n\t\t\t\t'fundRaisingOnly' : 'true'\n\t\t\t});\n\n\n\t\t\tthis.view = new TrusteeListingView(options);\n\t\t\tthis.listenTo(this.view,'filter-change',this._handleFilterChange);\n\t\t\tthis.listenTo(this.view,'result-previous',this._handleResultPrevious);\n\t\t\tthis.listenTo(this.view,'result-next',this._handleResultNext);\n\t\t\tthis.listenTo(this.view,'result-first',this._handleResultFirst);\n\t\t\tthis.listenTo(this.view,'result-last',this._handleResultLast);\n\t\t\t_.bindAll(this,'_handleSearchDone','_handleResultPrevious','_handleResultNext','_handleResultFirst','_handleResultLast');\n\t\t}\n\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./controllers/TrusteeController.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('kvBackbone')\n\t\t, TrusteeCardView = require('components/Trustee/TrusteeCardView')\n\t\t, NoResultsView = require('components/Trustee/NoResultsView')\n\t\t, ClickableView = require('components/Lend/ClickableView')\n\t\t;\n\n\treturn Marionette.CompositeView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/06-trustees/00-trustee-results')\n\n\t\t, partials: {\n\t\t\t'02-organisms/10-lend/03-paging': require('hgn!patterns/02-organisms/10-lend/03-paging')\n\t\t}\n\n//\t\t, emptyView: NoResultsView ( pending reset filters button )\n\n\t\t, childView: TrusteeCardView\n\n\t\t, childViewContainer: '.trustee-results'\n\n\t\t, collection: new Backbone.Collection()\n\n\t\t, model: new Backbone.Model()\n\n\n\t\t, updateResults : function (trustees, total_count, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tthis.collection.set(trustees);\n\t\t\tthis.model.set({\n\t\t\t\ttotal_count: total_count\n\t\t\t\t, disable_previous: !enable_previous\n\t\t\t\t, disable_next: !enable_next\n\t\t\t\t, disable_first: !enable_first\n\t\t\t\t, disable_last: !enable_last\n\t\t\t\t, hide_paging: !enable_previous && !enable_next && !enable_first && !enable_last\n\t\t\t});\n\t\t\tthis.render();\n\t\t}\n\n\t\t, _handlePrevious : function() {\n\t\t\tthis.previousButton.disable();\n\t\t\tthis.trigger('previous');\n\t\t}\n\t\t, _handleNext : function() {\n\t\t\tthis.nextButton.disable();\n\t\t\tthis.trigger('next');\n\t\t}\n\t\t, _handleFirst : function() {\n\t\t\tthis.firstButton.hide();\n\t\t\tthis.trigger('first');\n\t\t}\n\t\t, _handleLast : function() {\n\t\t\tthis.lastButton.hide();\n\t\t\tthis.trigger('last');\n\t\t}\n\t\t, onRender: function() {\n\t\t\t// can bind new views to existing elements.\n\t\t\tthis.previousButton = new ClickableView({el: this.$('.previous')});\n\t\t\tthis.listenTo(this.previousButton,'clicked',this._handlePrevious);\n\t\t\tthis.nextButton = new ClickableView({el: this.$('.next')});\n\t\t\tthis.listenTo(this.nextButton,'clicked',this._handleNext);\n\t\t\tthis.firstButton = new ClickableView({el: this.$('.first')});\n\t\t\tthis.listenTo(this.firstButton,'clicked',this._handleFirst);\n\t\t\tthis.lastButton = new ClickableView({el: this.$('.last')});\n\t\t\tthis.listenTo(this.lastButton,'clicked',this._handleLast);\n\t\t}\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\n\t\t}\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Trustee/ResultsView.js","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, moment = require('moment')\n\t\t, formatters = require('lib/formatters/formatters')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/06-trustees/02-trustee')\n\n\t\t, serializeData: function() {\n\t\t\tvar context = this.model.attributes\n\t\t\t\t, since = moment(context.createTime)\n\t\t\t\t;\n\t\t\tcontext.timeOnKiva = since.fromNow();\n\t\t\tcontext.profileHref = '/trustees/' + context.id;\n\t\t\tif (context && context.image && context.image.attributes && context.image.attributes.hash) {\n\t\t\t\tcontext.imageSmall = wwwApp.imageUrl(context.image.attributes.hash, 'h120');\n\t\t\t} else {\n\t\t\t\tcontext.imageSmall = wwwApp.imageUrl('addc298db703827b9a0ceca8619a0a83', 'h120'); //anonymous image\n\t\t\t}\n\t\t\tcontext.story = formatters.truncate(context.whyInterested, 300);\n\t\t\t// changed api stats response to be an entity, so now it has an attributes\n\t\t\t// sub-property which must be removed.\n\t\t\tif (context.stats) {\n\t\t\t\tif (context.stats.attributes) {\n\t\t\t\t\tcontext.stats = context.stats.attributes;\n\t\t\t\t}\n\t\t\t\tcontext.stats.totalValue = formatters.formatBcMoney(\n\t\t\t\t\tcontext.stats.totalLoansValue\n\t\t\t\t);\n\t\t\t\tif (context.stats.repaymentRate) {\n\t\t\t\t\tcontext.stats.prettyRepaymentRate = formatters.formatPercent(context.stats.repaymentRate);\n\t\t\t\t}\n\t\t\t\tif (context.stats.numFundraisingLoans) {\n\t\t\t\t\tcontext.stats.fundraisingLoansHref = '/lend' +\n\t\t\t\t\t\t'?distributionModel=direct' +\n\t\t\t\t\t\t'&status=fundRaising' +\n\t\t\t\t\t\t'&trustee=' + context.id;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {trustee: context};\n\t\t}\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Trustee/TrusteeCardView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"trustee\",c,p,1),c,p,0,12,1327,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\\\"Image\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(t.v(t.f(\"title\",c,p,0)));t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");if(t.s(t.f(\"contactRecord\",c,p,1),c,p,0,392,423,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");t.b(t.v(t.f(\"city\",c,p,0)));t.b(\", \");t.b(t.v(t.f(\"state\",c,p,0)));t.b(\"
            \");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");if(t.s(t.f(\"timeOnKiva\",c,p,1),c,p,0,504,544,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"joined kiva \");t.b(t.v(t.f(\"timeOnKiva\",c,p,0)));t.b(\"
            \");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(t.v(t.f(\"organizationType\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t\t\t

            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t

            \");t.b(t.v(t.f(\"story\",c,p,0)));t.b(\"

            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);if(t.s(t.f(\"stats\",c,p,1),c,p,0,774,1299,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"prettyRepaymentRate\",c,p,1),c,p,0,834,984,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\t\");t.b(t.v(t.f(\"prettyRepaymentRate\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\trepayment rate
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");if(t.s(t.f(\"numLoansEndorsedTotal\",c,p,1),c,p,0,1041,1097,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.v(t.f(\"totalValue\",c,p,0)));t.b(\" in \");t.b(t.v(t.f(\"numLoansEndorsedTotal\",c,p,0)));t.b(\" loan(s)
            \");});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"numFundraisingLoans\",c,p,1),c,p,0,1153,1259,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t\t\");t.b(t.v(t.f(\"numFundraisingLoans\",c,p,0)));t.b(\" loan(s)\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\tfundraising now!\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#trustee}}\\n\\t
            \\n\\n\\t\\t
            \\n\\t\\t\\t\\\"Image\\n\\t\\t
            \\n\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t\\t\\t{{title}}
            \\n\\t\\t\\t\\t

            \\n\\t\\t\\t\\t\\t{{#contactRecord}}{{city}}, {{state}}
            {{/contactRecord}}\\n\\t\\t\\t\\t\\t{{! timeOnKiva - e.g. 32 month(s) }}\\n\\t\\t\\t\\t\\t{{#timeOnKiva}}joined kiva {{timeOnKiva}}
            {{/timeOnKiva}}\\n\\t\\t\\t\\t\\t{{organizationType}}\\n\\t\\t\\t\\t

            \\n\\t\\t\\t
            \\n\\t\\t\\t{{! story = whyInterested truncated 300 characters}}\\n\\t\\t\\t

            {{story}}

            \\n\\t\\t
            \\n\\n\\t\\t
            \\n\\t\\t\\t{{#stats}}\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{#prettyRepaymentRate}}\\n\\t\\t\\t\\t\\t\\t{{! repaymentRate should have % already appended }}\\n\\t\\t\\t\\t\\t\\t{{prettyRepaymentRate}}\\n\\t\\t\\t\\t\\t\\trepayment rate
            \\n\\t\\t\\t\\t\\t{{/prettyRepaymentRate}}\\n\\n\\t\\t\\t\\t\\t{{#numLoansEndorsedTotal}}{{totalValue}} in {{numLoansEndorsedTotal}} loan(s)
            {{/numLoansEndorsedTotal}}\\n\\t\\t\\t\\t\\t{{#numFundraisingLoans}}\\n\\t\\t\\t\\t\\t\\t{{numFundraisingLoans}} loan(s)\\n\\t\\t\\t\\t\\t\\tfundraising now!\\n\\t\\t\\t\\t\\t{{/numFundraisingLoans}}\\n\\t\\t\\t\\t
            \\n\\t\\t\\t{{/stats}}\\n\\t\\t
            \\n\\t
            \\n{{/trustee}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/02-trustee.mustache\n// module id = 767\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: function(config){\n\t\t\treturn ''; // will become a clear filters button\n\t\t}\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Trustee/NoResultsView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t

            \");t.b(t.v(t.f(\"total_count\",c,p,0)));t.b(\" matching Trustee(s)

            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(t.rp(\"<02-organisms/10-lend/03-paging0\",c,p,\"\t\"));t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {\"<02-organisms/10-lend/03-paging0\":{name:\"02-organisms/10-lend/03-paging\", partials: {}, subs: { }}}, subs: { }}, \"
            \\n\\t

            {{total_count}} matching Trustee(s)

            \\n\\n\\t
            \\n\\n\\t{{> 02-organisms/10-lend/03-paging}}\\n
            \\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/00-trustee-results.mustache\n// module id = 769\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t\t, Backbone = require('backbone')\n\t\t, _ = require('underscore')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\n\n\t\ttemplate: require('hgn!patterns/02-organisms/06-trustees/01-trustee-filters')\n\n\t\t, optionsWithSelectedValue: function(options, value) {\n\t\t\treturn _.map(options, function(option){\n\t\t\t\tif (option.value === value) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t} else {\n\t\t\t\t\tdelete option.selected;\n\t\t\t\t}\n\t\t\t\treturn option;\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * prepare the data context for template rendering\n\t\t */\n\t\t, serializeData: function () {\n\t\t\tvar data = this.model.toJSON();\n\t\t\tdata.trusteeSortOptions = this.optionsWithSelectedValue(data.trusteeSortOptions, data.sortBy);\n\t\t\treturn data;\n\t\t}\n\n\t\t, model: new Backbone.Model()\n\n\t\t, modelDefaults: {\n\t\t\tfundRaisingOnly : true\n\t\t\t, trusteeSortOptions: [\n\t\t\t\t{'label':'Loan Count','value':'loanCount'},\n\t\t\t\t{'label':'Repayment Rate','value':'repaymentRate'},\n\t\t\t\t{'label':'Time on Kiva','value':'createTime'},\n\t\t\t\t{'label':'Total $ Endorsed','value':'totalLoanValue'}\n\t\t\t]\n\t\t\t, sortBy: 'repaymentRate'\n\t\t}\n\n\t\t, updateFilters: function (filters) {\n\t\t\tfilters = _.extend(this.modelDefaults, filters);\n\t\t\tthis.model.reset(filters);\n\t\t}\n\n\t\t, events: {\n\t\t\t'change': '_handleChange'\n\t\t\t, 'submit': '_handleSubmit'\n\t\t}\n\n\t\t, _handleChange: function (evt) {\n\t\t\t// console.log(['_handleChange']);\n\t\t\tvar $input = this.$(evt.target);\n\t\t\tvar attrName = $input.attr('name');\n\t\t\tvar attrVal;\n\t\t\tif ($input.is('[type=\"checkbox\"]')) {\n\t\t\t\tattrVal = $input.is(':checked');\n\t\t\t} else {\n\t\t\t\tattrVal = $input.val();\n\t\t\t}\n\t\t\t//console.log(['_handleChange', 'filter-change', attrName, attrVal]);\n\t\t\tthis.trigger('filter-change', attrName, attrVal);\n\t\t}\n\n\t\t, _handleSubmit: function (evt) {\n\t\t\tevt.preventDefault();\n\t\t}\n\n\t\t, initialize: function (options) {\n\t\t\tthis.model.set(this.modelDefaults);\n\t\t}\n\n\t\t, usStates: [\n\t\t\t['Alabama', 'AL'],\n\t\t\t['Alaska', 'AK'],\n\t\t\t['American Samoa', 'AS'],\n\t\t\t['Arizona', 'AZ'],\n\t\t\t['Arkansas', 'AR'],\n\t\t\t['California', 'CA'],\n\t\t\t['Colorado', 'CO'],\n\t\t\t['Connecticut', 'CT'],\n\t\t\t['Delaware', 'DE'],\n\t\t\t['District Of Columbia', 'DC'],\n\t\t\t['Florida', 'FL'],\n\t\t\t['Georgia', 'GA'],\n\t\t\t['Guam', 'GU'],\n\t\t\t['Hawaii', 'HI'],\n\t\t\t['Idaho', 'ID'],\n\t\t\t['Illinois', 'IL'],\n\t\t\t['Indiana', 'IN'],\n\t\t\t['Iowa', 'IA'],\n\t\t\t['Kansas', 'KS'],\n\t\t\t['Kentucky', 'KY'],\n\t\t\t['Louisiana', 'LA'],\n\t\t\t['Maine', 'ME'],\n\t\t\t['Maryland', 'MD'],\n\t\t\t['Massachusetts', 'MA'],\n\t\t\t['Michigan', 'MI'],\n\t\t\t['Minnesota', 'MN'],\n\t\t\t['Mississippi', 'MS'],\n\t\t\t['Missouri', 'MO'],\n\t\t\t['Montana', 'MT'],\n\t\t\t['Nebraska', 'NE'],\n\t\t\t['Nevada', 'NV'],\n\t\t\t['New Hampshire', 'NH'],\n\t\t\t['New Jersey', 'NJ'],\n\t\t\t['New Mexico', 'NM'],\n\t\t\t['New York', 'NY'],\n\t\t\t['North Carolina', 'NC'],\n\t\t\t['North Dakota', 'ND'],\n\t\t\t['Ohio', 'OH'],\n\t\t\t['Oklahoma', 'OK'],\n\t\t\t['Oregon', 'OR'],\n\t\t\t['Pennsylvania', 'PA'],\n\t\t\t['Puerto Rico', 'PR'],\n\t\t\t['Rhode Island', 'RI'],\n\t\t\t['South Carolina', 'SC'],\n\t\t\t['South Dakota', 'SD'],\n\t\t\t['Tennessee', 'TN'],\n\t\t\t['Texas', 'TX'],\n\t\t\t['Utah', 'UT'],\n\t\t\t['U.S. Minor Outlying Islands', 'UM'],\n\t\t\t['Vermont', 'VT'],\n\t\t\t['Virgin Islands of the U.S.', 'VI'],\n\t\t\t['Virginia', 'VA'],\n\t\t\t['Washington', 'WA'],\n\t\t\t['West Virginia', 'WV'],\n\t\t\t['Wisconsin', 'WI'],\n\t\t\t['Wyoming', 'WY']\n\t\t]\n\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Trustee/FiltersView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
            \\n\\t
            \\n\\t\\t
            \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
            \\n\\t\\t
            \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
            \\n\\t\\t
            \\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t
            \\n\\t
            \\n
            \\n\\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/01-trustee-filters.mustache\n// module id = 771\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t

            Our Trustees

            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t

            \");t.b(\"\\n\" + i);t.b(\"\t\t\tKiva Trustees source entrepreneurs they believe in and publicly endorse them as borrowers on the Kiva website.\");t.b(\"\\n\" + i);t.b(\"\t\t

            \");t.b(\"\\n\" + i);t.b(\"\t\t

            \");t.b(\"\\n\" + i);t.b(\"\t\t\tTrustees have no financial liability for loans, but their reputation is tied to the repayment rate of the borrowers they endorse. Unlike Field Partners, Trustees never actually handle the loans, which Kiva disburses directly to the borrowers. Trustees can be individuals or organizations.\");t.b(\"\\n\" + i);t.b(\"\t\t

            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"

            \");t.b(\"\\n\" + i);t.b(\" Kiva US is accepting Trustee applications by invitation at this time.\");t.b(\"\\n\" + i);t.b(\" If you are interested in partnering with Kiva, please e-mail trustees@kiva.org.\");t.b(\"\\n\" + i);t.b(\" If you are affiliated with LISC, please mention this in your e-mail.\");t.b(\"\\n\" + i);t.b(\"

            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
            \\n\\t
            \\n\\t\\t

            Our Trustees

            \\n\\t
            \\n\\t
            \\n\\t\\t

            \\n\\t\\t\\tKiva Trustees source entrepreneurs they believe in and publicly endorse them as borrowers on the Kiva website.\\n\\t\\t

            \\n\\t\\t

            \\n\\t\\t\\tTrustees have no financial liability for loans, but their reputation is tied to the repayment rate of the borrowers they endorse. Unlike Field Partners, Trustees never actually handle the loans, which Kiva disburses directly to the borrowers. Trustees can be individuals or organizations.\\n\\t\\t

            \\n\\t
            \\n\\n\\t
            \\n

            \\n Kiva US is accepting Trustee applications by invitation at this time.\\n If you are interested in partnering with Kiva, please e-mail trustees@kiva.org.\\n If you are affiliated with LISC, please mention this in your e-mail.\\n

            \\n\\t
            \\n
            \\n
            \\n
            \\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/06-trustees/03-trustee-listing.mustache\n// module id = 772\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette');\n\n\treturn Marionette.AppRouter.extend({\n\t\tappRoutes: {\n\t\t\t'trustees': 'showListingView'\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./routers/TrusteeRouter.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
            \\n
            \\n\\t{{! @todo make this reusable }}\\n\\t
            \\n\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t\\t\\t\\n\\t\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t
            \\n\\t
            \\n
            \\n
            \\n\\t{{! @todo make this reusable }}\\n\\t
            \\n\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t\\t\\t\\n\\t\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t
            \\n\\t
            \\n
            \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/views/Community/Team/TeamMembersView.mustache\n// module id = 775\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar Marionette = require('marionette')\n\t, Backgrid = require('backgrid')\n\t, TeamRequestsBackgrid = require('./TeamRequestsBackgrid/TeamRequestsBackgrid')\n\t, teamRequestsViewTpl = require('hgn!./TeamRequestsBackgridView.mustache');\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: teamRequestsViewTpl\n\n\n\t\t, className: 'TeamRequestsBackgridView'\n\n\n\t\t, ui: {\n\t\t\t$teamRequestsContainer: '.teamRequestsContainer'\n\t\t\t, $numTeamRequests: '.numTeamRequests'\n\t\t}\n\n\n\t\t, serializeData: function () {\n\t\t\tvar count = this.teamRequestsCollection.meta('count');\n\n\t\t\treturn {\n\t\t\t\t__requestsCount: count\n\t\t\t\t, __showMoreRequests: count > this.teamRequestsCollection.size()\n\t\t\t\t, __teamRequestsUrl: wwwApp.url('community', 'requests')\n\t\t\t};\n\t\t}\n\n\n\t\t, onRender: function () {\n\t\t\tthis.ui.$teamRequestsContainer.append(this.teamRequestsBackgrid.render().el);\n\t\t}\n\n\n\t\t, initializeBackgrid: function () {\n\t\t\tthis.teamRequestsBackgrid = new TeamRequestsBackgrid({\n\t\t\t\tclassName: 'teamRequestsBackgrid actionListBackgrid ' + Backgrid.Grid.prototype.className\n\t\t\t\t, collection: this.teamRequestsCollection\n\t\t\t});\n\t\t}\n\n\n\t\t, initialize: function (options) {\n\t\t\tthis.options = options = options || {};\n\t\t\tthis.teamRequestsCollection = options.teamRequestsCollection;\n\t\t\tthis.initializeBackgrid();\n\n\t\t\t// Not ideal to manipulate the dom here, but in this case it is more practical than re-rendering the entire view\n\t\t\tthis.listenTo(this.teamRequestsCollection, 'add remove', function () {\n\t\t\t\tthis.ui.$numTeamRequests.html(this.teamRequestsCollection.meta('count'));\n\t\t\t});\n\n\t\t\tthis.render();\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamRequest/TeamRequestsBackgridView.js","define(function (require) {\n\t'use strict';\n\n\tvar Backgrid = require('kvBackgrid')\n\t, TeamRequestActionCell = require('./TeamRequestActionCell')\n\t, LenderCardView = require('../TeamRequestCardView');\n\n\n\treturn Backgrid.Grid.extend({\n\t\tcolumns: [\n\t\t\t{\n\t\t\t\tcell: Backgrid.Cell.extend({\n\t\t\t\t\trender: function () {\n\t\t\t\t\t\tthis.$el.html(new LenderCardView({model: this.model}).render().el);\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t, editable: false\n\t\t\t}\n\n\t\t\t, {\n\t\t\t\tcell: TeamRequestActionCell\n\t\t\t\t, editable: false\n\t\t\t}\n\t\t]\n\t\t, header: null\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamRequest/TeamRequestsBackgrid/TeamRequestsBackgrid.js","/*\n backgrid-paginator\n http://github.com/wyuenho/backgrid\n\n Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors\n Licensed under the MIT @license.\n*/\n(function (root, factory) {\n\n // CommonJS\n if (typeof exports == \"object\") {\n module.exports = factory(require(\"underscore\"),\n require(\"backbone\"),\n require(\"backgrid\"),\n require(\"backbone.paginator\"));\n }\n // AMD. Register as an anonymous module.\n else if (typeof define == \"function\" && define.amd) {\n define([\"underscore\", \"backbone\", \"backgrid\", \"backbone.paginator\"], factory);\n }\n // Browser\n else {\n factory(root._, root.Backbone, root.Backgrid);\n }\n\n}(this, function (_, Backbone, Backgrid) {\n\n \"use strict\";\n\n /**\n PageHandle is a class that renders the actual page handles and reacts to\n click events for pagination.\n\n This class acts in two modes - control or discrete page handle modes. If\n one of the `is*` flags is `true`, an instance of this class is under\n control page handle mode. Setting a `pageIndex` to an instance of this\n class under control mode has no effect and the correct page index will\n always be inferred from the `is*` flag. Only one of the `is*` flags should\n be set to `true` at a time. For example, an instance of this class cannot\n simultaneously be a rewind control and a fast forward control. A `label`\n and a `title` function or a string are required to be passed to the\n constuctor under this mode. If a `title` function is provided, it __MUST__\n accept a hash parameter `data`, which contains a key `label`. Its result\n will be used to render the generated anchor's title attribute.\n\n If all of the `is*` flags is set to `false`, which is the default, an\n instance of this class will be in discrete page handle mode. An instance\n under this mode requires the `pageIndex` to be passed from the constructor\n as an option and it __MUST__ be a 0-based index of the list of page numbers\n to render. The constuctor will normalize the base to the same base the\n underlying PageableCollection collection instance uses. A `label` is not\n required under this mode, which will default to the equivalent 1-based page\n index calculated from `pageIndex` and the underlying PageableCollection\n instance. A provided `label` will still be honored however. The `title`\n parameter is also not required under this mode, in which case the default\n `title` function will be used. You are encouraged to provide your own\n `title` function however if you wish to localize the title strings.\n\n If this page handle represents the current page, an `active` class will be\n placed on the root list element.\n\n If this page handle is at the border of the list of pages, a `disabled`\n class will be placed on the root list element.\n\n Only page handles that are neither `active` nor `disabled` will respond to\n click events and triggers pagination.\n\n @class Backgrid.Extension.PageHandle\n */\n var PageHandle = Backgrid.Extension.PageHandle = Backbone.View.extend({\n\n /** @property */\n tagName: \"li\",\n\n /** @property */\n events: {\n \"click a\": \"changePage\"\n },\n\n /**\n @property {string|function(Object.): string} title\n The title to use for the `title` attribute of the generated page handle\n anchor elements. It can be a string or a function that takes a `data`\n parameter, which contains a mandatory `label` key which provides the\n label value to be displayed.\n */\n title: function (data) {\n return 'Page ' + data.label;\n },\n\n /**\n @property {boolean} isRewind Whether this handle represents a rewind\n control\n */\n isRewind: false,\n\n /**\n @property {boolean} isBack Whether this handle represents a back\n control\n */\n isBack: false,\n\n /**\n @property {boolean} isForward Whether this handle represents a forward\n control\n */\n isForward: false,\n\n /**\n @property {boolean} isFastForward Whether this handle represents a fast\n forward control\n */\n isFastForward: false,\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {number} pageIndex 0-based index of the page number this handle\n handles. This parameter will be normalized to the base the underlying\n PageableCollection uses.\n @param {string} [options.label] If provided it is used to render the\n anchor text, otherwise the normalized pageIndex will be used\n instead. Required if any of the `is*` flags is set to `true`.\n @param {string} [options.title]\n @param {boolean} [options.isRewind=false]\n @param {boolean} [options.isBack=false]\n @param {boolean} [options.isForward=false]\n @param {boolean} [options.isFastForward=false]\n */\n initialize: function (options) {\n var collection = this.collection;\n var state = collection.state;\n var currentPage = state.currentPage;\n var firstPage = state.firstPage;\n var lastPage = state.lastPage;\n\n _.extend(this, _.pick(options,\n [\"isRewind\", \"isBack\", \"isForward\", \"isFastForward\"]));\n\n var pageIndex;\n if (this.isRewind) pageIndex = firstPage;\n else if (this.isBack) pageIndex = Math.max(firstPage, currentPage - 1);\n else if (this.isForward) pageIndex = Math.min(lastPage, currentPage + 1);\n else if (this.isFastForward) pageIndex = lastPage;\n else {\n pageIndex = +options.pageIndex;\n pageIndex = (firstPage ? pageIndex + 1 : pageIndex);\n }\n this.pageIndex = pageIndex;\n\n this.label = (options.label || (firstPage ? pageIndex : pageIndex + 1)) + '';\n var title = options.title || this.title;\n this.title = _.isFunction(title) ? title({label: this.label}) : title;\n },\n\n /**\n Renders a clickable anchor element under a list item.\n */\n render: function () {\n this.$el.empty();\n var anchor = document.createElement(\"a\");\n anchor.href = '#';\n if (this.title) anchor.title = this.title;\n anchor.innerHTML = this.label;\n this.el.appendChild(anchor);\n\n var collection = this.collection;\n var state = collection.state;\n var currentPage = state.currentPage;\n var pageIndex = this.pageIndex;\n\n if (this.isRewind && currentPage == state.firstPage ||\n this.isBack && !collection.hasPreviousPage() ||\n this.isForward && !collection.hasNextPage() ||\n this.isFastForward && (currentPage == state.lastPage || state.totalPages < 1)) {\n this.$el.addClass(\"disabled\");\n }\n else if (!(this.isRewind ||\n this.isBack ||\n this.isForward ||\n this.isFastForward) &&\n state.currentPage == pageIndex) {\n this.$el.addClass(\"active\");\n }\n\n this.delegateEvents();\n return this;\n },\n\n /**\n jQuery click event handler. Goes to the page this PageHandle instance\n represents. No-op if this page handle is currently active or disabled.\n */\n changePage: function (e) {\n e.preventDefault();\n var $el = this.$el, col = this.collection;\n if (!$el.hasClass(\"active\") && !$el.hasClass(\"disabled\")) {\n if (this.isRewind) col.getFirstPage({reset: true});\n else if (this.isBack) col.getPreviousPage({reset: true});\n else if (this.isForward) col.getNextPage({reset: true});\n else if (this.isFastForward) col.getLastPage({reset: true});\n else col.getPage(this.pageIndex, {reset: true});\n }\n return this;\n }\n\n });\n\n /**\n Paginator is a Backgrid extension that renders a series of configurable\n pagination handles. This extension is best used for splitting a large data\n set across multiple pages. If the number of pages is larger then a\n threshold, which is set to 10 by default, the page handles are rendered\n within a sliding window, plus the rewind, back, forward and fast forward\n control handles. The individual control handles can be turned off.\n\n @class Backgrid.Extension.Paginator\n */\n var Paginator = Backgrid.Extension.Paginator = Backbone.View.extend({\n\n /** @property */\n className: \"backgrid-paginator\",\n\n /** @property */\n windowSize: 10,\n\n /**\n @property {number} slideScale the number used by #slideHowMuch to scale\n `windowSize` to yield the number of pages to slide. For example, the\n default windowSize(10) * slideScale(0.5) yields 5, which means the window\n will slide forward 5 pages as soon as you've reached page 6. The smaller\n the scale factor the less pages to slide, and vice versa.\n\n Also See:\n\n - #slideMaybe\n - #slideHowMuch\n */\n slideScale: 0.5,\n\n /**\n @property {Object.>} controls You can\n disable specific control handles by setting the keys in question to\n null. The defaults will be merged with your controls object, with your\n changes taking precedent.\n */\n controls: {\n rewind: {\n label: \"《\",\n title: \"First\"\n },\n back: {\n label: \"〈\",\n title: \"Previous\"\n },\n forward: {\n label: \"〉\",\n title: \"Next\"\n },\n fastForward: {\n label: \"》\",\n title: \"Last\"\n }\n },\n\n /** @property */\n renderIndexedPageHandles: true,\n\n /**\n @property renderMultiplePagesOnly. Determines if the paginator\n should show in cases where the collection has more than one page.\n Default is false for backwards compatibility.\n */\n renderMultiplePagesOnly: false,\n\n /**\n @property {Backgrid.Extension.PageHandle} pageHandle. The PageHandle\n class to use for rendering individual handles\n */\n pageHandle: PageHandle,\n\n /** @property */\n goBackFirstOnSort: true,\n\n /**\n Initializer.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {boolean} [options.controls]\n @param {boolean} [options.pageHandle=Backgrid.Extension.PageHandle]\n @param {boolean} [options.goBackFirstOnSort=true]\n @param {boolean} [options.renderMultiplePagesOnly=false]\n */\n initialize: function (options) {\n var self = this;\n self.controls = _.defaults(options.controls || {}, self.controls,\n Paginator.prototype.controls);\n\n _.extend(self, _.pick(options || {}, \"windowSize\", \"pageHandle\",\n \"slideScale\", \"goBackFirstOnSort\",\n \"renderIndexedPageHandles\",\n \"renderMultiplePagesOnly\"));\n\n var col = self.collection;\n self.listenTo(col, \"add\", self.render);\n self.listenTo(col, \"remove\", self.render);\n self.listenTo(col, \"reset\", self.render);\n self.listenTo(col, \"backgrid:sorted\", function () {\n if (self.goBackFirstOnSort && col.state.currentPage !== col.state.firstPage) col.getFirstPage({reset: true});\n });\n },\n\n /**\n Decides whether the window should slide. This method should return 1 if\n sliding should occur and 0 otherwise. The default is sliding should occur\n if half of the pages in a window has been reached.\n\n __Note__: All the parameters have been normalized to be 0-based.\n\n @param {number} firstPage\n @param {number} lastPage\n @param {number} currentPage\n @param {number} windowSize\n @param {number} slideScale\n\n @return {0|1}\n */\n slideMaybe: function (firstPage, lastPage, currentPage, windowSize, slideScale) {\n return Math.round(currentPage % windowSize / windowSize);\n },\n\n /**\n Decides how many pages to slide when sliding should occur. The default\n simply scales the `windowSize` to arrive at a fraction of the `windowSize`\n to increment.\n\n __Note__: All the parameters have been normalized to be 0-based.\n\n @param {number} firstPage\n @param {number} lastPage\n @param {number} currentPage\n @param {number} windowSize\n @param {number} slideScale\n\n @return {number}\n */\n slideThisMuch: function (firstPage, lastPage, currentPage, windowSize, slideScale) {\n return ~~(windowSize * slideScale);\n },\n\n _calculateWindow: function () {\n var collection = this.collection;\n var state = collection.state;\n\n // convert all indices to 0-based here\n var firstPage = state.firstPage;\n var lastPage = +state.lastPage;\n lastPage = Math.max(0, firstPage ? lastPage - 1 : lastPage);\n var currentPage = Math.max(state.currentPage, state.firstPage);\n currentPage = firstPage ? currentPage - 1 : currentPage;\n var windowSize = this.windowSize;\n var slideScale = this.slideScale;\n var windowStart = Math.floor(currentPage / windowSize) * windowSize;\n if (currentPage <= lastPage - this.slideThisMuch()) {\n windowStart += (this.slideMaybe(firstPage, lastPage, currentPage, windowSize, slideScale) *\n this.slideThisMuch(firstPage, lastPage, currentPage, windowSize, slideScale));\n }\n var windowEnd = Math.min(lastPage + 1, windowStart + windowSize);\n return [windowStart, windowEnd];\n },\n\n /**\n Creates a list of page handle objects for rendering.\n\n @return {Array.} an array of page handle objects hashes\n */\n makeHandles: function () {\n\n var handles = [];\n var collection = this.collection;\n\n var window = this._calculateWindow();\n var winStart = window[0], winEnd = window[1];\n\n if (this.renderIndexedPageHandles) {\n for (var i = winStart; i < winEnd; i++) {\n handles.push(new this.pageHandle({\n collection: collection,\n pageIndex: i\n }));\n }\n }\n\n var controls = this.controls;\n _.each([\"back\", \"rewind\", \"forward\", \"fastForward\"], function (key) {\n var value = controls[key];\n if (value) {\n var handleCtorOpts = {\n collection: collection,\n title: value.title,\n label: value.label\n };\n handleCtorOpts[\"is\" + key.slice(0, 1).toUpperCase() + key.slice(1)] = true;\n var handle = new this.pageHandle(handleCtorOpts);\n if (key == \"rewind\" || key == \"back\") handles.unshift(handle);\n else handles.push(handle);\n }\n }, this);\n\n return handles;\n },\n\n /**\n Render the paginator handles inside an unordered list.\n */\n render: function () {\n this.$el.empty();\n\n var totalPages = this.collection.state.totalPages;\n\n // Don't render if collection is empty\n if(this.renderMultiplePagesOnly && totalPages <= 1) {\n return this;\n }\n\n if (this.handles) {\n for (var i = 0, l = this.handles.length; i < l; i++) {\n this.handles[i].remove();\n }\n }\n\n var handles = this.handles = this.makeHandles();\n\n var ul = document.createElement(\"ul\");\n for (var i = 0; i < handles.length; i++) {\n ul.appendChild(handles[i].render().el);\n }\n\n this.el.appendChild(ul);\n\n return this;\n }\n\n });\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/backgrid-paginator/backgrid-paginator.js\n// module id = 778\n// module chunks = 0","/*\n backbone.paginator\n http://github.com/backbone-paginator/backbone.paginator\n\n Copyright (c) 2016 Jimmy Yuen Ho Wong and contributors\n\n @module\n @license MIT\n*/\n\n(function (factory) {\n\n // CommonJS\n if (typeof exports == \"object\" && typeof require == \"function\") {\n module.exports = factory(require(\"underscore\"), require(\"backbone\"));\n }\n // AMD\n else if (typeof define == \"function\" && define.amd) {\n define([\"underscore\", \"backbone\"], factory);\n }\n // Browser\n else if (typeof _ !== \"undefined\" && typeof Backbone !== \"undefined\") {\n var oldPageableCollection = Backbone.PageableCollection;\n var PageableCollection = factory(_, Backbone);\n\n /**\n __BROWSER ONLY__\n\n If you already have an object named `PageableCollection` attached to the\n `Backbone` module, you can use this to return a local reference to this\n PageableCollection class and reset the name PageableCollection to its\n previous definition.\n\n // The left hand side gives you a reference to this\n // PageableCollection implementation, the right hand side\n // resets PageableCollection to your other PageableCollection.\n var PageableCollection = PageableCollection.noConflict();\n\n @static\n @return {PageableCollection}\n */\n Backbone.PageableCollection.noConflict = function () {\n Backbone.PageableCollection = oldPageableCollection;\n return PageableCollection;\n };\n }\n\n}(function (_, Backbone) {\n\n \"use strict\";\n\n var _extend = _.extend;\n var _omit = _.omit;\n var _clone = _.clone;\n var _each = _.each;\n var _pick = _.pick;\n var _contains = _.includes;\n var _isEmpty = _.isEmpty;\n var _pairs = _.pairs || _.toPairs;\n var _invert = _.invert;\n var _isArray = _.isArray;\n var _isFunction = _.isFunction;\n var _isObject = _.isObject;\n var _keys = _.keys;\n var _isUndefined = _.isUndefined;\n var ceil = Math.ceil;\n var floor = Math.floor;\n var max = Math.max;\n\n var BBColProto = Backbone.Collection.prototype;\n\n function finiteInt (val, name) {\n if (!_.isNumber(val) || _.isNaN(val) || !_.isFinite(val) || ~~val !== val) {\n throw new TypeError(\"`\" + name + \"` must be a finite integer\");\n }\n return val;\n }\n\n function queryStringToParams (qs) {\n var kvp, k, v, ls, params = {}, decode = decodeURIComponent;\n var kvps = qs.split(\"&\");\n for (var i = 0, l = kvps.length; i < l; i++) {\n var param = kvps[i];\n kvp = param.split(\"=\"), k = kvp[0], v = kvp[1];\n if (v == null) v = true;\n k = decode(k), v = decode(v), ls = params[k];\n if (_isArray(ls)) ls.push(v);\n else if (ls) params[k] = [ls, v];\n else params[k] = v;\n }\n return params;\n }\n\n // hack to make sure the whatever event handlers for this event is run\n // before func is, and the event handlers that func will trigger.\n function runOnceAtLastHandler (col, event, func) {\n var eventHandlers = col._events[event];\n if (eventHandlers && eventHandlers.length) {\n var lastHandler = eventHandlers[eventHandlers.length - 1];\n var oldCallback = lastHandler.callback;\n lastHandler.callback = function () {\n try {\n oldCallback.apply(this, arguments);\n func();\n }\n catch (e) {\n throw e;\n }\n finally {\n lastHandler.callback = oldCallback;\n }\n };\n }\n else func();\n }\n\n var PARAM_TRIM_RE = /[\\s'\"]/g;\n var URL_TRIM_RE = /[<>\\s'\"]/g;\n\n\n /**\n * State change event. Fired when PageableCollection#state gets updated\n *\n * @event pageable:state:change\n * @type {object} The PageableCollection#state object of this\n * PageableCollection instance\n */\n\n\n /**\n Drop-in replacement for Backbone.Collection. Supports server-side and\n client-side pagination and sorting. Client-side mode also support fully\n multi-directional synchronization of changes between pages.\n\n @class PageableCollection\n @extends Backbone.Collection\n */\n var PageableCollection = Backbone.PageableCollection = Backbone.Collection.extend({\n\n /**\n The container object to store all pagination states.\n\n You can override the default state by extending this class or specifying\n them in an `options` hash to the constructor.\n\n @property {number} firstPage = 1 - The first page index. Set to 0 if\n your server API uses 0-based indices. You should only override this value\n during extension, initialization or reset by the server after\n fetching. This value should be read only at other times.\n\n @property {number} lastPage = null - The last page index. This value\n is __read only__ and it's calculated based on whether `firstPage` is 0 or\n 1, during bootstrapping, fetching and resetting. Please don't change this\n value under any circumstances.\n\n @property {number} currentPage = null - The current page index. You\n should only override this value during extension, initialization or reset\n by the server after fetching. This value should be read only at other\n times. Can be a 0-based or 1-based index, depending on whether\n `firstPage` is 0 or 1. If left as default, it will be set to `firstPage`\n on initialization.\n\n @property {number} pageSize = 25 - How many records to show per\n page. This value is __read only__ after initialization, if you want to\n change the page size after initialization, you must call\n PageableCollection#setPageSize.\n\n @property {number} totalPages = null - How many pages there are. This\n value is __read only__ and it is calculated from `totalRecords`.\n\n @property {number} totalRecords = null - How many records there\n are. This value is __required__ under server mode. This value is optional\n for client mode as the number will be the same as the number of models\n during bootstrapping and during fetching, either supplied by the server\n in the metadata, or calculated from the size of the response.\n\n @property {string} sortKey = null - The model attribute to use for\n sorting.\n\n @property {number} order = -1 - The order to use for sorting. Specify\n -1 for ascending order or 1 for descending order. If 0, no client side\n sorting will be done and the order query parameter will not be sent to\n the server during a fetch.\n */\n state: {\n firstPage: 1,\n lastPage: null,\n currentPage: null,\n pageSize: 25,\n totalPages: null,\n totalRecords: null,\n sortKey: null,\n order: -1\n },\n\n /**\n @property {string} mode = \"server\" The mode of operations for this\n collection. `\"server\"` paginates on the server-side, `\"client\"` paginates\n on the client-side and `\"infinite\"` paginates on the server-side for APIs\n that do not support `totalRecords`.\n */\n mode: \"server\",\n\n /**\n A translation map to convert PageableCollection state attributes\n to the query parameters accepted by your server API.\n\n You can override the default state by extending this class or specifying\n them in `options.queryParams` object hash to the constructor.\n\n @property {string|function():string} currentPage = \"page\"\n @property {string|function():string} pageSize = \"per_page\"\n @property {string|function():string} totalPages = \"total_pages\"\n @property {string|function():string} totalRecords = \"total_entries\"\n @property {string|function():string} sortKey = \"sort_by\"\n @property {string|function():string} order = \"order\"\n @property {Object} directions = {\"-1\": \"asc\", \"1\": \"desc\"} - A map for\n translating a PageableCollection#state.order constant to the ones your\n server API accepts.\n */\n queryParams: {\n currentPage: \"page\",\n pageSize: \"per_page\",\n totalPages: \"total_pages\",\n totalRecords: \"total_entries\",\n sortKey: \"sort_by\",\n order: \"order\",\n directions: {\n \"-1\": \"asc\",\n \"1\": \"desc\"\n }\n },\n\n /**\n Given a list of models or model attributues, bootstraps the full\n collection in client mode or infinite mode, or just the page you want in\n server mode.\n\n If you want to initialize a collection to a different state than the\n default, you can specify them in `options.state`. Any state parameters\n supplied will be merged with the default. If you want to change the\n default mapping from PageableCollection#state keys to your server API's\n query parameter names, you can specifiy an object hash in\n `option.queryParams`. Likewise, any mapping provided will be merged with\n the default. Lastly, all Backbone.Collection constructor options are also\n accepted.\n\n See:\n\n - PageableCollection#state\n - PageableCollection#queryParams\n - [Backbone.Collection#initialize](http://backbonejs.org/#Collection-constructor)\n\n @constructor\n\n @property {Backbone.Collection} fullCollection - __CLIENT MODE ONLY__\n This collection is the internal storage for the bootstrapped or fetched\n models. You can use this if you want to operate on all the pages.\n\n @param {Array.} models\n\n @param {Object} options\n\n @param {function(*, *): number} options.comparator - If specified, this\n comparator is set to the current page under server mode, or the\n PageableCollection#fullCollection otherwise.\n\n @param {boolean} options.full 0 If `false` and either a\n `options.comparator` or `sortKey` is defined, the comparator is attached\n to the current page. Default is `true` under client or infinite mode and\n the comparator will be attached to the PageableCollection#fullCollection.\n\n @param {Object} options.state - The state attributes overriding the defaults.\n\n @param {string} options.state.sortKey - The model attribute to use for\n sorting. If specified instead of `options.comparator`, a comparator will\n be automatically created using this value, and optionally a sorting order\n specified in `options.state.order`. The comparator is then attached to\n the new collection instance.\n\n @param {number} options.state.order - The order to use for sorting. Specify\n -1 for ascending order and 1 for descending order.\n\n @param {Object} options.queryParam\n */\n constructor: function (models, options) {\n\n BBColProto.constructor.apply(this, arguments);\n\n options = options || {};\n\n var mode = this.mode = options.mode || this.mode || PageableProto.mode;\n\n var queryParams = _extend({}, PageableProto.queryParams, this.queryParams,\n options.queryParams || {});\n\n queryParams.directions = _extend({},\n PageableProto.queryParams.directions,\n this.queryParams.directions,\n queryParams.directions);\n\n this.queryParams = queryParams;\n\n var state = this.state = _extend({}, PageableProto.state, this.state,\n options.state);\n\n state.currentPage = state.currentPage == null ?\n state.firstPage :\n state.currentPage;\n\n if (!_isArray(models)) models = models ? [models] : [];\n models = models.slice();\n\n if (mode != \"server\" && state.totalRecords == null && !_isEmpty(models)) {\n // Can't use models.length naively here because Backbone.Collection will\n // dedupe by `idAttribute`\n state.totalRecords = this.length;\n }\n\n this.switchMode(mode, _extend({fetch: false,\n resetState: false,\n models: models}, options));\n\n var comparator = options.comparator;\n\n if (state.sortKey && !comparator) {\n this.setSorting(state.sortKey, state.order, options);\n }\n\n if (mode != \"server\") {\n var fullCollection = this.fullCollection;\n\n if (comparator && options.full) {\n this.comparator = null;\n fullCollection.comparator = comparator;\n }\n\n if (options.full) fullCollection.sort();\n\n // make sure the models in the current page and full collection have the\n // same references\n if (!_isEmpty(models)) {\n this.getPage(state.currentPage);\n }\n }\n\n this._initState = _clone(this.state);\n },\n\n /**\n Makes a Backbone.Collection that contains all the pages.\n\n @private\n @param {Array.} models\n @param {Object} options Options for Backbone.Collection constructor.\n @return {Backbone.Collection}\n */\n _makeFullCollection: function (models, options) {\n\n var properties = [\"url\", \"model\", \"sync\", \"comparator\"];\n var thisProto = this.constructor.prototype;\n var i, length, prop;\n\n var proto = {};\n for (i = 0, length = properties.length; i < length; i++) {\n prop = properties[i];\n if (!_isUndefined(thisProto[prop])) {\n proto[prop] = thisProto[prop];\n }\n }\n\n var fullCollection = new (Backbone.Collection.extend(proto))(models, options);\n\n for (i = 0, length = properties.length; i < length; i++) {\n prop = properties[i];\n if (this[prop] !== thisProto[prop]) {\n fullCollection[prop] = this[prop];\n }\n }\n\n return fullCollection;\n },\n\n /**\n Factory method that returns a Backbone event handler that responses to\n the `add`, `remove`, `reset`, and the `sort` events. The returned event\n handler will synchronize the current page collection and the full\n collection's models.\n\n @private\n\n @fires PageableCollection#pageable:state:change when handling an\n `add`, `remove`, or `reset` event\n\n @param {PageableCollection} pageCol\n @param {Backbone.Collection} fullCol\n\n @return {function(string, Backbone.Model, Backbone.Collection, Object)}\n Collection event handler\n */\n _makeCollectionEventHandler: function (pageCol, fullCol) {\n\n return function collectionEventHandler (event, model, collection, options) {\n\n var handlers = pageCol._handlers;\n _each(_keys(handlers), function (event) {\n var handler = handlers[event];\n pageCol.off(event, handler);\n fullCol.off(event, handler);\n });\n\n var state = _clone(pageCol.state);\n var firstPage = state.firstPage;\n var currentPage = firstPage === 0 ?\n state.currentPage :\n state.currentPage - 1;\n var pageSize = state.pageSize;\n var pageStart = currentPage * pageSize, pageEnd = pageStart + pageSize;\n\n if (event == \"add\") {\n var pageIndex, fullIndex, addAt, colToAdd, options = options || {};\n if (collection == fullCol) {\n fullIndex = fullCol.indexOf(model);\n if (fullIndex >= pageStart && fullIndex < pageEnd) {\n colToAdd = pageCol;\n pageIndex = addAt = fullIndex - pageStart;\n }\n }\n else {\n pageIndex = pageCol.indexOf(model);\n fullIndex = pageStart + pageIndex;\n colToAdd = fullCol;\n var addAt = !_isUndefined(options.at) ?\n options.at + pageStart :\n fullIndex;\n }\n\n if (!options.onRemove) {\n ++state.totalRecords;\n delete options.onRemove;\n }\n\n pageCol.state = pageCol._checkState(state);\n\n if (colToAdd) {\n colToAdd.add(model, _extend({}, options, {at: addAt}));\n var modelToRemove = pageIndex >= pageSize ?\n model :\n !_isUndefined(options.at) && addAt < pageEnd && pageCol.length > pageSize ?\n pageCol.at(pageSize) :\n null;\n if (modelToRemove) {\n runOnceAtLastHandler(collection, event, function () {\n pageCol.remove(modelToRemove, {onAdd: true});\n });\n }\n }\n\n if (!options.silent) pageCol.trigger(\"pageable:state:change\", pageCol.state);\n }\n\n // remove the model from the other collection as well\n if (event == \"remove\") {\n if (!options.onAdd) {\n // decrement totalRecords and update totalPages and lastPage\n if (!--state.totalRecords) {\n state.totalRecords = null;\n state.totalPages = null;\n }\n else {\n var totalPages = state.totalPages = ceil(state.totalRecords / pageSize);\n state.lastPage = firstPage === 0 ? totalPages - 1 : totalPages || firstPage;\n if (state.currentPage > totalPages) state.currentPage = state.lastPage;\n }\n pageCol.state = pageCol._checkState(state);\n\n var nextModel, removedIndex = options.index;\n if (collection == pageCol) {\n if (nextModel = fullCol.at(pageEnd)) {\n runOnceAtLastHandler(pageCol, event, function () {\n pageCol.push(nextModel, {onRemove: true});\n });\n }\n else if (!pageCol.length && state.totalRecords) {\n pageCol.reset(fullCol.models.slice(pageStart - pageSize, pageEnd - pageSize),\n _extend({}, options, {parse: false}));\n }\n fullCol.remove(model);\n }\n else if (removedIndex >= pageStart && removedIndex < pageEnd) {\n if (nextModel = fullCol.at(pageEnd - 1)) {\n runOnceAtLastHandler(pageCol, event, function () {\n pageCol.push(nextModel, {onRemove: true});\n });\n }\n pageCol.remove(model);\n if (!pageCol.length && state.totalRecords) {\n pageCol.reset(fullCol.models.slice(pageStart - pageSize, pageEnd - pageSize),\n _extend({}, options, {parse: false}));\n }\n }\n }\n else delete options.onAdd;\n\n if (!options.silent) pageCol.trigger(\"pageable:state:change\", pageCol.state);\n }\n\n if (event == \"reset\") {\n options = collection;\n collection = model;\n\n // Reset that's not a result of getPage\n if (collection == pageCol && options.from == null &&\n options.to == null) {\n var head = fullCol.models.slice(0, pageStart);\n var tail = fullCol.models.slice(pageStart + pageCol.models.length);\n fullCol.reset(head.concat(pageCol.models).concat(tail), options);\n }\n else if (collection == fullCol) {\n if (!(state.totalRecords = fullCol.models.length)) {\n state.totalRecords = null;\n state.totalPages = null;\n }\n if (pageCol.mode == \"client\") {\n firstPage = state.lastPage = state.currentPage = state.firstPage;\n currentPage = firstPage === 0 ? state.currentPage : state.currentPage - 1;\n pageStart = currentPage * pageSize;\n pageEnd = pageStart + pageSize;\n }\n pageCol.state = pageCol._checkState(state);\n pageCol.reset(fullCol.models.slice(pageStart, pageEnd),\n _extend({}, options, {parse: false}));\n }\n\n if (!options.silent) pageCol.trigger(\"pageable:state:change\", pageCol.state);\n }\n\n if (event == \"sort\") {\n options = collection;\n collection = model;\n if (collection === fullCol) {\n pageCol.reset(fullCol.models.slice(pageStart, pageEnd),\n _extend({}, options, {parse: false}));\n }\n }\n\n _each(_keys(handlers), function (event) {\n var handler = handlers[event];\n _each([pageCol, fullCol], function (col) {\n col.on(event, handler);\n var callbacks = col._events[event] || [];\n callbacks.unshift(callbacks.pop());\n });\n });\n };\n },\n\n /**\n Sanity check this collection's pagination states. Only perform checks\n when all the required pagination state values are defined and not null.\n If `totalPages` is undefined or null, it is set to `totalRecords` /\n `pageSize`. `lastPage` is set according to whether `firstPage` is 0 or 1\n when no error occurs.\n\n @private\n\n @param {Object} state\n\n @throws {TypeError} If `totalRecords`, `pageSize`, `currentPage` or\n `firstPage` is not a finite integer.\n\n @throws {RangeError} If `pageSize`, `currentPage` or `firstPage` is out\n of bounds.\n\n @return {Object} Returns the `state` object if no error was found.\n */\n _checkState: function (state) {\n var mode = this.mode;\n var links = this.links;\n var totalRecords = state.totalRecords;\n var pageSize = state.pageSize;\n var currentPage = state.currentPage;\n var firstPage = state.firstPage;\n var totalPages = state.totalPages;\n\n if (totalRecords != null && pageSize != null && currentPage != null &&\n firstPage != null && (mode == \"infinite\" ? links : true)) {\n\n totalRecords = finiteInt(totalRecords, \"totalRecords\");\n pageSize = finiteInt(pageSize, \"pageSize\");\n currentPage = finiteInt(currentPage, \"currentPage\");\n firstPage = finiteInt(firstPage, \"firstPage\");\n\n if (pageSize < 1) {\n throw new RangeError(\"`pageSize` must be >= 1\");\n }\n\n totalPages = state.totalPages = ceil(totalRecords / pageSize);\n\n if (firstPage < 0 || firstPage > 1) {\n throw new RangeError(\"`firstPage must be 0 or 1`\");\n }\n\n state.lastPage = firstPage === 0 ? max(0, totalPages - 1) : totalPages || firstPage;\n\n if (mode == \"infinite\") {\n if (!links[currentPage]) {\n throw new RangeError(\"No link found for page \" + currentPage);\n }\n }\n else if (currentPage < firstPage ||\n (totalPages > 0 &&\n (firstPage ? currentPage > totalPages : currentPage >= totalPages))) {\n throw new RangeError(\"`currentPage` must be firstPage <= currentPage \" +\n (firstPage ? \"<\" : \"<=\") +\n \" totalPages if \" + firstPage + \"-based. Got \" +\n currentPage + \".\");\n }\n }\n\n return state;\n },\n\n /**\n Change the page size of this collection.\n\n Under most if not all circumstances, you should call this method to\n change the page size of a pageable collection because it will keep the\n pagination state sane. By default, the method will recalculate the\n current page number to one that will retain the current page's models\n when increasing the page size. When decreasing the page size, this method\n will retain the last models to the current page that will fit into the\n smaller page size.\n\n If `options.first` is true, changing the page size will also reset the\n current page back to the first page instead of trying to be smart.\n\n For server mode operations, changing the page size will trigger a\n PageableCollection#fetch and subsequently a `reset` event.\n\n For client mode operations, changing the page size will `reset` the\n current page by recalculating the current page boundary on the client\n side.\n\n If `options.fetch` is true, a fetch can be forced if the collection is in\n client mode.\n\n @param {number} pageSize - The new page size to set to PageableCollection#state.\n @param {Object} options - {@link PageableCollection#fetch} options.\n @param {boolean} options.first = false 0 Reset the current page number to\n the first page if `true`.\n @param {boolean} options.fetch - If `true`, force a fetch in client mode.\n\n @throws {TypeError} If `pageSize` is not a finite integer.\n @throws {RangeError} If `pageSize` is less than 1.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n setPageSize: function (pageSize, options) {\n pageSize = finiteInt(pageSize, \"pageSize\");\n\n options = options || {first: false};\n\n var state = this.state;\n var totalPages = ceil(state.totalRecords / pageSize);\n var currentPage = totalPages ?\n max(state.firstPage, floor(totalPages * state.currentPage / state.totalPages)) :\n state.firstPage;\n\n state = this.state = this._checkState(_extend({}, state, {\n pageSize: pageSize,\n currentPage: options.first ? state.firstPage : currentPage,\n totalPages: totalPages\n }));\n\n return this.getPage(state.currentPage, _omit(options, [\"first\"]));\n },\n\n /**\n Switching between client, server and infinite mode.\n\n If switching from client to server mode, the #fullCollection is emptied\n first and then deleted and a fetch is immediately issued for the current\n page from the server. Pass `false` to `options.fetch` to skip fetching.\n\n If switching to infinite mode, and if `options.models` is given for an\n array of models,PageableCollection#links will be populated with a URL per\n page, using the default URL for this collection.\n\n If switching from server to client mode, all of the pages are immediately\n refetched. If you have too many pages, you can pass `false` to\n `options.fetch` to skip fetching.\n\n If switching to any mode from infinite mode, thePageableCollection#links\n will be deleted.\n\n @fires PageableCollection#pageable:state:change\n\n @param {\"server\"|\"client\"|\"infinite\"} mode - The mode to switch to.\n\n @param {Object} options\n\n @param {boolean} options.fetch = true - If `false`, no fetching is done.\n\n @param {boolean} options.resetState = true - If 'false', the state is not\n reset, but checked for sanity instead.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this if `options.fetch` is `false`.\n */\n switchMode: function (mode, options) {\n\n if (!_contains([\"server\", \"client\", \"infinite\"], mode)) {\n throw new TypeError('`mode` must be one of \"server\", \"client\" or \"infinite\"');\n }\n\n options = options || {fetch: true, resetState: true};\n\n var state = this.state = options.resetState ?\n _clone(this._initState) :\n this._checkState(_extend({}, this.state));\n\n this.mode = mode;\n\n var self = this;\n var fullCollection = this.fullCollection;\n var handlers = this._handlers = this._handlers || {}, handler;\n if (mode != \"server\" && !fullCollection) {\n fullCollection = this._makeFullCollection(options.models || [], options);\n fullCollection.pageableCollection = this;\n this.fullCollection = fullCollection;\n var allHandler = this._makeCollectionEventHandler(this, fullCollection);\n _each([\"add\", \"remove\", \"reset\", \"sort\"], function (event) {\n handlers[event] = handler = _.bind(allHandler, {}, event);\n self.on(event, handler);\n fullCollection.on(event, handler);\n });\n fullCollection.comparator = this._fullComparator;\n }\n else if (mode == \"server\" && fullCollection) {\n _each(_keys(handlers), function (event) {\n handler = handlers[event];\n self.off(event, handler);\n fullCollection.off(event, handler);\n });\n delete this._handlers;\n this._fullComparator = fullCollection.comparator;\n delete this.fullCollection;\n }\n\n if (mode == \"infinite\") {\n var links = this.links = {};\n var firstPage = state.firstPage;\n var totalPages = ceil(state.totalRecords / state.pageSize);\n var lastPage = firstPage === 0 ? max(0, totalPages - 1) : totalPages || firstPage;\n for (var i = state.firstPage; i <= lastPage; i++) {\n links[i] = this.url;\n }\n }\n else if (this.links) delete this.links;\n\n if (!options.silent) this.trigger(\"pageable:state:change\", state);\n\n return options.fetch ?\n this.fetch(_omit(options, \"fetch\", \"resetState\")) :\n this;\n },\n\n /**\n @return {boolean} `true` if this collection can page backward, `false`\n otherwise.\n */\n hasPreviousPage: function () {\n var state = this.state;\n var currentPage = state.currentPage;\n if (this.mode != \"infinite\") return currentPage > state.firstPage;\n return !!this.links[currentPage - 1];\n },\n\n /**\n @return {boolean} `true` if this collection can page forward, `false`\n otherwise.\n */\n hasNextPage: function () {\n var state = this.state;\n var currentPage = this.state.currentPage;\n if (this.mode != \"infinite\") return currentPage < state.lastPage;\n return !!this.links[currentPage + 1];\n },\n\n /**\n Fetch the first page in server mode, or reset the current page of this\n collection to the first page in client or infinite mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getFirstPage: function (options) {\n return this.getPage(\"first\", options);\n },\n\n /**\n Fetch the previous page in server mode, or reset the current page of this\n collection to the previous page in client or infinite mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getPreviousPage: function (options) {\n return this.getPage(\"prev\", options);\n },\n\n /**\n Fetch the next page in server mode, or reset the current page of this\n collection to the next page in client mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getNextPage: function (options) {\n return this.getPage(\"next\", options);\n },\n\n /**\n Fetch the last page in server mode, or reset the current page of this\n collection to the last page in client mode.\n\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getLastPage: function (options) {\n return this.getPage(\"last\", options);\n },\n\n /**\n Given a page index, set PageableCollection#state.currentPage to that\n index. If this collection is in server mode, fetch the page using the\n updated state, otherwise, reset the current page of this collection to\n the page specified by `index` in client mode. If `options.fetch` is true,\n a fetch can be forced in client mode before resetting the current\n page. Under infinite mode, if the index is less than the current page, a\n reset is done as in client mode. If the index is greater than the current\n page number, a fetch is made with the results **appended**\n toPageableCollection#fullCollection. The current page will then be reset\n after fetching.\n\n @fires PageableCollection#pageable:state:change\n\n @param {number|string} index - The page index to go to, or the page name to\n look up fromPageableCollection#links in infinite mode.\n @param {Object} options - {@linkPageableCollection#fetch} options or\n [reset](http://backbonejs.org/#Collection-reset) options for client mode\n when `options.fetch` is `false`.\n @param {boolean} options.fetch = false - If true, force a\n {@linkPageableCollection#fetch} in client mode.\n\n @throws {TypeError} If `index` is not a finite integer under server or\n client mode, or does not yield a URL fromPageableCollection#links under\n infinite mode.\n\n @throws {RangeError} If `index` is out of bounds.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getPage: function (index, options) {\n\n var mode = this.mode, fullCollection = this.fullCollection;\n\n options = options || {fetch: false};\n\n var state = this.state,\n firstPage = state.firstPage,\n currentPage = state.currentPage,\n lastPage = state.lastPage,\n pageSize = state.pageSize;\n\n var pageNum = index;\n switch (index) {\n case \"first\": pageNum = firstPage; break;\n case \"prev\": pageNum = currentPage - 1; break;\n case \"next\": pageNum = currentPage + 1; break;\n case \"last\": pageNum = lastPage; break;\n default: pageNum = finiteInt(index, \"index\");\n }\n\n this.state = this._checkState(_extend({}, state, {currentPage: pageNum}));\n if (!options.silent) this.trigger(\"pageable:state:change\", this.state);\n\n options.from = currentPage, options.to = pageNum;\n\n var pageStart = (firstPage === 0 ? pageNum : pageNum - 1) * pageSize;\n var pageModels = fullCollection && fullCollection.length ?\n fullCollection.models.slice(pageStart, pageStart + pageSize) :\n [];\n if ((mode == \"client\" || (mode == \"infinite\" && !_isEmpty(pageModels))) &&\n !options.fetch) {\n this.reset(pageModels, _omit(options, \"fetch\"));\n return this;\n }\n\n if (mode == \"infinite\") options.url = this.links[pageNum];\n\n return this.fetch(_omit(options, \"fetch\"));\n },\n\n /**\n Fetch the page for the provided item offset in server mode, or reset the\n current page of this collection to the page for the provided item offset\n in client mode.\n\n @param {number} offset\n @param {Object} options {@linkPageableCollection#getPage} options.\n\n @chainable\n @return {XMLHttpRequest|PageableCollection} The XMLHttpRequest\n from fetch or this.\n */\n getPageByOffset: function (offset, options) {\n if (offset < 0) {\n throw new RangeError(\"`offset must be > 0`\");\n }\n offset = finiteInt(offset, \"offset\");\n\n var page = floor(offset / this.state.pageSize);\n if (this.state.firstPage !== 0) page++;\n if (page > this.state.lastPage) page = this.state.lastPage;\n return this.getPage(page, options);\n },\n\n /**\n Overidden to make `getPage` compatible with Zepto.\n\n @param {string} method\n @param {Backbone.Model|Backbone.Collection} model\n @param {Object} options\n\n @return {XMLHttpRequest}\n */\n sync: function (method, model, options) {\n var self = this;\n if (self.mode == \"infinite\") {\n var success = options.success;\n var currentPage = self.state.currentPage;\n options.success = function (resp, status, xhr) {\n var links = self.links;\n var newLinks = self.parseLinks(resp, _extend({xhr: xhr}, options));\n if (newLinks.first) links[self.state.firstPage] = newLinks.first;\n if (newLinks.prev) links[currentPage - 1] = newLinks.prev;\n if (newLinks.next) links[currentPage + 1] = newLinks.next;\n if (success) success(resp, status, xhr);\n };\n }\n\n return (BBColProto.sync || Backbone.sync).call(self, method, model, options);\n },\n\n /**\n Parse pagination links from the server response. Only valid under\n infinite mode.\n\n Given a response body and a XMLHttpRequest object, extract pagination\n links from them for infinite paging.\n\n This default implementation parses the RFC 5988 `Link` header and extract\n 3 links from it - `first`, `prev`, `next`. Any subclasses overriding this\n method __must__ return an object hash having only the keys\n above. However, simply returning a `next` link or an empty hash if there\n are no more links should be enough for most implementations.\n\n @param {*} resp The deserialized response body.\n @param {Object} options\n @param {XMLHttpRequest} options.xhr - The XMLHttpRequest object for this\n response.\n @return {Object}\n */\n parseLinks: function (resp, options) {\n var links = {};\n var linkHeader = options.xhr.getResponseHeader(\"Link\");\n if (linkHeader) {\n var relations = [\"first\", \"prev\", \"next\"];\n _each(linkHeader.split(\",\"), function (linkValue) {\n var linkParts = linkValue.split(\";\");\n var url = linkParts[0].replace(URL_TRIM_RE, \"\");\n var params = linkParts.slice(1);\n _each(params, function (param) {\n var paramParts = param.split(\"=\");\n var key = paramParts[0].replace(PARAM_TRIM_RE, \"\");\n var value = paramParts[1].replace(PARAM_TRIM_RE, \"\");\n if (key == \"rel\" && _contains(relations, value)) links[value] = url;\n });\n });\n }\n\n return links;\n },\n\n /**\n Parse server response data.\n\n This default implementation assumes the response data is in one of two\n structures:\n\n [\n {}, // Your new pagination state\n [{}, ...] // An array of JSON objects\n ]\n\n Or,\n\n [{}] // An array of JSON objects\n\n The first structure is the preferred form because the pagination states\n may have been updated on the server side, sending them down again allows\n this collection to update its states. If the response has a pagination\n state object, it is checked for errors.\n\n The second structure is the\n [Backbone.Collection#parse](http://backbonejs.org/#Collection-parse)\n default.\n\n **Note:** this method has been further simplified since 1.1.7. While\n existingPageableCollection#parse implementations will continue to work,\n new code is encouraged to overridePageableCollection#parseState\n andPageableCollection#parseRecords instead.\n\n @fires PageableCollection#pageable:state:change\n\n @param {Object} resp The deserialized response data from the server.\n @param {Object} options The options for the ajax request\n\n @return {Array.} An array of model objects\n */\n parse: function (resp, options) {\n var newState = this.parseState(resp, _clone(this.queryParams), _clone(this.state), options);\n if (newState) {\n this.state = this._checkState(_extend({}, this.state, newState));\n if (!(options || {}).silent) this.trigger(\"pageable:state:change\", this.state);\n }\n return this.parseRecords(resp, options);\n },\n\n /**\n Parse server response for server pagination state updates. Not applicable\n under infinite mode.\n\n This default implementation first checks whether the response has any\n state object as documented inPageableCollection#parse. If it exists, a\n state object is returned by mapping the server state keys to this\n pageable collection instance's query parameter keys using `queryParams`.\n\n It is __NOT__ neccessary to return a full state object complete with all\n the mappings defined inPageableCollection#queryParams. Any state object\n resulted is merged with a copy of the current pageable collection state\n and checked for sanity before actually updating. Most of the time, simply\n providing a new `totalRecords` value is enough to trigger a full\n pagination state recalculation.\n\n parseState: function (resp, queryParams, state, options) {\n return {totalRecords: resp.total_entries};\n }\n\n If you want to use header fields use:\n\n parseState: function (resp, queryParams, state, options) {\n return {totalRecords: options.xhr.getResponseHeader(\"X-total\")};\n }\n\n This method __MUST__ return a new state object instead of directly\n modifying the PageableCollection#state object. The behavior of directly\n modifying PageableCollection#state is undefined.\n\n @param {Object} resp - The deserialized response data from the server.\n @param {Object} queryParams - A copy of PageableCollection#queryParams.\n @param {Object} state - A copy of PageableCollection#state.\n @param {Object} options - The options passed through from\n `parse`. (backbone >= 0.9.10 only)\n\n @return {Object} A new (partial) state object.\n */\n parseState: function (resp, queryParams, state, options) {\n if (resp && resp.length === 2 && _isObject(resp[0]) && _isArray(resp[1])) {\n\n var newState = _clone(state);\n var serverState = resp[0];\n\n _each(_pairs(_omit(queryParams, \"directions\")), function (kvp) {\n var k = kvp[0], v = kvp[1];\n var serverVal = serverState[v];\n if (!_isUndefined(serverVal) && !_.isNull(serverVal)) newState[k] = serverState[v];\n });\n\n if (serverState.order) {\n newState.order = _invert(queryParams.directions)[serverState.order] * 1;\n }\n\n return newState;\n }\n },\n\n /**\n Parse server response for an array of model objects.\n\n This default implementation first checks whether the response has any\n state object as documented inPageableCollection#parse. If it exists, the\n array of model objects is assumed to be the second element, otherwise the\n entire response is returned directly.\n\n @param {Object} resp - The deserialized response data from the server.\n @param {Object} options - The options passed through from the\n `parse`. (backbone >= 0.9.10 only)\n\n @return {Array.} An array of model objects\n */\n parseRecords: function (resp, options) {\n if (resp && resp.length === 2 && _isObject(resp[0]) && _isArray(resp[1])) {\n return resp[1];\n }\n\n return resp;\n },\n\n /**\n Fetch a page from the server in server mode, or all the pages in client\n mode. Under infinite mode, the current page is refetched by default and\n then reset.\n\n The query string is constructed by translating the current pagination\n state to your server API query parameter\n usingPageableCollection#queryParams. The current page will reset after\n fetch.\n\n @param {Object} options - Accepts all\n [Backbone.Collection#fetch](http://backbonejs.org/#Collection-fetch)\n options.\n\n @return {XMLHttpRequest}\n */\n fetch: function (options) {\n\n options = options || {};\n\n var state = this._checkState(this.state);\n\n var mode = this.mode;\n\n if (mode == \"infinite\" && !options.url) {\n options.url = this.links[state.currentPage];\n }\n\n var data = options.data || {};\n\n // dedup query params\n var url = options.url || this.url || \"\";\n if (_isFunction(url)) url = url.call(this);\n var qsi = url.indexOf(\"?\");\n if (qsi != -1) {\n _extend(data, queryStringToParams(url.slice(qsi + 1)));\n url = url.slice(0, qsi);\n }\n\n options.url = url;\n options.data = data;\n\n // pick the appropriate query param keys to map according to the mode\n var queryParams = this.mode == \"client\" ?\n _pick(this.queryParams, \"sortKey\") :\n _omit(_pick(this.queryParams, _keys(PageableProto.queryParams)),\n \"order\", \"directions\", \"totalPages\", \"totalRecords\");\n\n // map the query params to the data object used by the underlying ajax lib\n // to construct the query string\n _each(queryParams, function (v, k) {\n v = _isFunction(v) ? v.call(this) : v;\n if (state[k] != null && v != null && _.isUndefined(data[v])) {\n data[v] = state[k];\n }\n }, this);\n\n var sortKey = _isFunction(this.queryParams.sortKey) ?\n this.queryParams.sortKey.call(this) :\n this.queryParams.sortKey;\n\n var order = _isFunction(this.queryParams.order) ?\n this.queryParams.order.call(this) :\n this.queryParams.order;\n\n if (sortKey != null && state.sortKey != null &&\n order != null && state.order != null) {\n if (_isArray(state.order)) {\n data[order] = [];\n for (var i = 0; i < state.order.length; i++) {\n data[order].push(this.queryParams.directions[state.order[i]]);\n }\n }\n else {\n data[order] = this.queryParams.directions[state.order + \"\"];\n }\n }\n\n // map extra query parameters\n var extraKvps = _pairs(_omit(this.queryParams,\n _keys(PageableProto.queryParams)));\n for (var i = 0; i < extraKvps.length; i++) {\n var kvp = extraKvps[i];\n var v = kvp[1];\n v = _isFunction(v) ? v.call(this) : v;\n if (v != null) data[kvp[0]] = v;\n }\n\n if (mode != \"server\") {\n var self = this, fullCol = this.fullCollection;\n var success = options.success;\n options.success = function (col, resp, opts) {\n\n // make sure the caller's intent is obeyed\n opts = opts || {};\n if (_isUndefined(options.silent)) delete opts.silent;\n else opts.silent = options.silent;\n\n var models = col.models;\n if (mode == \"client\") fullCol.reset(models, opts);\n else {\n fullCol.add(models, _extend({at: fullCol.length},\n _extend(opts, {parse: false})));\n self.trigger(\"reset\", self, opts);\n }\n\n if (success) success(col, resp, opts);\n };\n\n // silent the first reset from backbone\n return BBColProto.fetch.call(this, _extend({}, options, {silent: true}));\n }\n\n return BBColProto.fetch.call(this, options);\n },\n\n /**\n Convenient method for making a `comparator` sorted by a model attribute\n identified by `sortKey` and ordered by `order`.\n\n Like a Backbone.Collection, a PageableCollection will maintain the\n __current page__ in sorted order on the client side if a `comparator` is\n attached to it. If the collection is in client mode, you can attach a\n comparator toPageableCollection#fullCollection to have all the pages\n reflect the global sorting order by specifying an option `full` to\n `true`. You __must__ call `sort` manually\n orPageableCollection#fullCollection.sort after calling this method to\n force a resort.\n\n While you can use this method to sort the current page in server mode,\n the sorting order may not reflect the global sorting order due to the\n additions or removals of the records on the server since the last\n fetch. If you want the most updated page in a global sorting order, it is\n recommended that you set PageableCollection#state.sortKey and optionally\n PageableCollection#state.order, and then callPageableCollection#fetch.\n\n @protected\n\n @param {string} sortKey = this.state.sortKey - See `state.sortKey`.\n @param {number} order = this.state.order - See `state.order`.\n @param {(function(Backbone.Model, string): Object) | string} sortValue -\n See PageableCollection#setSorting.\n\n @return {function(Backbone.Model, string): number}\n\n See [Backbone.Collection.comparator](http://backbonejs.org/#Collection-comparator).\n */\n _makeComparator: function (sortKey, order, sortValue) {\n var state = this.state;\n\n sortKey = sortKey || state.sortKey;\n order = order || state.order;\n\n if (!sortKey || !order) return;\n\n if (!sortValue) {\n sortValue = function (model, attr) {\n return model.get(attr);\n };\n }\n\n return function (left, right) {\n var l = sortValue(left, sortKey), r = sortValue(right, sortKey), t;\n if (order === 1) t = l, l = r, r = t;\n if (l === r) return 0;\n else if (l < r) return -1;\n return 1;\n };\n },\n\n /**\n Adjusts the sorting for this pageable collection.\n\n Given a `sortKey` and an `order`, sets `state.sortKey` and\n `state.order`. A comparator can be applied on the client side to sort in\n the order defined if `options.side` is `\"client\"`. By default the\n comparator is applied to thePageableCollection#fullCollection. Set\n `options.full` to `false` to apply a comparator to the current page under\n any mode. Setting `sortKey` to `null` removes the comparator from both\n the current page and the full collection.\n\n If a `sortValue` function is given, it will be passed the `(model,\n sortKey)` arguments and is used to extract a value from the model during\n comparison sorts. If `sortValue` is not given, `model.get(sortKey)` is\n used for sorting.\n\n @chainable\n\n @param {string} sortKey - See `state.sortKey`.\n @param {number} order=this.state.order - See `state.order`.\n @param {Object} options\n @param {string} options.side - By default, `\"client\"` if `mode` is\n `\"client\"`, `\"server\"` otherwise.\n @param {boolean} options.full = true\n @param {(function(Backbone.Model, string): Object) | string} options.sortValue\n\n @return {PageableCollection} this\n */\n setSorting: function (sortKey, order, options) {\n\n var state = this.state;\n\n state.sortKey = sortKey;\n state.order = order = order || state.order;\n\n var fullCollection = this.fullCollection;\n\n var delComp = false, delFullComp = false;\n\n if (!sortKey) delComp = delFullComp = true;\n\n var mode = this.mode;\n options = _extend({side: mode == \"client\" ? mode : \"server\", full: true},\n options);\n\n var comparator = this._makeComparator(sortKey, order, options.sortValue);\n\n var full = options.full, side = options.side;\n\n if (side == \"client\") {\n if (full) {\n if (fullCollection) fullCollection.comparator = comparator;\n delComp = true;\n }\n else {\n this.comparator = comparator;\n delFullComp = true;\n }\n }\n else if (side == \"server\" && !full) {\n this.comparator = comparator;\n }\n\n if (delComp) this.comparator = null;\n if (delFullComp && fullCollection) fullCollection.comparator = null;\n\n return this;\n }\n\n });\n\n var PageableProto = PageableCollection.prototype;\n\n return PageableCollection;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/backbone.paginator/lib/backbone.paginator.js\n// module id = 779\n// module chunks = 0","/*\n backgrid-filter\n http://github.com/wyuenho/backgrid\n\n Copyright (c) 2013 Jimmy Yuen Ho Wong and contributors\n Licensed under the MIT @license.\n*/\n(function (root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([\"underscore\", \"backbone\", \"backgrid\"], factory);\n } else if (typeof exports == \"object\") {\n // CommonJS\n var lunr;\n try {\n lunr = require(\"lunr\");\n } catch (e) {}\n\n module.exports = factory(\n require(\"underscore\"),\n require(\"backbone\"),\n require(\"backgrid\"),\n lunr\n );\n } else {\n // Browser\n factory(root._, root.Backbone, root.Backgrid, root.lunr);\n }\n\n}(this, function (_, Backbone, Backgrid, lunr) {\n\n \"use strict\";\n\n var exports = {};\n\n /**\n ServerSideFilter is a search form widget that submits a query to the server\n for filtering the current collection.\n\n @class Backgrid.Extension.ServerSideFilter\n */\n var ServerSideFilter = exports.ServerSideFilter = Backgrid.Extension.ServerSideFilter = Backbone.View.extend({\n\n /** @property */\n tagName: \"form\",\n\n /** @property */\n className: \"backgrid-filter form-search\",\n\n /** @property {function(Object, ?Object=): string} template */\n template: function (data) {\n return ' ×';\n },\n\n /** @property */\n events: {\n \"keyup input[type=search]\": \"showClearButtonMaybe\",\n \"click a[data-backgrid-action=clear]\": \"clear\",\n \"submit\": \"search\"\n },\n\n /** @property {string} [name='q'] Query key */\n name: \"q\",\n\n /** @property {string} [value] The search box value. */\n value: null,\n\n /**\n @property {string} [placeholder] The HTML5 placeholder to appear beneath\n the search box.\n */\n placeholder: null,\n\n /**\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {string} [options.name]\n @param {string} [options.value]\n @param {string} [options.placeholder]\n @param {function(Object): string} [options.template]\n */\n initialize: function (options) {\n ServerSideFilter.__super__.initialize.apply(this, arguments);\n this.name = options.name || this.name;\n this.value = options.value || this.value;\n this.placeholder = options.placeholder || this.placeholder;\n this.template = options.template || this.template;\n\n // Persist the query on pagination\n var collection = this.collection, self = this;\n if (Backbone.PageableCollection &&\n collection instanceof Backbone.PageableCollection &&\n collection.mode == \"server\") {\n collection.queryParams[this.name] = function () {\n return self.query() || null;\n };\n }\n },\n\n /**\n Event handler. Clear the search box and reset the internal search value.\n */\n clearSearchBox: function() {\n this.value = null;\n this.searchBox().val(null);\n this.showClearButtonMaybe();\n },\n\n /**\n Event handler. Show the clear button when the search box has text, hide\n it otherwise.\n */\n showClearButtonMaybe: function () {\n var $clearButton = this.clearButton();\n var searchTerms = this.query();\n if (searchTerms) $clearButton.show();\n else $clearButton.hide();\n },\n\n /**\n Returns the search input box.\n */\n searchBox: function () {\n return this.$el.find(\"input[type=search]\");\n },\n\n /**\n Returns the clear button.\n */\n clearButton: function () {\n return this.$el.find(\"a[data-backgrid-action=clear]\");\n },\n\n /**\n Returns the current search query.\n */\n query: function() {\n this.value = this.searchBox().val();\n return this.value;\n },\n\n /**\n Upon search form submission, this event handler constructs a query\n parameter object and pass it to Collection#fetch for server-side\n filtering.\n\n If the collection is a PageableCollection, searching will go back to the\n first page.\n */\n search: function (e) {\n if (e) e.preventDefault();\n\n var data = {};\n var query = this.query();\n if (query) data[this.name] = query;\n\n var collection = this.collection;\n\n // go back to the first page on search\n if (Backbone.PageableCollection &&\n collection instanceof Backbone.PageableCollection) {\n collection.getFirstPage({data: data, reset: true, fetch: true});\n }\n else collection.fetch({data: data, reset: true});\n },\n\n /**\n Event handler for the clear button. Clears the search box and refetch the\n collection.\n\n If the collection is a PageableCollection, clearing will go back to the\n first page.\n */\n clear: function (e) {\n if (e) e.preventDefault();\n this.clearSearchBox();\n\n var collection = this.collection;\n\n // go back to the first page on clear\n if (Backbone.PageableCollection &&\n collection instanceof Backbone.PageableCollection) {\n collection.getFirstPage({reset: true, fetch: true});\n }\n else collection.fetch({reset: true});\n },\n\n /**\n Renders a search form with a text box, optionally with a placeholder and\n a preset value if supplied during initialization.\n */\n render: function () {\n this.$el.empty().append(this.template({\n name: this.name,\n placeholder: this.placeholder,\n value: this.value\n }));\n this.showClearButtonMaybe();\n this.delegateEvents();\n return this;\n }\n\n });\n\n /**\n ClientSideFilter is a search form widget that searches a collection for\n model matches against a query on the client side. The exact matching\n algorithm can be overriden by subclasses.\n\n @class Backgrid.Extension.ClientSideFilter\n @extends Backgrid.Extension.ServerSideFilter\n */\n var ClientSideFilter = exports.ClientSideFilter = Backgrid.Extension.ClientSideFilter = ServerSideFilter.extend({\n\n /** @property */\n events: _.extend({}, ServerSideFilter.prototype.events, {\n \"click a[data-backgrid-action=clear]\": function (e) {\n e.preventDefault();\n this.clear();\n },\n \"keydown input[type=search]\": \"search\",\n \"submit\": function (e) {\n e.preventDefault();\n this.search();\n }\n }),\n\n /**\n @property {?Array.} [fields] A list of model field names to\n search for matches. If null, all of the fields will be searched.\n */\n fields: null,\n\n /**\n @property [wait=149] The time in milliseconds to wait since the last\n change to the search box's value before searching. This value can be\n adjusted depending on how often the search box is used and how large the\n search index is.\n */\n wait: 149,\n\n /**\n Debounces the #search and #clear methods and makes a copy of the given\n collection for searching.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {string} [options.placeholder]\n @param {string} [options.fields]\n @param {string} [options.wait=149]\n */\n initialize: function (options) {\n ClientSideFilter.__super__.initialize.apply(this, arguments);\n\n this.fields = options.fields || this.fields;\n this.wait = options.wait || this.wait;\n\n this._debounceMethods([\"search\", \"clear\"]);\n\n var collection = this.collection = this.collection.fullCollection || this.collection;\n var shadowCollection = this.shadowCollection = collection.clone();\n\n this.listenTo(collection, \"add\", function (model, collection, options) {\n shadowCollection.add(model, options);\n });\n this.listenTo(collection, \"remove\", function (model, collection, options) {\n shadowCollection.remove(model, options);\n });\n this.listenTo(collection, \"sort\", function (col) {\n if (!this.query()) shadowCollection.reset(col.models);\n });\n this.listenTo(collection, \"reset\", function (col, options) {\n options = _.extend({reindex: true}, options || {});\n if (options.reindex && options.from == null && options.to == null) {\n shadowCollection.reset(col.models);\n }\n });\n },\n\n _debounceMethods: function (methodNames) {\n if (_.isString(methodNames)) methodNames = [methodNames];\n\n this.undelegateEvents();\n\n for (var i = 0, l = methodNames.length; i < l; i++) {\n var methodName = methodNames[i];\n var method = this[methodName];\n this[methodName] = _.debounce(method, this.wait);\n }\n\n this.delegateEvents();\n },\n\n /**\n Constructs a Javascript regular expression object for #makeMatcher.\n\n This default implementation takes a query string and returns a Javascript\n RegExp object that matches any of the words contained in the query string\n case-insensitively. Override this method to return a different regular\n expression matcher if this behavior is not desired.\n\n @param {string} query The search query in the search box.\n @return {RegExp} A RegExp object to match against model #fields.\n */\n makeRegExp: function (query) {\n return new RegExp(query.trim().split(/\\s+/).join(\"|\"), \"i\");\n },\n\n /**\n This default implementation takes a query string and returns a matcher\n function that looks for matches in the model's #fields or all of its\n fields if #fields is null, for any of the words in the query\n case-insensitively using the regular expression object returned from\n #makeRegExp.\n\n Most of time, you'd want to override the regular expression used for\n matching. If so, please refer to the #makeRegExp documentation,\n otherwise, you can override this method to return a custom matching\n function.\n\n Subclasses overriding this method must take care to conform to the\n signature of the matcher function. The matcher function is a function\n that takes a model as paramter and returns true if the model matches a\n search, or false otherwise.\n\n In addition, when the matcher function is called, its context will be\n bound to this ClientSideFilter object so it has access to the filter's\n attributes and methods.\n\n @param {string} query The search query in the search box.\n @return {function(Backbone.Model):boolean} A matching function.\n */\n makeMatcher: function (query) {\n var regexp = this.makeRegExp(query);\n return function (model) {\n var keys = this.fields || model.keys();\n for (var i = 0, l = keys.length; i < l; i++) {\n if (regexp.test(model.get(keys[i]) + \"\")) return true;\n }\n return false;\n };\n },\n\n /**\n Takes the query from the search box, constructs a matcher with it and\n loops through collection looking for matches. Reset the given collection\n when all the matches have been found.\n\n If the collection is a PageableCollection, searching will go back to the\n first page.\n */\n search: function () {\n var matcher = _.bind(this.makeMatcher(this.query()), this);\n var col = this.collection;\n if (col.pageableCollection) col.pageableCollection.getFirstPage({silent: true});\n col.reset(this.shadowCollection.filter(matcher), {reindex: false});\n },\n\n /**\n Clears the search box and reset the collection to its original.\n\n If the collection is a PageableCollection, clearing will go back to the\n first page.\n */\n clear: function () {\n this.clearSearchBox();\n var col = this.collection;\n if (col.pageableCollection) col.pageableCollection.getFirstPage({silent: true});\n col.reset(this.shadowCollection.models, {reindex: false});\n }\n\n });\n\n /**\n LunrFilter is a ClientSideFilter that uses [lunrjs](http://lunrjs.com/) to\n index the text fields of each model for a collection, and performs\n full-text searching.\n\n @class Backgrid.Extension.LunrFilter\n @extends Backgrid.Extension.ClientSideFilter\n */\n var LunrFilter = exports.LunrFilter = Backgrid.Extension.LunrFilter = ClientSideFilter.extend({\n\n /**\n @property {string} [ref=\"id\"]`lunrjs` document reference attribute name.\n */\n ref: \"id\",\n\n /**\n @property {Object} fields A hash of `lunrjs` index field names and boost\n value. Unlike ClientSideFilter#fields, LunrFilter#fields is _required_ to\n initialize the index.\n */\n fields: null,\n\n /**\n Indexes the underlying collection on construction. The index will refresh\n when the underlying collection is reset. If any model is added, removed\n or if any indexed fields of any models has changed, the index will be\n updated.\n\n @param {Object} options\n @param {Backbone.Collection} options.collection\n @param {string} [options.placeholder]\n @param {string} [options.ref] `lunrjs` document reference attribute name.\n @param {Object} [options.fields] A hash of `lunrjs` index field names and\n boost value.\n @param {number} [options.wait]\n */\n initialize: function (options) {\n LunrFilter.__super__.initialize.apply(this, arguments);\n\n this.ref = options.ref || this.ref;\n\n var collection = this.collection = this.collection.fullCollection || this.collection;\n this.listenTo(collection, \"add\", this.addToIndex);\n this.listenTo(collection, \"remove\", this.removeFromIndex);\n this.listenTo(collection, \"reset\", this.resetIndex);\n this.listenTo(collection, \"change\", this.updateIndex);\n\n this.resetIndex(collection);\n },\n\n /**\n Reindex the collection. If `options.reindex` is `false`, this method is a\n no-op.\n\n @param {Backbone.Collection} collection\n @param {Object} [options]\n @param {boolean} [options.reindex=true]\n */\n resetIndex: function (collection, options) {\n options = _.extend({reindex: true}, options || {});\n\n if (options.reindex) {\n var self = this;\n this.index = lunr(function () {\n _.each(self.fields, function (boost, fieldName) {\n this.field(fieldName, boost);\n this.ref(self.ref);\n }, this);\n });\n\n collection.each(function (model) {\n this.addToIndex(model);\n }, this);\n }\n },\n\n /**\n Adds the given model to the index.\n\n @param {Backbone.Model} model\n */\n addToIndex: function (model) {\n var index = this.index;\n var doc = model.toJSON();\n if (index.documentStore.has(doc[this.ref])) index.update(doc);\n else index.add(doc);\n },\n\n /**\n Removes the given model from the index.\n\n @param {Backbone.Model} model\n */\n removeFromIndex: function (model) {\n var index = this.index;\n var doc = model.toJSON();\n if (index.documentStore.has(doc[this.ref])) index.remove(doc);\n },\n\n /**\n Updates the index for the given model.\n\n @param {Backbone.Model} model\n */\n updateIndex: function (model) {\n var changed = model.changedAttributes();\n if (changed && !_.isEmpty(_.intersection(_.keys(this.fields),\n _.keys(changed)))) {\n this.index.update(model.toJSON());\n }\n },\n\n /**\n Takes the query from the search box and performs a full-text search on\n the client-side. The search result is returned by resetting the\n underlying collection to the models after interrogating the index for the\n query answer.\n\n If the collection is a PageableCollection, searching will go back to the\n first page.\n */\n search: function () {\n var col = this.collection;\n if (!this.query()) {\n col.reset(this.shadowCollection.models, {reindex: false});\n return;\n }\n\n var searchResults = this.index.search(this.query());\n var models = [];\n for (var i = 0; i < searchResults.length; i++) {\n var result = searchResults[i];\n models.push(this.shadowCollection.get(result.ref));\n }\n\n if (col.pageableCollection) col.pageableCollection.getFirstPage({silent: true});\n col.reset(models, {reindex: false});\n }\n\n });\n\n return exports;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/backgrid-filter/backgrid-filter.js\n// module id = 780\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t, _ = require('underscore')\n\t, Backgrid = require('kvBackgrid')\n\t, TeamRequestActionCellTpl = require('hgn!./TeamRequestActionCell.mustache');\n\n\treturn Backgrid.Cell.extend({\n\t\ttemplate: TeamRequestActionCellTpl\n\n\n\t\t, events: {\n\t\t\t'click .approveRequestButton': 'handleApproveRequestClick'\n\t\t\t, 'click .rejectRequestLink': 'handleRejectRequestClick'\n\t\t}\n\n\n\t\t, handleApproveRequestClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.updateTeamRequest('accept');\n\t\t}\n\n\n\t\t, handleRejectRequestClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.updateTeamRequest('reject');\n\t\t}\n\n\n\t\t, handleUpdateRequestSync: function (model) {\n\t\t\tthis.model.set(model.attributes); // this.model !== model, see how Backbone.Siren.Acton.execute creates a temporary clone\n\t\t\tthis.model.off('sync:updateRequest'); // Unbind our event listener (See note in .initialize() method)\n\t\t}\n\n\n\t\t, handleUpdateRequestError: function () {\n\t\t\tthis.fadeRow('in');\n\t\t\twwwApp.tipMsg('There was an error updating the team request. Please try again.');\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Backbone.Siren.Model} model\n\t\t * @param {String} status\n\t\t */\n\t\t, handleRequestStatusChange: function (model, status) {\n\t\t\tif (! (status == 'rejected' || status == 'accepted')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (status == 'accepted') {\n\t\t\t\twwwApp.tipMsg('Hooray! You\\'ve got a new team member!', {autoClose: true});\n\t\t\t\twwwApp.trigger('addTeamMember', model.get('teamMember'));\n\t\t\t} else {\n\t\t\t\twwwApp.tipMsg('The request has been denied', {autoClose: true});\n\t\t\t}\n\n\t\t\t// We only show \"pending\" requests\n\t\t\tmodel.collection.remove(model);\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {String} status\n\t\t */\n\t\t, updateTeamRequest: function (status) {\n\t\t\tthis.fadeRow('out');\n\t\t\tthis.model.getActionByName('updateRequest').execute({attributes: {status: status}});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {String} direction - can be \"in\" or \"out\"\n\t\t */\n\t\t, fadeRow: function (direction) {\n\t\t\tthis.$el.parent('tr').stop().animate({opacity: direction == 'in' ? 1 : 0.4});\n\t\t}\n\n\n\t\t, render: function () {\n\t\t\tthis.$el.html(this.template.render(this.model.toJSON()));\n\t\t\tthis.delegateEvents();\n\t\t\treturn this;\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\t_.bindAll(this\n\t\t\t\t, 'handleUpdateRequestSync'\n\t\t\t\t, 'handleUpdateRequestError'\n\t\t\t);\n\n\t\t\tBackgrid.Cell.prototype.initialize.apply(this, $.makeArray(arguments));\n\n\t\t\t// Note: We are using `this.model.on()` instead of `this.listenTo(this.model)`\n\t\t\t// Once the model is removed from the collection, the grid will re-render and the row\n\t\t\t// for this model will be deleted. This means any events bound to this view will be lost.\n\t\t\t// To avoid this problem we bind the events to the model instead and just make sure to clean up\n\t\t\t// after ourselves (by calling .off() on the \"sync\" request) to avoid zombies. We don't want to unbind\n\t\t\t// the error handler, however.\n\t\t\tthis.model.on('sync:updateRequest', this.handleUpdateRequestSync);\n\t\t\tthis.model.on('error:updateRequest', this.handleUpdateRequestError);\n\n\t\t\tthis.listenTo(this.model, 'change:status', this.handleRequestStatusChange);\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamRequest/TeamRequestsBackgrid/TeamRequestActionCell.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"Approve request\");t.b(\"\\n\" + i);t.b(\"Reject request\");return t.fl(); },partials: {}, subs: { }}, \"Approve request\\nReject request\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamRequest/TeamRequestsBackgrid/TeamRequestActionCell.mustache\n// module id = 782\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar moment = require('moment')\n\t, LenderCardView = require('components/Lender/LenderCardView')\n\t, TeamRequestCardViewTpl = require('hgn!./TeamRequestCardView.mustache');\n\n\n\treturn LenderCardView.extend({\n\t\ttemplate: TeamRequestCardViewTpl\n\n\n\t\t, className: function () {\n\t\t\treturn 'teamRequestCardView ' + LenderCardView.prototype.className;\n\t\t}\n\n\n\t\t// Modify some model properties\n\t\t, serializeData: function () {\n\t\t\tvar loanBecause\n\t\t\t, data = this.model.toJSON();\n\n\t\t\t// Convention is to use double underscore for calculated properties\n\t\t\tif (data.lender) {\n\t\t\t\tdata.__isPublic = true;\n\t\t\t\tdata.__memberSince = moment(data.lender.memberSince).format('MMM D, YYYY');\n\t\t\t\tdata.__lenderName = data.lender.name;\n\t\t\t\tdata.__url = wwwApp.url('lender', 'view', {publicId: data.lender.publicId});\n\n\t\t\t\tloanBecause = data.lender.profile.loanBecause;\n\t\t\t\tdata.__loanBecause = loanBecause.length > 95 ? loanBecause.trim().substr(0, 95) + '…' : loanBecause;\n\t\t\t} else {\n\t\t\t\tdata.__isPublic = false;\n\t\t\t\tdata.__lenderName = 'Anonymous';\n\t\t\t}\n\n\t\t\tdata.__imgUrl = data.__isPublic && data.lender.image && data.lender.image.id\n\t\t\t\t? '/img/s100/' + data.lender.image.id + '.jpg'\n\t\t\t\t: '/img/entity/lender_s100.png';\n\n\t\t\treturn data;\n\t\t}\n\n\n\t\t, initialize: function (options) {\n\t\t\toptions = options || {};\n\n\t\t\tvar self = this;\n\n\t\t\tif (! this.model && options.teamId && options.lenderId) {\n\t\t\t\twwwApp.siren.resolve('team/' + options.teamId + '/member/' + options.lenderId).done(function (teamMemberModel) {\n\t\t\t\t\tself.model = teamMemberModel;\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamRequest/TeamRequestCardView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.whereabouts\",c,p,1),c,p,0,547,620,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            \");t.b(t.v(t.d(\"lender.profile.whereabouts\",c,p,0)));t.b(\"
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"__memberSince\",c,p,1),c,p,0,672,749,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            (Joined Kiva: \");t.b(t.v(t.f(\"__memberSince\",c,p,0)));t.b(\")
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.loanBecause\",c,p,1),c,p,0,801,945,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            I loan because: \");t.b(t.v(t.d(\"lender.profile.loanBecause\",c,p,0)));t.b(\"
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
            \");return t.fl(); },partials: {}, subs: { }}, \"\\n\\n
            \\n\\t\\n\\n\\t{{#lender.profile.whereabouts}}\\n\\t\\t
            {{lender.profile.whereabouts}}
            \\n\\t{{/lender.profile.whereabouts}}\\n\\n\\t{{#__memberSince}}\\n\\t\\t
            (Joined Kiva: {{__memberSince}})
            \\n\\t{{/__memberSince}}\\n\\n\\t{{#lender.profile.loanBecause}}\\n\\t\\t
            I loan because: {{lender.profile.loanBecause}}
            \\n\\t{{/lender.profile.loanBecause}}\\n
            \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamRequest/TeamRequestCardView.mustache\n// module id = 784\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"

            Requests to Join (\");t.b(t.v(t.f(\"__requestsCount\",c,p,0)));t.b(\")

            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.f(\"__showMoreRequests\",c,p,1),c,p,0,187,341,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\tShow more requests\");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"

            Requests to Join ({{__requestsCount}})

            \\n
            \\n\\n{{#__showMoreRequests}}\\n\\t
            \\n\\t\\tShow more requests\\n\\t
            \\n{{/__showMoreRequests}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamRequest/TeamRequestsBackgridView.mustache\n// module id = 785\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\t// expose jquery to window\n\tglobal.$ = global.jQuery = require('jquery');\n\n\tvar $ = require('jquery')\n\t, _ = require('underscore')\n\t, Backbone = require('backbone')\n\t, Marionette = require('marionette')\n\t, Backgrid = require('kvBackgrid')\n\t, TeamMembersBackgrid = require('./TeamMembersBackgrid/TeamMembersBackgrid')\n\t, TeamMembersViewTpl = require('hgn!./TeamMembersBackgridView.mustache');\n\n\treturn Marionette.ItemView.extend({\n\n\t\ttemplate: TeamMembersViewTpl\n\n\n\t\t, ui: {\n\t\t\t'$teamMembersContainer': '.teamMembersContainer'\n\t\t\t, '$sectionHeader': '.sectionHeader'\n\t\t}\n\n\n\t\t, bindings: {\n\t\t\t'.numTeamMembers': {\n\t\t\t\tobserve: ['memberCount', 'searchResultsCount']\n\t\t\t\t, onGet: function (values) {\n\t\t\t\t\treturn values[1] === null\n\t\t\t\t\t\t? values[0]\n\t\t\t\t\t\t: values[1];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t, events: {\n\t\t\t'click .moreTeamMembersButton': 'handleShowMoreLinkClick'\n\t\t}\n\n\n\t\t, className: function () {\n\t\t\tvar baseClassName = 'TeamMembersBackgridView'\n\t\t\t, givenName = this.options.name;\n\n\t\t\treturn givenName\n\t\t\t\t? givenName + 'View ' + baseClassName\n\t\t\t\t: baseClassName;\n\t\t}\n\n\n\t\t, isLoadingButton: function ($button) {\n\t\t\treturn $button.data('kvLoadingButton');\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery} $button\n\t\t * @param {Boolean} [enableLoading]\n\t\t * @returns {*}\n\t\t */\n\t\t, loadingButton: function ($button, enableLoading) {\n\t\t\tif (enableLoading === false) {\n\t\t\t\treturn $button\n\t\t\t\t\t.removeClass('loadingButton')\n\t\t\t\t\t.removeData('kvLoadingButton');\n\t\t\t}\n\n\t\t\t// Default is to \"enable\"\n\t\t\treturn $button\n\t\t\t\t.addClass('loadingButton')\n\t\t\t\t.data('kvLoadingButton', true);\n\t\t}\n\n\n\t\t, handleShowMoreLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this\n\t\t\t, $button = $(event.target);\n\n\t\t\tif (this.isLoadingButton($button)) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tthis.loadingButton($button);\n\t\t\t}\n\n\t\t\twwwApp.siren.resolve(this.teamMembersCollection.link('next'))\n\t\t\t\t.always(function () {\n\t\t\t\t\tself.loadingButton($button, false);\n\t\t\t\t})\n\t\t\t\t.done(function (updatedTeamMembersCollection) {\n\t\t\t\t\tself.resetTeamMembersCollection(updatedTeamMembersCollection);\n\t\t\t\t\tself.renderShowMore();\n\t\t\t\t})\n\t\t\t\t.fail(function () {\n\t\t\t\t\twwwApp.tipMsg('There was an error fetching more loans, please try again.', 'warning');\n\t\t\t\t});\n\t\t}\n\n\n\t\t, onRender: function () {\n\t\t\tthis.ui.$teamMembersContainer.append(this.teamMembersBackgrid.render().el);\n\n\t\t\tif (this.options.isSearchEnabled) {\n\t\t\t\tthis.ui.$sectionHeader.addClass('searchHeader').append(this.teamMembersFilter.render().el);\n\t\t\t}\n\n\t\t\tthis.renderShowMore();\n\t\t\tthis.stickit();\n\t\t}\n\n\n\t\t, renderShowMore: function () {\n\t\t\tif (this.teamMembersCollection.link('next')) {\n\t\t\t\tthis.$('.moreTeamMembersWrap').show();\n\t\t\t} else {\n\t\t\t\tthis.$('.moreTeamMembersWrap').hide();\n\t\t\t}\n\t\t}\n\n\n\t\t/**\n\t\t * @todo We need a better implementation of Backbone.Siren.Collection.prototype.reset() that takes _data into account\n\t\t *\n\t\t * @param collection\n\t\t */\n\t\t, resetTeamMembersCollection: function (collection) {\n\t\t\tthis.teamMembersCollection._data = collection._data;\n\t\t\tthis.teamMembersCollection.reset(collection.models);\n\t\t}\n\n\n\t\t, initializeBackgrid: function () {\n\t\t\tvar baseParams\n\t\t\t, self = this\n\t\t\t, options = this.options\n\t\t\t, className = options.name ? options.name + 'Backgrid' : '';\n\n\t\t\tthis.teamMembersBackgrid = new TeamMembersBackgrid({\n\t\t\t\tcollection: this.teamMembersCollection\n\t\t\t\t, className: className + ' teamMembersBackgrid actionListBackgrid ' + Backgrid.Grid.prototype.className\n\t\t\t\t, emptyText: 'No results'\n\t\t\t});\n\n\t\t\tif (options.isSearchEnabled) {\n\t\t\t\tif (options.baseParams) {\n\t\t\t\t\tbaseParams = options.baseParams;\n\t\t\t\t}\n\n\t\t\t\tthis.teamMembersFilter = new Backgrid.Extension.ServerSideFilter({\n\t\t\t\t\tcollection: this.teamMembersCollection\n\t\t\t\t\t, name: 'q'\n\t\t\t\t\t, placeholder: 'Search by name'\n\t\t\t\t\t, baseParams: baseParams\n\t\t\t\t});\n\n\t\t\t\tthis.listenTo(this.teamMembersCollection, 'request', function (obj) {\n\t\t\t\t\t// \"request\" events can bubble from the models, only animate on events that were fired on the collection\n\t\t\t\t\tif (obj instanceof Backbone.Collection) {\n\t\t\t\t\t\tthis.teamMembersBackgrid.$el.animate({opacity: 0.4});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// We assume that sync is only getting called when doing a search / cancelling a search\n\t\t\t\tthis.listenTo(this.teamMembersCollection, 'sync', function (obj, resp, options) {\n\t\t\t\t\tif (obj instanceof Backbone.Collection) {\n\t\t\t\t\t\tthis.teamMembersBackgrid.$el.animate({opacity: 1});\n\n\t\t\t\t\t\t// We know we're displaying search results if \"q\" is set.\n\t\t\t\t\t\tthis.model.set('searchResultsCount', options.data && options.data.q ? obj.size() : null);\n\t\t\t\t\t\tthis.renderShowMore();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.listenTo(this.teamMembersCollection, 'destroy', function () {\n\t\t\t\tthis.decMemmberCount();\n\t\t\t});\n\n\t\t\tthis.listenTo(this.teamMembersCollection, 'change', function (model) {\n\t\t\t\t// Remove any models that don't have the memberFilter properties\n\t\t\t\t_.each(this.options.memberFilter, function (val, name) {\n\t\t\t\t\tif (model.hasChanged(name) && model.get(name) != val) {\n\t\t\t\t\t\tself.removeTeamMember(model);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\n\t\t, incMemberCount: function () {\n\t\t\treturn this.model.set('memberCount', this.model.get('memberCount') + 1);\n\t\t}\n\n\n\t\t, decMemmberCount: function () {\n\t\t\treturn this.model.set('memberCount', Math.max(this.model.get('memberCount') - 1, 0));\n\t\t}\n\n\n\t\t, addTeamMember: function (teamMemberModel) {\n\t\t\tthis.teamMembersCollection.add(teamMemberModel);\n\t\t\tthis.incMemberCount();\n\t\t}\n\n\n\t\t, removeTeamMember: function (teamMemberModel) {\n\t\t\tthis.teamMembersCollection.remove(teamMemberModel);\n\t\t\tthis.decMemmberCount();\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param options\n\t\t * @param [options.title] display name\n\t\t * @param [options.name] code name (no spaces or funky characters)\n\t\t * @param [options.searchIsEnabled]\n\t\t * @param [options.baseParams]\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\tthis.options = options || {};\n\n\t\t\tthis.model = new Backbone.Model({\n\t\t\t\ttitle: options.title\n\t\t\t\t, memberCount: options.teamMembersCollection.meta('count')\n\t\t\t\t, searchResultsCount: null\n\t\t\t});\n\n\t\t\t// We create a clone of the teamMembersCollection\n\t\t\tthis.teamMembersCollection = new Backbone.Siren.Collection();\n\t\t\tthis.resetTeamMembersCollection(options.teamMembersCollection);\n\n\t\t\tthis.initializeBackgrid();\n\t\t\tthis.render();\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamMember/TeamMembersBackgridView.js","define(function (require) {\n\t'use strict';\n\n\tvar Backgrid = require('kvBackgrid')\n\t, moment = require('moment')\n\t, TeamMemberActionsCell = require('./TeamMemberActionsCell')\n\t, TeamMemberCardView = require('../TeamMemberCardView');\n\n\n\treturn Backgrid.Grid.extend({\n\t\tcolumns: [\n\t\t\t{\n\t\t\t\tcell: Backgrid.Cell.extend({\n\t\t\t\t\trender: function () {\n\t\t\t\t\t\tthis.$el.html(new TeamMemberCardView({model: this.model}).render().el);\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t, editable: false\n\t\t\t}\n\t\t\t, {\n\t\t\t\tname: 'joinTime'\n\t\t\t\t, label: 'Joined this team'\n\t\t\t\t, cell: 'date'\n\t\t\t\t// Custom date formatter\n\t\t\t\t, formatter: {\n\t\t\t\t\tfromRaw: function (rawData) {\n\t\t\t\t\t\treturn moment(rawData).format('MMM D, YYYY');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t, editable: false\n\t\t\t\t, sortable: false\n\t\t\t}\n\t\t\t, {\n\t\t\t\tcell: TeamMemberActionsCell\n\t\t\t\t, editable: false\n\t\t\t}\n\t\t]\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamMember/TeamMembersBackgrid/TeamMembersBackgrid.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t, Backgrid = require('kvBackgrid')\n\t, TeamMemberActionsCellTpl = require('hgn!./TeamMemberActionsCell.mustache');\n\n\treturn Backgrid.Cell.extend({\n\t\ttemplate: TeamMemberActionsCellTpl\n\n\n\t\t, events: {\n\t\t\t'click .sendMessageLink': 'handleSendMessageLinkClick'\n\t\t\t, 'click .dismissLink': 'handleDismissLinkClick'\n\t\t\t, 'click .removeCaptainhoodLink': 'handleRemoveCaptainhoodLinkClick'\n\t\t\t, 'click .bestowCaptainhoodLink': 'handleBestowCaptainhoodLinkClick'\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, handleSendMessageLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\t$.colorbox({href: '/ajax/composeLenderMessage?recipient=' + this.model.get('lender').get('publicId')});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, handleDismissLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this\n\t\t\t, lenderName = this.getLenderName();\n\n\t\t\twwwApp.confirm('Are you sure you want to remove ' + lenderName + ' from the team?', 'Yes, remove from team', 'Cancel')\n\t\t\t\t.done(function (response) {\n\t\t\t\t\tif (response) {\n\t\t\t\t\t\tself.deleteMember();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, handleRemoveCaptainhoodLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar self = this\n\t\t\t, lenderName = this.getLenderName();\n\n\t\t\twwwApp.confirm('Are you sure you want to remove captainhood from ' + lenderName + '?', 'Yes, remove captainhood', 'Cancel')\n\t\t\t\t.done(function (response) {\n\t\t\t\t\tif (response) {\n\t\t\t\t\t\tself.updateCaptainhood(false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {jQuery.Event} event\n\t\t */\n\t\t, handleBestowCaptainhoodLinkClick: function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.updateCaptainhood(true);\n\t\t}\n\n\n\t\t, handleDeleteMemberSync: function () {\n\t\t\tvar lenderName = this.getLenderName();\n\n\t\t\t// The model may belong to multiple collections (\"current\" and \"self\").\n\t\t\t// To avoid the problem of deleting it from the wrong collection we trigger the \"destroy\" event which\n\t\t\t// all containing collections listen to.\n\t\t\tthis.model.trigger('destroy', this.model);\n\t\t\twwwApp.tipMsg(lenderName + ' has been removed from this team.', {autoClose: true});\n\t\t}\n\n\n\t\t, handleDeleteMemberError: function () {\n\t\t\tvar lenderName = this.getLenderName();\n\n\t\t\tthis.fadeRow('in');\n\t\t\twwwApp.tipMsg('There was an error deleting ' + lenderName + ' from the team.', {autoClose: true});\n\t\t}\n\n\n\t\t, handleUpdateMemberSync: function (model) {\n\t\t\tif (model.get('isCaptain')) {\n\t\t\t\twwwApp.tipMsg('There\\'s a new captain in town!', {autoClose: true});\n\t\t\t} else {\n\t\t\t\twwwApp.tipMsg('Captainhood has been removed.', {autoClose: true});\n\t\t\t}\n\n\t\t}\n\n\n\t\t, handleUpdateMemberError: function (model, jqXhr) {\n\t\t\tthis.fadeRow('in');\n\t\t\twwwApp.showApiError(jqXhr, {autoClose: true});\n\t\t}\n\n\n\t\t, deleteMember: function () {\n\t\t\tthis.fadeRow('out');\n\t\t\treturn this.model.getActionByName('deleteMember').execute();\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {Boolean} isCaptain\n\t\t */\n\t\t, updateCaptainhood: function (isCaptain) {\n\t\t\tthis.fadeRow('out');\n\t\t\tthis.model.getActionByName('updateMember').execute({attributes: {isCaptain: isCaptain}});\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {String} publicId\n\t\t * @returns {boolean}\n\t\t */\n\t\t, isSelf: function (publicId) {\n\t\t\treturn wwwApp.userPublicId() == publicId;\n\t\t}\n\n\n\t\t/**\n\t\t *\n\t\t * @param {String} direction - can be \"in\" or \"out\"\n\t\t */\n\t\t, fadeRow: function (direction) {\n\t\t\tthis.$el.parent('tr').stop().animate({opacity: direction == 'in' ? 1 : 0.4});\n\t\t}\n\n\n\t\t, getLenderName: function () {\n\t\t\treturn this.model.get('lender.name') || this.model.get('lender.publicId') || 'Anonymous';\n\t\t}\n\n\n\t\t, serializeData: function () {\n\t\t\tvar publicId = this.model.get('lender.publicId')\n\t\t\t, isSelf = this.isSelf(publicId)\n\t\t\t, data = this.model.toJSON();\n\n\n\t\t\tdata.__showUpdateCaptainhood = !!this.model.getActionByName('updateMember');\n\t\t\tdata.__showDismissFromTeam = this.model.getActionByName('deleteMember') && !isSelf;\n\t\t\tdata.__showSendMessageLink = wwwApp.isUserLoggedIn() && publicId && !isSelf;\n\t\t\treturn data;\n\t\t}\n\n\n\t\t, render: function () {\n\t\t\tthis.$el.html(this.template.render(this.serializeData()));\n\t\t\tthis.delegateEvents();\n\t\t\treturn this;\n\t\t}\n\n\n\t\t, initialize: function () {\n\t\t\tBackgrid.Cell.prototype.initialize.apply(this, $.makeArray(arguments));\n\n\t\t\tthis.listenTo(this.model, 'sync:deleteMember', $.proxy(this.handleDeleteMemberSync, this));\n\t\t\tthis.listenTo(this.model, 'error:deleteMember', $.proxy(this.handleDeleteMemberError, this));\n\t\t\tthis.listenTo(this.model, 'sync:updateMember', $.proxy(this.handleUpdateMemberSync, this));\n\t\t\tthis.listenTo(this.model, 'error:updateMember', $.proxy(this.handleUpdateMemberError, this));\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamMember/TeamMembersBackgrid/TeamMemberActionsCell.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");if(t.s(t.f(\"__showDismissFromTeam\",c,p,1),c,p,0,26,82,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\tDismiss from team\");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"__showUpdateCaptainhood\",c,p,1),c,p,0,138,337,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"isCaptain\",c,p,1),c,p,0,154,223,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\tRemove captainhood\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"isCaptain\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\tBestow captainhood\");t.b(\"\\n\" + i);};});c.pop();}t.b(\"\\n\" + i);if(t.s(t.f(\"__showSendMessageLink\",c,p,1),c,p,0,393,450,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\tSend a message\");t.b(\"\\n\" + i);});c.pop();}return t.fl(); },partials: {}, subs: { }}, \"{{#__showDismissFromTeam}}\\n\\tDismiss from team\\n{{/__showDismissFromTeam}}\\n\\n{{#__showUpdateCaptainhood}}\\n\\t{{#isCaptain}}\\n\\t\\tRemove captainhood\\n\\t{{/isCaptain}}\\n\\t{{^isCaptain}}\\n\\t\\tBestow captainhood\\n\\t{{/isCaptain}}\\n{{/__showUpdateCaptainhood}}\\n\\n{{#__showSendMessageLink}}\\n\\tSend a message\\n{{/__showSendMessageLink}}\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamMember/TeamMembersBackgrid/TeamMemberActionsCell.mustache\n// module id = 789\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar LenderCardView = require('components/Lender/LenderCardView')\n\t, TeamMemberCardTpl = require('hgn!./TeamMemberCardView.mustache');\n\n\n\treturn LenderCardView.extend({\n\t\ttemplate: TeamMemberCardTpl\n\n\n\t\t, className: function () {\n\t\t\treturn 'teamMemberCardView ' + LenderCardView.prototype.className;\n\t\t}\n\n\n\t\t// Modify some model properties\n\t\t, serializeData: function () {\n\t\t\tvar loanBecause\n\t\t\t, data = this.model.toJSON();\n\n\t\t\tif (data.lender) {\n\t\t\t\tdata.__isPublic = true;\n\t\t\t\tdata.__lenderName = data.lender.name;\n\t\t\t\tdata.__url = wwwApp.url('lender', 'view', {publicId: data.lender.publicId});\n\n\t\t\t\tloanBecause = data.lender.profile.loanBecause;\n\t\t\t\tdata.__loanBecause = loanBecause.length > 95 ? loanBecause.trim().substr(0, 95) + '…' : loanBecause;\n\t\t\t} else {\n\t\t\t\tdata.__isPublic = false;\n\t\t\t\tdata.__lenderName = 'Anonymous';\n\t\t\t}\n\n\t\t\tdata.__imgUrl = data.__isPublic && data.lender.image && data.lender.image.id\n\t\t\t\t? '/img/s100/' + data.lender.image.id + '.jpg'\n\t\t\t\t: '/img/entity/lender_s100.png';\n\n\t\t\treturn data;\n\t\t}\n\n\n\t\t, initialize: function (options) {\n\t\t\toptions = options || {};\n\n\t\t\tvar self = this;\n\n\t\t\tif (! this.model && options.teamId && options.lenderId) {\n\t\t\t\twwwApp.siren.resolve('team/' + options.teamId + '/member/' + options.lenderId).done(function (teamMemberModel) {\n\t\t\t\t\tself.model = teamMemberModel;\n\t\t\t\t\tself.render();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n});\n\n\n// WEBPACK FOOTER //\n// ./views/components/Team/TeamMember/TeamMemberCardView.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\");t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.whereabouts\",c,p,1),c,p,0,547,620,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            \");t.b(t.v(t.d(\"lender.profile.whereabouts\",c,p,0)));t.b(\"
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\\n\" + i);if(t.s(t.d(\"lender.profile.loanBecause\",c,p,1),c,p,0,685,828,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\tI loan because:\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.t(t.f(\"__loanBecause\",c,p,0)));t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
            \");return t.fl(); },partials: {}, subs: { }}, \"\\n\\n
            \\n\\t\\n\\n\\t{{#lender.profile.whereabouts}}\\n\\t\\t
            {{lender.profile.whereabouts}}
            \\n\\t{{/lender.profile.whereabouts}}\\n\\n\\t{{#lender.profile.loanBecause}}\\n\\t\\t
            \\n\\t\\t\\tI loan because:\\n\\t\\t\\t{{{__loanBecause}}}\\n\\t\\t
            \\n\\t{{/lender.profile.loanBecause}}\\n
            \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamMember/TeamMemberCardView.mustache\n// module id = 791\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t

            \");t.b(t.v(t.f(\"title\",c,p,0)));t.b(\" (\");t.b(t.v(t.f(\"memberCount\",c,p,0)));t.b(\")

            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\tShow more members\");t.b(\"\\n\" + i);t.b(\"
            \");return t.fl(); },partials: {}, subs: { }}, \"
            \\n\\t

            {{title}} ({{memberCount}})

            \\n
            \\n\\n
            \\n\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!./views/components/Team/TeamMember/TeamMembersBackgridView.mustache\n// module id = 792\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery');\n\n\treturn {\n\t\tinit: function () {\n\t\t\tvar $tapButton = $('.tap-button')\n\t\t\t\t, $closeIcon = $('.hp-how-it-works-wrapper .close-icon')\n\t\t\t\t, $howItWorksAccordion = $('[aria-controls=\"ac-how-it-works\"]')\n\t\t\t\t, steps = [$('.icon.step-1'), $('.icon.step-2'), $('.icon.step-3'), $('.icon.step-4')]\n\t\t\t\t, arrows = [ $('.icon.arrow-1'), $('.icon.arrow-2'), $('.icon.arrow-3'), $('.icon.arrow-4')]\n\t\t\t\t, texts = [ $('.small-step-1'), $('.small-step-2'), $('.small-step-3'), $('.small-step-4')]\n\t\t\t\t, numSteps = steps.length\n\t\t\t\t, activeStep = 0\n\t\t\t\t, activeClass = 'active'\n\t\t\t\t, activeTextClass = 'hide-for-large-up'\n\t\t\t\t, hiddenTextClass = 'hide';\n\n\t\t\t// replicating jquery add|remove class() since they don't\n\t\t\t// work for svg elements\n\t\t\tfunction svgAddClass($svg, className) {\n\t\t\t\tvar currentClass = $svg.attr('class');\n\t\t\t\t$svg.attr('class', currentClass + ' ' + className);\n\t\t\t}\n\n\t\t\tfunction svgRemoveClass($svg, className) {\n\t\t\t\tvar currentClass = $svg.attr('class');\n\t\t\t\t$svg.attr('class', currentClass.replace(className, '').trim());\n\t\t\t}\n\n\t\t\tfunction advanceHighlight() {\n\t\t\t\tsvgRemoveClass(steps[activeStep], activeClass);\n\t\t\t\tsvgRemoveClass(arrows[activeStep], activeClass);\n\t\t\t\ttexts[activeStep].addClass(hiddenTextClass).removeClass(activeTextClass);\n\n\t\t\t\tactiveStep = ++activeStep % numSteps;\n\n\t\t\t\tsvgAddClass(steps[activeStep], activeClass);\n\t\t\t\tsvgAddClass(arrows[activeStep], activeClass);\n\t\t\t\ttexts[activeStep].addClass(activeTextClass).removeClass(hiddenTextClass);\n\t\t\t}\n\n\t\t\t$tapButton.on('click', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tadvanceHighlight();\n\t\t\t});\n\n\t\t\t$closeIcon.on('click', function() {\n\t\t\t\t$howItWorksAccordion.trigger('click');\n\t\t\t});\n\t\t},\n\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/HowItWorks/HowItWorks.js","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t\t, kv = require('kv');\n\n\treturn {\n\t\tinit: function (businessId) {\n\n\t\t\tvar MAX_NUM_TAGS_ALLOWED = 5;\n\n\t\t\tfunction onLoanTagCheckboxClick() {\n\t\t\t\tvar tagId = $(this).val();\n\t\t\t\tvar checked = $(this).is(':checked');\n\t\t\t\tvar tag = $('.loan-tag-' + tagId);\n\t\t\t\ttag.attr('checked', checked);\n\t\t\t\ttag.prop('checked', checked);\n\t\t\t\tif ($('.all-tags.hide-for-touch input[type=\"checkbox\"]:checked').size() > MAX_NUM_TAGS_ALLOWED && checked) {\n\t\t\t\t\ttag.attr('checked', false);\n\t\t\t\t\ttag.prop('checked', false);\n\t\t\t\t\twwwApp.tipMsg('You can choose up to 5 tags for each loan. Thanks for tagging!', 'warning');\n\t\t\t\t} else {\n\t\t\t\t\tvar urlParams = 'checked=' + checked + '&tag_id=' + tagId + '&business_id=' + businessId + '&user_id=' + wwwApp.userPublicId();\n\t\t\t\t\t$.post(wwwApp.ajaxUrl('addOrRemoveLoanTag'), urlParams, onAjaxProcessAddOrRemoveLoanTag(tagId, checked), 'json');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onAjaxProcessAddOrRemoveLoanTag(tagId, checked) {\n\t\t\t\treturn function(ajaxResult) {\n\t\t\t\t\tif (ajaxResult.result === 1) {\n\t\t\t\t\t\tupdateTagSection(tagId, checked);\n\t\t\t\t\t}\n\t\t\t\t\telse if (ajaxResult.result === 0) {\n\t\t\t\t\t\tvar tag = $('.loan-tag-' + tagId);\n\t\t\t\t\t\ttag.attr('checked', !checked);\n\t\t\t\t\t\ttag.prop('checked', !checked);\n\t\t\t\t\t\tif (ajaxResult.user_not_logged_in) {\n\t\t\t\t\t\t\twwwApp.tipMsg('You must be logged in to add or remove tags.', 'warning');\n\t\t\t\t\t\t} else if (ajaxResult.exec.checked) {\n\t\t\t\t\t\t\twwwApp.tipMsg(('Could not add tag: ' + ajaxResult.error), 'error');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twwwApp.tipMsg(('Could not remove tag: ' + ajaxResult.error), 'error');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\twwwApp.tipMsg('Error: No response from server', 'error');\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction updateTagSection(tagId, checked) {\n\t\t\t\tif (checked) {\n\t\t\t\t\tvar tagName = $('#loan-tag-' + tagId).attr('name');\n\t\t\t\t\tvar selectedTags = $('.selected-tags');\n\t\t\t\t\tif(selectedTags.html().indexOf(tagName) === -1) {\n\t\t\t\t\t\tvar href = wwwApp.url('lend', 'showLendView', null, {tag:tagId});\n\t\t\t\t\t\tvar tagHtml ='' + tagName + ' | ';\n\t\t\t\t\t\t$(selectedTags).append(tagHtml);\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$('.user-selected-tag-' + tagId).remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$('.tag :checkbox').click(onLoanTagCheckboxClick);\n\t\t}\n\t};\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Loan/LoanTags.js","/*global wwwApp*/\ndefine(function (require) {\n 'use strict';\n\n var $ = require('jquery')\n , kv = require('kv')\n , moment = require('moment')\n , commentTemplate = require('hgn!patterns/01-molecules/06-components/08-loan-comment');\n\n return {\n init: function (businessId, loggedInUserRole) {\n var commentCount = $('.comments-and-updates-count');\n\n function addComment() {\n var isUserTheBorrower = (loggedInUserRole === 'Borrower');\n var isUserAdmin = (loggedInUserRole === 'Kiva Staff');\n var commentText = $('#comment-field').val();\n\n if(commentText.length > 5000) {\n wwwApp.tipMsg('Your comment must have less than 5000 characters. Please edit and try again.', 'error');\n } else if(commentText.length === 0) {\n wwwApp.tipMsg('You have an empty comment. Please edit and try again.', 'error');\n } else {\n $.ajax({\n url: wwwApp.apiRootV2() + '/loans/' + businessId + '/comments',\n type: 'post',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify({\n 'body': commentText\n })\n })\n .done(function (result) {\n\n var resultProperties = result.properties;\n var data = {\n 'commentId': resultProperties.id,\n 'commenterProfileUrl': resultProperties.authorProfileUrl,\n 'commenterImgUrl': resultProperties.authorImageUrl,\n 'commenterFirstName': resultProperties.authorName,\n 'commenterLocation': resultProperties.authorWhereabouts,\n 'commenterRole': loggedInUserRole,\n 'commentTimestamp': moment(resultProperties.date).format('MMMM Do YYYY h:mm a'),\n 'commentText': resultProperties.body.replace(/(\\n)+/g, '
            '), //replacing newlines with line breaks,\n 'isBorrower': isUserTheBorrower,\n 'isLoggedInUserAdmin': isUserAdmin\n };\n\n var newComment = $(commentTemplate.render(data));\n $('.comments').prepend(newComment);\n newComment.click(function(e) {\n e.preventDefault();\n deleteComment(resultProperties.id);\n });\n $('#ac-comments-and-updates-body').height( $('#ac-comments-and-updates-body').height() + $('.comment').height() + 35 );\n $('#comment-field').val('');\n commentCount.text(parseInt(commentCount.text()) + 1);\n })\n .fail(function (result) {\n var resultProperties = result.responseJSON.properties;\n if(resultProperties) {\n if(resultProperties.summary.isPublic) {\n wwwApp.tipMsg('Your lender profile must be set to public in order to comment. Please change your profile settings and try again.', 'error');\n } else if(resultProperties.summary.maxThreshold) {\n wwwApp.tipMsg('You have exceeded the limit of allowed comments in a day. Please wait 24 hours before commenting again.', 'error');\n } else {\n wwwApp.tipMsg('Failed to add comment. Please try again.', 'error');\n }\n } else {\n wwwApp.tipMsg('Failed to add comment. Please try again.', 'error');\n }\n });\n }\n }\n\n function deleteComment(commentId) {\n $.ajax({\n url: wwwApp.apiRootV2() + '/comments/' + commentId,\n type: 'DELETE'\n })\n .done(function () {\n $('#comment-' + commentId).remove();\n $('#ac-comments-and-updates-body').css('height', 'auto');\n commentCount.text(parseInt(commentCount.text()) - 1);\n })\n .fail(function () {\n wwwApp.tipMsg('Failed to delete comment. Please try again.', 'error');\n });\n }\n\n function subscribe() {\n $.ajax({\n url: wwwApp.apiRootV2() + '/loans/' + businessId + '/subscribe',\n type: 'PUT'\n })\n .done(function () {\n $('.subscribe-block').toggle();\n $('.unsubscribe-block').toggle();\n })\n .fail(function () {\n wwwApp.tipMsg('Failed to subscribe to commenting for this loan. Please try again.', 'error');\n });\n }\n\n function unsubscribe() {\n $.ajax({\n url: wwwApp.apiRootV2() + '/loans/' + businessId + '/subscribe',\n type: 'DELETE'\n })\n .done(function () {\n $('.subscribe-block').toggle();\n $('.unsubscribe-block').toggle();\n })\n .fail(function () {\n wwwApp.tipMsg('Failed to unsubscribe to commenting for this loan. Please try again.', 'error');\n });\n }\n\n function flagComment(commentId, description){\n $.ajax({\n url: wwwApp.apiRootV2() + '/comments/' + commentId + '/flag',\n type: 'PUT',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify({\n 'description': description\n })\n }).done(function () {\n $('textarea#flag-description-' + commentId).val('');\n $('#flag-comment-lightbox-' + commentId).foundation('reveal', 'close');\n var $flagAnchor = $('#' + commentId);\n $flagAnchor.after('Flagged on ' + moment().format('MMMM D, YYYY') + '');\n $flagAnchor.remove();\n }).fail(function(){\n wwwApp.tipMsg('Failed to flag comment', 'error');\n });\n }\n\n $('.comment-submit').click(addComment);\n $('.comments .delete-comment,.spillover-comments .delete-comment').click(function(e) {\n e.preventDefault();\n deleteComment(e.target.id);\n });\n $('.comments .flag-comment').click(function(e){\n e.preventDefault();\n var commentId = e.target.id;\n $('.submit-flag').click(function(e){\n e.preventDefault();\n var description = $('textarea#flag-description-' + commentId).val();\n flagComment(commentId, description);\n });\n });\n $('.comment-subscribe').click(subscribe);\n $('.comment-unsubscribe').click(unsubscribe);\n }\n };\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/Loan/LoanComments.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
          • \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"commenterLocation\",c,p,0)));t.b(\"\\\" style=\\\"background-image:url(\");t.b(t.v(t.f(\"commenterImgUrl\",c,p,0)));t.b(\")\\\">\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"commenterFirstName\",c,p,0)));if(t.s(t.f(\"commenterRole\",c,p,1),c,p,0,702,721,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\", \");t.b(t.v(t.f(\"commenterRole\",c,p,0)));});c.pop();}t.b(\" | \");t.b(t.v(t.f(\"commentTimestamp\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\" \");t.b(t.v(t.f(\"commenterFirstName\",c,p,0)));if(t.s(t.f(\"commenterRole\",c,p,1),c,p,0,885,904,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\", \");t.b(t.v(t.f(\"commenterRole\",c,p,0)));});c.pop();}t.b(\"
            \");t.b(t.v(t.f(\"commentTimestamp\",c,p,0)));t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(t.t(t.f(\"commentText\",c,p,0)));t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\" \");if(t.s(t.f(\"isLoggedInUserAdmin\",c,p,1),c,p,0,1094,1158,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Delete\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"canFlag\",c,p,1),c,p,0,1198,1328,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Flag as inappropriate\");});c.pop();}t.b(\"\\n\" + i);t.b(\"\t\t\t\");if(t.s(t.f(\"timeFlagged\",c,p,1),c,p,0,1360,1415,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Flagged on \");t.b(t.v(t.f(\"timeFlagged\",c,p,0)));t.b(\"\");});c.pop();}t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/10-lightbox/10-flag-comment-lightbox0\",c,p,\"\t\t\t\"));t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"
          • \");return t.fl(); },partials: {\"<01-molecules/10-lightbox/10-flag-comment-lightbox0\":{name:\"01-molecules/10-lightbox/10-flag-comment-lightbox\", partials: {}, subs: { }}}, subs: { }}, \"
          • \\n {{commenterLocation}}\\\" style=\\\"background-image:url({{commenterImgUrl}})\\\">\\n
            \\n
            \\n {{commenterFirstName}}{{#commenterRole}}, {{commenterRole}}{{/commenterRole}} | {{commentTimestamp}}\\n
            \\n
            \\n {{commenterFirstName}}{{#commenterRole}}, {{commenterRole}}{{/commenterRole}}
            {{commentTimestamp}}\\n
            \\n
            {{{commentText}}}
            \\n
            \\n {{#isLoggedInUserAdmin}}Delete{{/isLoggedInUserAdmin}}\\n\\t\\t\\t{{#canFlag}}Flag as inappropriate{{/canFlag}}\\n\\t\\t\\t{{#timeFlagged}}Flagged on {{timeFlagged}}{{/timeFlagged}}\\n\\t\\t\\t{{> 01-molecules/10-lightbox/10-flag-comment-lightbox}}\\n
            \\n
            \\n
          • \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/06-components/08-loan-comment.mustache\n// module id = 796\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\\n\" + i);t.b(\"\t
            Contributing lenders (\");t.b(t.v(t.f(\"lenderCount\",c,p,0)));t.b(\")
            \");t.b(\"\\n\" + i);if(t.s(t.f(\"allLendersAnonymous\",c,p,1),c,p,0,379,505,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"

            \");t.b(\"\\n\" + i);t.b(\" Lenders supporting this loan have chosen to remain anonymous.\");t.b(\"\\n\" + i);t.b(\"

            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"
              \");t.b(\"\\n\" + i);if(t.s(t.f(\"lenders\",c,p,1),c,p,0,569,639,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);t.b(t.rp(\"<01-molecules/03-media/02-lender-avatar0\",c,p,\"\t\t\t\t\"));t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);if(t.s(t.f(\"lendersExpanded\",c,p,1),c,p,0,712,1307,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"beyondLenderCutoffCount\",c,p,1),c,p,0,744,970,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"lendersLoading\",c,p,1),c,p,0,768,826,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner1\",c,p,\"\t\t\t\t\t\"));});c.pop();}t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"beyondLenderCutoffCount\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"numAnonymousLenders\",c,p,1),c,p,0,1059,1169,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t\t
            + \");t.b(t.v(t.f(\"numAnonymousLenders\",c,p,0)));t.b(\" anonymous lenders
            \");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t\t\tHide\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"lendersExpanded\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"showSpilloverMessageForLenders\",c,p,1),c,p,0,1389,1546,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"\\n\" + i);t.b(\"\t
            Contributing teams (\");t.b(t.v(t.f(\"teamCount\",c,p,0)));t.b(\")
            \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);if(t.s(t.f(\"teamsExpanded\",c,p,1),c,p,0,2490,2846,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"beyondTeamCutoffCount\",c,p,1),c,p,0,2520,2740,\"{{ }}\")){t.rs(c,p,function(c,p,t){if(t.s(t.f(\"teamsLoading\",c,p,1),c,p,0,2542,2600,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/03-media/01-loading-spinner2\",c,p,\"\t\t\t\t\t\"));});c.pop();}t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);});c.pop();}t.b(\"\t\t\tHide\");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"teamsExpanded\",c,p,1),c,p,1,0,0,\"\")){if(t.s(t.f(\"showSpilloverMessageForTeams\",c,p,1),c,p,0,2922,3075,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\tShow more\");t.b(\"\\n\" + i);});c.pop();}};t.b(\"\t
            \");t.b(\"\\n\");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");return t.fl(); },partials: {\"<01-molecules/03-media/02-lender-avatar0\":{name:\"01-molecules/03-media/02-lender-avatar\", partials: {}, subs: { }},\"<01-molecules/03-media/01-loading-spinner1\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }},\"<01-molecules/03-media/01-loading-spinner2\":{name:\"01-molecules/03-media/01-loading-spinner\", partials: {}, subs: { }}}, subs: { }}, \"
            \\n\\n\\t{{! ------------------------- Lenders section -------------------------------- }}\\n\\n\\t
            Contributing lenders ({{lenderCount}})
            \\n {{#allLendersAnonymous}}\\n

            \\n Lenders supporting this loan have chosen to remain anonymous.\\n

            \\n {{/allLendersAnonymous}}\\n
              \\n\\t\\t{{#lenders}}\\n\\t\\t\\t
            • \\n\\t\\t\\t\\t{{> 01-molecules/03-media/02-lender-avatar }}\\n\\t\\t\\t
            • \\n\\t\\t{{/lenders}}\\n\\t
            \\n\\t
            \\n\\t\\t{{#lendersExpanded}}\\n\\t\\t\\t{{#beyondLenderCutoffCount}}\\n\\t\\t\\t\\t{{#lendersLoading}}\\n\\t\\t\\t\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t\\t\\t\\t{{/lendersLoading}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t\\t
            \\n\\t\\t\\t{{/beyondLenderCutoffCount}}\\n\\t\\t\\t{{^beyondLenderCutoffCount}}\\n\\t\\t\\t\\t{{#numAnonymousLenders}}\\n\\t\\t\\t\\t\\t
            + {{numAnonymousLenders}} anonymous lenders
            \\n\\t\\t\\t\\t{{/numAnonymousLenders}}\\n\\t\\t\\t{{/beyondLenderCutoffCount}}\\n\\t\\t\\tHide\\n\\t\\t{{/lendersExpanded}}\\n\\t\\t{{^lendersExpanded}}\\n\\t\\t\\t{{#showSpilloverMessageForLenders}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t{{/showSpilloverMessageForLenders}}\\n\\t\\t{{/lendersExpanded}}\\n\\t
            \\n\\n\\t{{! ------------------------- Teams section -------------------------------- }}\\n\\n\\t
            Contributing teams ({{teamCount}})
            \\n\\t\\n\\t
            \\n\\t\\t{{#teamsExpanded}}\\n\\t\\t\\t{{#beyondTeamCutoffCount}}\\n\\t\\t\\t\\t{{#teamsLoading}}\\n\\t\\t\\t\\t\\t{{> 01-molecules/03-media/01-loading-spinner }}\\n\\t\\t\\t\\t{{/teamsLoading}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t\\t
            \\n\\t\\t\\t{{/beyondTeamCutoffCount}}\\n\\t\\t\\tHide\\n\\t\\t{{/teamsExpanded}}\\n\\t\\t{{^teamsExpanded}}\\n\\t\\t\\t{{#showSpilloverMessageForTeams}}\\n\\t\\t\\t\\tShow more\\n\\t\\t\\t{{/showSpilloverMessageForTeams}}\\n\\t\\t{{/teamsExpanded}}\\n\\t
            \\n\\n
            \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/15-loan-sections/07-lenders-teams.mustache\n// module id = 797\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(t.v(t.f(\"location\",c,p,0)));t.b(\"\\\"\");t.b(\"\\n\" + i);t.b(\"\t\");});c.pop();}t.b(\" kvtrackevent=\\\"Borrower Profile|click-lender-image|\");t.b(t.v(t.f(\"permanentName\",c,p,0)));t.b(\"\\\">\");t.b(\"\\n\" + i);if(t.s(t.f(\"initial\",c,p,1),c,p,0,344,433,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(t.v(t.f(\"initial\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"initial\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\");t.b(\"\\n\" + i);};t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\");t.b(t.v(t.f(\"firstName\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");t.b(t.v(t.f(\"location\",c,p,0)));t.b(\"\");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"{{location}}\\\"\\n\\t{{/displayTooltip}} kvtrackevent=\\\"Borrower Profile|click-lender-image|{{permanentName}}\\\">\\n\\t{{#initial}}\\n\\t\\t
            \\n\\t\\t\\t{{initial}}\\n\\t\\t
            \\n\\t{{/initial}}\\n\\t{{^initial}}\\n\\t\\t\\n\\t{{/initial}}\\n
            \\n{{firstName}}\\n{{location}}\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/03-media/02-lender-avatar.mustache\n// module id = 798\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              Average annual income (USD):
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              \");t.b(t.v(t.f(\"avgAnnualIncome\",c,p,0)));t.b(\"
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              Funds lent in \");t.b(t.v(t.f(\"countryName\",c,p,0)));t.b(\":
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              \");if(t.s(t.f(\"fundsLentInCountry\",c,p,1),c,p,0,426,448,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.v(t.f(\"fundsLentInCountry\",c,p,0)));});c.pop();}if(!t.s(t.f(\"fundsLentInCountry\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t \");};t.b(\"
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);if(t.s(t.f(\"inUSD\",c,p,1),c,p,0,558,677,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\t\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              Loan transacted in USD
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              U.S. dollars
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            • \");t.b(\"\\n\" + i);});c.pop();}if(!t.s(t.f(\"inUSD\",c,p,1),c,p,1,0,0,\"\")){t.b(\"\t\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              \");t.b(t.v(t.f(\"currencyFullName\",c,p,0)));t.b(\" (\");t.b(t.v(t.f(\"currencyCode\",c,p,0)));t.b(\") = $1:
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
              \");t.b(t.v(t.f(\"exchangeRate\",c,p,0)));t.b(\"
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            • \");t.b(\"\\n\" + i);};t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              Loans currently fundraising:
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
              \");t.b(t.v(t.f(\"numLoansFundraising\",c,p,0)));t.b(\"
              \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            • \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"
            \");t.b(\"\\n\");return t.fl(); },partials: {}, subs: { }}, \"
            \\n\\t
            \\n\\t\\t
              \\n\\t\\t\\t
            • \\n\\t\\t\\t\\t
              Average annual income (USD):
              \\n\\t\\t\\t\\t
              {{avgAnnualIncome}}
              \\n\\t\\t\\t
            • \\n\\t\\t\\t
            • \\n\\t\\t\\t\\t
              Funds lent in {{countryName}}:
              \\n\\t\\t\\t\\t
              {{#fundsLentInCountry}}{{fundsLentInCountry}}{{/fundsLentInCountry}}{{^fundsLentInCountry}}\\n\\t\\t\\t\\t\\t {{/fundsLentInCountry}}
              \\n\\t\\t\\t
            • \\n\\t\\t\\t{{#inUSD}}\\n\\t\\t\\t\\t
            • \\n\\t\\t\\t\\t\\t
              Loan transacted in USD
              \\n\\t\\t\\t\\t\\t
              U.S. dollars
              \\n\\t\\t\\t\\t
            • \\n\\t\\t\\t{{/inUSD}}\\n\\t\\t\\t{{^inUSD}}\\n\\t\\t\\t\\t
            • \\n\\t\\t\\t\\t\\t
              {{currencyFullName}} ({{currencyCode}}) = $1:
              \\n\\t\\t\\t\\t\\t
              {{exchangeRate}}
              \\n\\t\\t\\t\\t
            • \\n\\t\\t\\t{{/inUSD}}\\n\\t\\t\\t
            • \\n\\t\\t\\t\\t
              Loans currently fundraising:
              \\n\\t\\t\\t\\t
              {{numLoansFundraising}}
              \\n\\t\\t\\t
            • \\n\\t\\t
            \\n\\t
            \\n
            \\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/15-loan-sections/22-country-info.mustache\n// module id = 799\n// module chunks = 0","define(function (require) {\n\t'use strict';\n\n\tvar $ = require('jquery')\n\t\t, Marionette = require('marionette')\n\t\t, Backbone = require('kvBackbone')\n\t\t, LoanCardView = require('components/LoansNearMe/LoansNearMeLoanCardView')\n\t\t, NoResultsView = require('components/Lend/NoResultsView')\n\t\t, browser = require('bowser')\n\t\t;\n\n\treturn Marionette.CompositeView.extend({\n\n\t\ttemplate: require('hgn!patterns/02-organisms/04-loancards/02-loancards-listing')\n\n\t\t, emptyView: NoResultsView\n\n\t\t, childView: LoanCardView\n\n\t\t, childViewContainer: 'ul.loancards-list'\n\n\t\t, childEvents: {\n\t\t\tlend: '_handleLend'\n\t\t}\n\n\t\t, collection: new Backbone.Collection()\n\n\t\t, model: new Backbone.Model()\n\n\n\t\t, _handleLend: function(loan_card, loan_id) {\n\t\t\tthis.trigger('lend', loan_id);\n\t\t}\n\n\n\t\t, _reflow: function() {\n\t\t\t$(document).foundation('interchange', 'reflow');\n\t\t\t$(document).foundation('equalizer','reflow');\n\t\t\tif(!browser.msie) {\n\t\t\t\t$('.tooltip').remove();\n\t\t\t\t$(document).foundation('tooltip', 'reflow');\n\t\t\t}\n\t\t\tvar height = this.$('.loan-card').css('height');\n\t\t\tthis.children.each(function(loan_card) {\n\t\t\t\tif(loan_card instanceof LoanCardView) {\n\t\t\t\t\tloan_card.saveHeight(height);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\n\t\t, updateResults: function(loans, enable_previous, enable_next, enable_first, enable_last) {\n\t\t\tthis.collection.set(loans);\n\t\t\tthis.model.set({\n\t\t\t\tdisable_previous: !enable_previous\n\t\t\t\t, disable_next: !enable_next\n\t\t\t\t, disable_first: !enable_first\n\t\t\t\t, disable_last: !enable_last\n\t\t\t\t, hide_paging: !enable_previous && !enable_next && !enable_first && !enable_last\n\t\t\t});\n\n\t\t\tthis.render();\n\t\t\tthis._reflow();\n\n\t\t\t// hide loading spinner as this view renders\n\t\t\t$('.loading-overlay').hide();\n\t\t}\n\n\n\t\t, updateBasketStatus: function(loan_id, basket_amount) {\n\t\t\tvar loan_card = this.children.findByModel(this.collection.get(loan_id));\n\t\t\tloan_card.updateBasketStatus(basket_amount);\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/LoansNearMe/LoansNearMeResultsView.js","define(function (require) {\n\t'use strict';\n\n\tvar _ = require('underscore')\n\t\t, $ = require('jquery')\n\t\t, Marionette = require('marionette')\n\t\t, numeral = require('numeral')\n\t\t, moment = require('moment')\n\t\t, ImageFooterView = require('components/Lend/ImageFooterView')\n\t\t, BottomBarView = require('components/Lend/BottomBarView')\n\t\t, loan_card_template = require('hgn!patterns/02-organisms/04-loancards/00-loancard-listing')\n\t\t;\n\n\treturn Marionette.ItemView.extend({\n\t\tgetTemplate: function () {\n\t\t\treturn loan_card_template;\n\t\t}\n\n\t\t, tagName: 'li'\n\n\n\t\t, _getImageUrl: function(data, spec) {\n\t\t\treturn wwwApp.imageUrl(data.image.hash, spec) + (data.reload_image ? '?v=' + moment().unix() : '');\n\t\t}\n\n\n\t\t, _handleLend: function() {\n\t\t\tthis.trigger('lend', this.model.get('id'));\n\t\t}\n\n\n\t\t, _serializeExpiration: function(data) {\n\t\t\tif(data.status === 'fundRaising') {\n\t\t\t\tvar expires = moment(data.plannedExpirationDate * 1000); //correct for js timestamp in milliseconds\n\t\t\t\tvar left = expires.diff(moment());\n\n\t\t\t\tif (left < moment.duration(1, 'minute').as('ms')) {\n\t\t\t\t\tdata.expiring_soon_message = 'Ending now!';\n\t\t\t\t\tdata.is_expiring_soon = true;\n\t\t\t\t}\n\t\t\t\telse if (left < moment.duration(5.5, 'days').as('ms')) {\n\t\t\t\t\tdata.expiring_soon_message = 'Only ' + expires.fromNow(true) + ' left!';\n\t\t\t\t\tdata.is_expiring_soon = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\t, _serializeImages: function(data) {\n\t\t\tdata.image.sizes = [\n\t\t\t\t{\n\t\t\t\t\tsize: 'default',\n\t\t\t\t\turl: this._getImageUrl(data, 'w480h300')\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tsize: 'retina',\n\t\t\t\t\turl: this._getImageUrl(data, 'w960h600')\n\t\t\t\t}\n\t\t\t];\n\n\t\t\tif(data.list_view) {\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'xlarge-proper',\n\t\t\t\t\turl: this._getImageUrl(data, 's100')\n\t\t\t\t});\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'xlarge-retina-proper',\n\t\t\t\t\turl: this._getImageUrl(data, 's200')\n\t\t\t\t});\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'list-view',\n\t\t\t\t\turl: this._getImageUrl(data, 's150')\n\t\t\t\t});\n\t\t\t\tdata.image.sizes.push({\n\t\t\t\t\tsize: 'list-view-retina',\n\t\t\t\t\turl: this._getImageUrl(data, 's300')\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdata.image.edit_url = 'https://cloudinary.com/console/media_library#/dialog/image/upload/remote/'+data.image.hash;\n\t\t}\n\n\n\t\t, _serializeLoanLength: function(data) {\n\t\t\tif(data.show_loan_length) {\n\t\t\t\tdata.loan_length = data.lenderRepaymentTerm + ' month loan';\n\t\t\t}\n\t\t}\n\n\n\t\t, _serializeLocation: function(data) {\n\t\t\tif(data.geocode && data.geocode.country && data.geocode.country.isoCode) {\n\t\t\t\tdata.geocode.country.iso_code = data.geocode.country.isoCode.toLowerCase();\n\t\t\t}\n\n\t\t\tif(data.geocode && data.geocode.city && data.geocode.state) {\n\t\t\t\tdata.location_label = data.geocode.city + ', ' + data.geocode.state;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdata.location_label = data.geocode.country.name;\n\t\t\t}\n\t\t}\n\n\n\t\t, _serializeMatching: function(data) {\n\t\t\tdata.is_matched = !!data.isMatchable;\n\t\t\tif (data.is_matched) {\n\t\t\t\tdata.matching_text = 'Matching by ' + (data.matcherName ? data.matcherName : 'a Kiva supporter');\n\t\t\t}\n\t\t}\n\n\n\t\t, _serializeProgress: function(data) {\n\t\t\tif(data.status === 'expired') {\n\t\t\t\tdata.progress = {\n\t\t\t\t\tmessage: 'Expired'\n\t\t\t\t\t, percent: 0\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if(data.is_ended) {\n\t\t\t\tdata.progress = {\n\t\t\t\t\tmessage: 'Funded'\n\t\t\t\t\t, percent: 100\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar total = parseFloat(data.loanAmount.amount);\n\t\t\t\tvar raised = parseFloat(data.loanFundraisingInfo.fundedAmount.amount);\n\t\t\t\tvar in_basket = parseFloat(data.loanFundraisingInfo.reservedAmount.amount);\n\t\t\t\tvar funded = raised + in_basket;\n\t\t\t\tvar amountLeft = (total - funded < 0 ? 0 : total - funded);\n\t\t\t\tthis.model.set('amount_left', amountLeft);\n\n\t\t\t\tdata.progress = {\n\t\t\t\t\tmessage: numeral(amountLeft).format() + ' to go'\n\t\t\t\t\t, percent: (funded / total) * 100\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\n\t\t, _serializeUrls: function(data) {\n\t\t\tdata.borrower_url = wwwApp.url('businesses','loanView', {loanId: data.id});\n\t\t}\n\n\t\t, uncapitalizeFirstLetter: function(aString) {\n\t\t\treturn aString.charAt(0).toLowerCase() + aString.slice(1);\n\t\t}\n\n\t\t, _serializeUse: function(data) {\n\t\t\tvar maxLength = 150;\n\t\t\tif (data.use === '') {\n\t\t\t\tdata.use = 'For the borrower\\'s privacy, this loan has been made anonymous.';\n\t\t\t} else {\n\t\t\t\tdata.use = 'A loan of '\n\t\t\t\t\t+ numeral(data.loanAmount.amount).format()\n\t\t\t\t\t+ ((data.status === 'fundRaising' || data.status === 'inactive' || data.status === 'reviewed') ? ' helps' : ' helped')\n\t\t\t\t\t+ (data.borrowerCount > 1 ? ' a member ' : ' ')\n\t\t\t\t\t+ this.uncapitalizeFirstLetter(data.use.trim());\n\t\t\t}\n\n\t\t\tif(data.use.length > maxLength) {\n\t\t\t\tdata.use = data.use.substring(0, maxLength) + '...';\n\t\t\t}\n\t\t}\n\n\n\t\t, saveHeight: function(height) {\n\t\t\tthis.descHeight = height;\n\t\t}\n\n\n\t\t, updateBasketStatus: function(basket_amount) {\n\t\t\tthis.bottomBar.updateBasketStatus(basket_amount);\n\t\t}\n\n\n\t\t, serializeData: function() {\n\t\t\tvar data = this.model.toJSON();\n\n\t\t\tif (data.show_message_card) {\n\t\t\t\treturn _.extend(\n\t\t\t\t\t_.pick(data, [\n\t\t\t\t\t\t'title',\n\t\t\t\t\t\t'body',\n\t\t\t\t\t\t'button_text',\n\t\t\t\t\t\t'button_url'\n\t\t\t\t\t]),\n\t\t\t\t\t{ height: this.descHeight ? this.descHeight : 'auto' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tnumeral.defaultFormat('$0,0[.]00');\n\n\t\t\tthis._serializeExpiration(data);\n\t\t\tthis._serializeImages(data);\n\t\t\tthis._serializeLoanLength(data);\n\t\t\tthis._serializeLocation(data);\n\t\t\tthis._serializeMatching(data);\n\t\t\tthis._serializeProgress(data);\n\t\t\tthis._serializeUrls(data);\n\t\t\tthis._serializeUse(data);\n\n\t\t\tdata.height = this.descHeight ? this.descHeight : 'auto';\n\n\t\t\treturn data;\n\t\t}\n\n\n\t\t, onRender: function() {\n\n\t\t\tvar image_footer_data = _.pick(this.model.attributes, [\n\t\t\t\t'isMatchable',\n\t\t\t\t'matcherName',\n\t\t\t\t'is_favorite',\n\t\t\t\t'can_favorite'\n\t\t\t]);\n\n\t\t\timage_footer_data.is_loan_card_view = true;\n\n\t\t\tthis._serializeMatching(image_footer_data);\n\n\t\t\tthis.imageFooter = new ImageFooterView({\n\t\t\t\tel: this.$('.loan-image-footer'),\n\t\t\t\tdata: image_footer_data\n\t\t\t});\n\t\t\tthis.listenTo(this.imageFooter, 'toggle:favorite', this._handleFavoriteToggle);\n\n\t\t\tthis.bottomBar = new BottomBarView({\n\t\t\t\tel: this.$('.bottom-bar-region'),\n\t\t\t\tdata: _.pick(this.model.attributes, [\n\t\t\t\t\t'id',\n\t\t\t\t\t'amount_in_basket',\n\t\t\t\t\t'free_trial',\n\t\t\t\t\t'is_ended',\n\t\t\t\t\t'is_adding',\n\t\t\t\t\t'is_lent_to',\n\t\t\t\t\t'is_in_basket',\n\t\t\t\t\t'amount_left'\n\t\t\t\t])\n\t\t\t});\n\t\t\tthis.listenTo(this.bottomBar, 'lend', this._handleLend);\n\t\t}\n\n\t\t, onShow: function() {\n\t\t\t// reflow foundation interchange to make it set images as background\n\t\t\t$(document).foundation('interchange', 'reflow');\n\t\t}\n\n\n\t\t/**\n\t\t */\n\t\t, initialize: function (options) {\n\t\t\tvar loanData = this.model.get('loan');\n\n\t\t\tvar self = this;\n\t\t\t// update model moving all loan data to top tier\n\t\t\t_.forEach(loanData, function(value, key) {\n\t\t\t\tself.model.set(key, value);\n\t\t\t});\n\n\t\t\tif(this.model.get('status') !== 'fundRaising') {\n\t\t\t\tthis.model.set('is_ended', true);\n\t\t\t}\n\n\t\t\tvar user_properties = this.model.get('userProperties');\n\t\t\tif(user_properties) {\n\t\t\t\tthis.model.set({\n\t\t\t\t\tis_favorite: user_properties.favorited,\n\t\t\t\t\tis_lent_to: user_properties.lentTo\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n});\n\n\n\n// WEBPACK FOOTER //\n// ./views/components/LoansNearMe/LoansNearMeLoanCardView.js","'use strict';\n\nvar numeral = require('numeral');\n\nfunction numCommas(l) {\n\treturn Math.max(0, Math.floor((l - 1) / 3));\n}\n\nfunction getFormattedIndex(newValue, index) {\n\treturn 1 + index + numCommas(newValue.length) - numCommas(newValue.length - index);\n}\n\nmodule.exports = function usdAgent(decimalRequired) {\n\treturn {\n\t\tkeypress: function (el, key) {\n\t\t\t/* jshint maxcomplexity: 15 */\n\n\t\t\tvar current = el.value,\n\t\t\t\tcursor = typeof el.selectionStart !== 'undefined' ? el.selectionStart : current.length,\n\t\t\t\tcursorEnd = typeof el.selectionEnd !== 'undefined' ? el.selectionEnd : current.length,\n\t\t\t\tprefix = current.slice(0, cursor),\n\t\t\t\tsuffix = current.slice(cursorEnd),\n\t\t\t\tnewString = prefix + key + suffix,\n\t\t\t\tformat = '$0,0[.]00';\n\n\t\t\t// only allow numbers, decimal, and dollar sign\n\t\t\tif (/[^0-9.$]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow one decimal\n\t\t\tif (key === '.' && /\\.+/.test(current)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow two characters after the decimal\n\t\t\tif (prefix.slice(-3, -2) === '.' ||\n\t\t\t\t(prefix.slice(-2, -1) === '.' && suffix.length === 1) ||\n\t\t\t\t(prefix.slice(-1) === '.' && suffix.length === 2)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// allow typing a decimal or typing immediately after a decimal\n\t\t\tif (key === '.' || (prefix.slice(-1) === '.' && suffix.length === 0)) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// allow typing a dollar sign at the beginning\n\t\t\tif (key === '$' && prefix.length === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// handle special case of numeraljs removing '.00' when decimal is optional\n\t\t\tif (decimalRequired && newString.slice(-3) === '.00') {\n\t\t\t\tformat = '$0,0.00';\n\t\t\t}\n\n\t\t\t// format the new value\n\t\t\tel.value = numeral(newString).format(format);\n\n\t\t\t// put the cursor back where it was\n\t\t\tvar prefixValue = ((numeral(prefix).value() || '') + '').split('.')[0];\n\t\t\tvar newValue = (numeral(newString).value() || '') + '';\n\t\t\tvar decimalModifier = prefix.indexOf('.') > -1 ? 1 : 0;\n\t\t\tvar newCursor = getFormattedIndex(newValue, prefixValue.length + 1) + decimalModifier;\n\t\t\tel.setSelectionRange(newCursor, newCursor);\n\n\t\t\t// skip any other input\n\t\t\treturn false;\n\t\t}\n\n\t\t, focusout: function (el) {\n\t\t\tif (el.value.length > 0) {\n\t\t\t\tel.value = numeral(el.value).format(decimalRequired ? '$0,0.00' : '$0,0[.]00');\n\t\t\t}\n\t\t}\n\t};\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/autoCorrecter/usdAgent.js","'use strict';\n\nvar numeral = require('numeral');\nvar moment = require('moment');\n\nfunction setDateIfValid(el, val) {\n\t// parse out the number first, as moment will ignore and validate non-numbers and negative numbers\n\tvar value = Math.abs(numeral(val).value());\n\n\t// trick moment into thinking it's january so it will accept the 31st as a valid date\n\tvar date = moment('1 ' + value, 'M Do');\n\n\t// only set if value could be interpreted as valid\n\tif (date.isValid()) {\n\t\tel.value = date.format('Do');\n\t}\n}\n\nmodule.exports = function ordinalAgent() {\n\treturn {\n\t\tkeypress: function (el, key) {\n\t\t\tvar current = el.value,\n\t\t\t\tcursor = typeof el.selectionStart !== 'undefined' ? el.selectionStart : current.length,\n\t\t\t\tcursorEnd = typeof el.selectionEnd !== 'undefined' ? el.selectionEnd : current.length,\n\t\t\t\tprefix = current.slice(0, cursor),\n\t\t\t\tsuffix = current.slice(cursorEnd),\n\t\t\t\tnewString = prefix + key + suffix;\n\n\t\t\t// only allow numbers, and the letters dDhHnNrRsStT\n\t\t\tif (/[^0-9dDhHnNrRsStT]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow numbers at the beginning\n\t\t\tif (prefix.length === 0 && /[^1-9]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow numbers after 1, 2, and 3\n\t\t\tif (/[456789]/.test(prefix) && /[0-9]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// only allow 0, 1, or letters after 3\n\t\t\tif (prefix === '3' && /[^01a-zA-Z]/.test(key)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// format the new value\n\t\t\tif (newString.length > 1) {\n\t\t\t\tsetDateIfValid(el, newString);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tel.value = newString;\n\t\t\t}\n\n\t\t\tvar newCursor = (prefix + key).length;\n\t\t\tel.setSelectionRange(newCursor, newCursor);\n\n\t\t\t// skip any other input\n\t\t\treturn false;\n\t\t}\n\n\t\t, focusout: function (el) {\n\t\t\tif (el.value.length > 0) {\n\t\t\t\tsetDateIfValid(el, el.value);\n\t\t\t}\n\t\t}\n\t};\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/autoCorrecter/ordinalAgent.js","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t\");t.b(\"\\n\" + i);t.b(\"\t\t\");t.b(\"\\n\" + i);if(t.s(t.f(\"distribution-rows\",c,p,1),c,p,0,77,144,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(t.rp(\"<01-molecules/40-portfolio/04-distribution-table-row0\",c,p,\"\t\t\t\t\"));});c.pop();}t.b(\"\t\t\");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\");if(t.s(t.f(\"show_more\",c,p,1),c,p,0,203,262,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"Show \");t.b(t.v(t.f(\"number\",c,p,0)));t.b(\" more\");});c.pop();}t.b(\"\\n\" + i);t.b(\"
            \");return t.fl(); },partials: {\"<01-molecules/40-portfolio/04-distribution-table-row0\":{name:\"01-molecules/40-portfolio/04-distribution-table-row\", partials: {}, subs: { }}}, subs: { }}, \"
            \\n\\t\\n\\t\\t\\n\\t\\t\\t{{#distribution-rows}}\\n\\t\\t\\t\\t{{> 01-molecules/40-portfolio/04-distribution-table-row }}\\n\\t\\t\\t{{/distribution-rows}}\\n\\t\\t\\n\\t
            \\n\\t{{#show_more}}Show {{number}} more{{/show_more}}\\n
            \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/02-organisms/40-portfolio/08-distribution-table.mustache\n// module id = 805\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");if(t.s(t.f(\"url\",c,p,1),c,p,0,30,61,\"{{ }}\")){t.rs(c,p,function(c,p,t){t.b(\"\");t.b(t.v(t.f(\"label\",c,p,0)));t.b(\"\");});c.pop();}if(!t.s(t.f(\"url\",c,p,1),c,p,1,0,0,\"\")){t.b(t.v(t.f(\"label\",c,p,0)));};t.b(\"\");t.b(\"\\n\" + i);t.b(\"\t\");t.b(t.v(t.f(\"percent\",c,p,0)));t.b(\"\");t.b(\"\\n\" + i);t.b(\"\");return t.fl(); },partials: {}, subs: { }}, \"\\n\\t{{#url}}{{label}}{{/url}}{{^url}}{{label}}{{/url}}\\n\\t{{percent}}\\n\", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/40-portfolio/04-distribution-table-row.mustache\n// module id = 806\n// module chunks = 0","var H = require(\"hogan.js\");\nmodule.exports = function() { var T = new H.Template({code: function (c,p,i) { var t=this;t.b(i=i||\"\");t.b(\"
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t\");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t

            Loan count

            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t\t
            \");t.b(\"\\n\" + i);t.b(\"\t
            \");t.b(\"\\n\" + i);t.b(\"
            \");return t.fl(); },partials: {}, subs: { }}, \"
            \\n\\t
            \\n\\t\\t
            \\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t
            \\n\\t\\t\\t\\t{{!The content within this div is the only change from the copy and pasted lightbox atom. If you need to\\n\\t\\t\\t\\t make changes to this lightbox outside of this div, those changes need to be made to every lightbox file within the\\n\\t\\t\\t\\t Molecules/10-lightbox folder. }}\\n\\t\\t\\t\\t

            Loan count

            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t\\t\\t
            \\n\\t\\t\\t\\t
            \\n\\t\\t\\t
            \\n\\t\\t
            \\n\\t
            \\n
            \", H);return T; }();\n\n\n//////////////////\n// WEBPACK FOOTER\n// /kiva/sites/www_kiva/node_modules/mustache-loader?noShortcut!/kiva/sites/www_kiva/styleguide/source/_patterns/01-molecules/10-lightbox/12-dynamic-loan-count-graph-lightbox.mustache\n// module id = 807\n// module chunks = 0"],"sourceRoot":""}