{"version":3,"file":"app-controllers.min.js","sources":["app-controllers.min.js"],"sourcesContent":["/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var vme = zbuyer.viewmodels.enums;\r\n controllers.AccountDirectiveElement = '#accountDirective';\r\n var EmailRegExp = /^([\\w-+\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,11}|[0-9]{1,3})(\\]?)$/;\r\n var UrlRegExp = /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/;\r\n var NewInvestorEmailInputElement = '#newInvestorNotificationInput';\r\n var SmsPhoneInputElement = '#smsPhone';\r\n var TemplateUrl = 'staticpages/directives/accountdirective.html';\r\n var ImageFileSignatures = {\r\n R0lGODdh: 'image/gif',\r\n R0lGODlh: 'image/gif',\r\n iVBORw0KGgo: 'image/png',\r\n '/9j/': 'image/jpg',\r\n Qk02U: 'image/bmp',\r\n };\r\n var AccountDirectiveController = /** @class */ (function (_super) {\r\n __extends(AccountDirectiveController, _super);\r\n function AccountDirectiveController($scope, $q, $timeout, $window, accountService, appSettingsService, crmService, notificationService, testNotificationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.accountService = accountService;\r\n _this.appSettingsService = appSettingsService;\r\n _this.crmService = crmService;\r\n _this.notificationService = notificationService;\r\n _this.testNotificationService = testNotificationService;\r\n // Mirror public profile with its \"edit\" object\r\n $scope.$watch(function ($scope) { return _this.$scope.viewModel.publicProfile; }, function () {\r\n _this.$scope.publicProfileEdit = angular.copy(_this.$scope.viewModel.publicProfile);\r\n });\r\n // Update the image link along with any change in publicProfileEdit or the actual link value\r\n $scope.$watch(function ($scope) { var _a; return (_a = _this.$scope.publicProfileEdit) === null || _a === void 0 ? void 0 : _a.headshotPhoto_BASE64; }, function () {\r\n var _a;\r\n _this.$scope.publicProfileImageLink = _this.getProfileImageLink((_a = _this.$scope.publicProfileEdit) === null || _a === void 0 ? void 0 : _a.headshotPhoto_BASE64);\r\n });\r\n if (!$scope.signup) {\r\n accountService.getPublicProfile().then(function (publicProfile) {\r\n _this.$scope.viewModel.publicProfile = publicProfile;\r\n if (!(publicProfile === null || publicProfile === void 0 ? void 0 : publicProfile.success)) {\r\n _this.notificationService.error(zbuyer.messages.PublicProfileError, zbuyer.messages.ApplicationTitle);\r\n }\r\n }).catch(console.debug);\r\n }\r\n $scope.AccountSectionType = vme.AccountSectionType;\r\n $scope.emailRegExp = EmailRegExp;\r\n $scope.urlRegExp = UrlRegExp;\r\n $scope.demoAccountIds = [];\r\n var demoAccountIds = $scope.demoAccountIds;\r\n appSettingsService.getAppSettings().then(function (settings) {\r\n $scope.appSettings = settings;\r\n demoAccountIds.push(settings.demoAccountSubscribedId);\r\n demoAccountIds.push(settings.demoAccountUnsubscribedId);\r\n });\r\n return _this;\r\n }\r\n AccountDirectiveController.getDirective = function () {\r\n return {\r\n controller: AccountDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n logoutCallback: '&onLogout',\r\n signup: '=',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n AccountDirectiveController.prototype.initializeNotifications = function (reinitialize) {\r\n if (reinitialize === void 0) { reinitialize = false; }\r\n this.testLeadInitialize(reinitialize);\r\n this.crmInitialize(reinitialize);\r\n };\r\n AccountDirectiveController.prototype.showAccountHome = function () {\r\n if (this.$scope.viewModel.isEditingEnabled) {\r\n this.toggleEditMode();\r\n }\r\n this.setActiveSection(vme.AccountSectionType.Home);\r\n };\r\n AccountDirectiveController.prototype.showAccountNotifications = function () {\r\n this.setActiveSection(vme.AccountSectionType.Notifications);\r\n };\r\n AccountDirectiveController.prototype.showMemberProfile = function () {\r\n this.setActiveSection(vme.AccountSectionType.MemberProfile);\r\n };\r\n AccountDirectiveController.prototype.showPublicProfile = function () {\r\n this.$scope.publicProfileEdit = angular.copy(this.$scope.viewModel.publicProfile);\r\n this.setActiveSection(vme.AccountSectionType.PublicProfile);\r\n };\r\n AccountDirectiveController.prototype.showAccountSubscription = function () {\r\n this.setActiveSection(vme.AccountSectionType.Subscription);\r\n };\r\n AccountDirectiveController.prototype.showAccountTransactions = function () {\r\n this.setActiveSection(vme.AccountSectionType.Transactions);\r\n };\r\n AccountDirectiveController.prototype.showChangePassword = function () {\r\n this.setActiveSection(vme.AccountSectionType.ChangePassword);\r\n if (this.isDemoAccount()) {\r\n // Allow demo account to show the UI but pre-warn since change-password will be blocked by API if sent through\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n }\r\n };\r\n AccountDirectiveController.prototype.updateNotificationSettings = function () {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n var updateNotificationSettingsRequest = {\r\n emailAlerts: this.$scope.viewModel.account.emailAlerts,\r\n smsPhone: { fullNumber: this.$scope.viewModel.account.smsNumber },\r\n textAlerts: this.$scope.viewModel.account.textAlerts\r\n };\r\n this.accountService.updateNotificationSettings(updateNotificationSettingsRequest).catch(function (response) {\r\n _this.notificationService.error(response.data.exceptionMessage, response.data.message);\r\n });\r\n };\r\n AccountDirectiveController.prototype.checkOut = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.checkoutViewModel = {\r\n account: viewModel.account,\r\n isCheckoutActive: true\r\n };\r\n this.$window.scrollTo(0, 0);\r\n };\r\n AccountDirectiveController.prototype.fillInvestorNotificationEmails = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n this.accountService.getInvestorNotificationEmails().then(function (result) {\r\n viewModel.investorNotificationEmails = result.investorNotificationEmails;\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.exceptionMessage, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n AccountDirectiveController.prototype.goBack = function () {\r\n this.showAccountHome();\r\n };\r\n AccountDirectiveController.prototype.handleLegacyServiceError = function (error) {\r\n if (error === void 0) { error = null; }\r\n var errorMessageToDisplay;\r\n if (typeof error == 'string') {\r\n errorMessageToDisplay = error;\r\n }\r\n else {\r\n console.error(error);\r\n errorMessageToDisplay = 'An unexpected error has occurred. Please contact support.';\r\n }\r\n this.notificationService.error(errorMessageToDisplay);\r\n };\r\n AccountDirectiveController.prototype.investorNotificationEmailAdd = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.addingInvestorNotificationEmail = true;\r\n this.$timeout(function () {\r\n angular.element(NewInvestorEmailInputElement).focus();\r\n });\r\n };\r\n AccountDirectiveController.prototype.investorNotificationEmailCancel = function () {\r\n this.resetEmailForm();\r\n };\r\n AccountDirectiveController.prototype.investorNotificationEmailDelete = function (investorNotificationEmail) {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n this.accountService.deleteInvestorNotificationEmail(investorNotificationEmail.emailId).then(function (response) {\r\n _this.notificationService.success(zbuyer.messages.AccountInfoSaveSuccess, zbuyer.messages.ApplicationTitle);\r\n _this.fillInvestorNotificationEmails();\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.exceptionMessage, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n AccountDirectiveController.prototype.investorNotificationEmailSave = function () {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n this.accountService.addInvestorLeadNotification(viewModel.newInvestorNotificationEmail, true).then(function (response) {\r\n _this.notificationService.success(zbuyer.messages.AccountInfoSaveSuccess, zbuyer.messages.ApplicationTitle);\r\n _this.resetEmailForm();\r\n _this.fillInvestorNotificationEmails();\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.exceptionMessage, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n AccountDirectiveController.prototype.investorNotificationEmailUpdate = function (investorNotificationEmail) {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n var request = {\r\n email: investorNotificationEmail.email,\r\n emailId: investorNotificationEmail.emailId,\r\n optedIn: investorNotificationEmail.optedIn\r\n };\r\n this.accountService.updateInvestorNotificationEmail(request).then(function () {\r\n _this.notificationService.success(zbuyer.messages.AccountInfoSaveSuccess, zbuyer.messages.ApplicationTitle);\r\n }).catch(function (response) {\r\n _this.notificationService.error(zbuyer.messages.AccountInfoSaveError, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n AccountDirectiveController.prototype.isDemoAccount = function () {\r\n var _this = this;\r\n var matches = this.$scope.demoAccountIds.filter(function (id) { return id == _this.$scope.viewModel.account.id; });\r\n return matches.length > 0;\r\n };\r\n AccountDirectiveController.prototype.crmInitialize = function (reinitialize) {\r\n var _this = this;\r\n if (reinitialize === void 0) { reinitialize = false; }\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.crmAvailableTypes && !reinitialize) {\r\n return;\r\n }\r\n viewModel.crmAvailableTypes = null;\r\n viewModel.crmConnections = null;\r\n this.crmService.getTypes().then(function (crmConnectionTypes) {\r\n viewModel.crmAvailableTypes = crmConnectionTypes;\r\n console.debug('Got CRM Types List', crmConnectionTypes);\r\n }).catch(function (err) { return _this.handleLegacyServiceError(err); });\r\n this.crmService.getAll().then(function (crmConnections) {\r\n viewModel.crmConnections = crmConnections;\r\n console.debug('Got CRM Connections List', crmConnections);\r\n }).catch(function (err) { return _this.handleLegacyServiceError(err); });\r\n };\r\n AccountDirectiveController.prototype.crmDelete = function (crmConnection) {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n var connectionsAsSaved = viewModel.crmConnections;\r\n viewModel.crmConnections = connectionsAsSaved.filter(function (item) { return item != crmConnection; });\r\n this.crmService.delete(crmConnection.crmConnectionId).then(function (response) {\r\n _this.notificationService.success(\"\".concat(crmConnection.displayName, \" has been deleted\"));\r\n }).catch(function (err) {\r\n _this.handleLegacyServiceError(err);\r\n // Failed -- set back to what it was\r\n viewModel.crmConnections = connectionsAsSaved;\r\n });\r\n };\r\n AccountDirectiveController.prototype.crmToggleEnabled = function (crmConnection) {\r\n var _this = this;\r\n var promiseState = { pending: true };\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n // Failed -- toggle back\r\n crmConnection.isEnabled = !crmConnection.isEnabled;\r\n ;\r\n return;\r\n }\r\n this.crmService.setEnabled(crmConnection.crmConnectionId, crmConnection.isEnabled).then(function (response) {\r\n var verb = crmConnection.isEnabled ? 'enable' : 'disable';\r\n _this.notificationService.success(\"\".concat(crmConnection.displayName, \" has been \").concat(verb, \"d\"));\r\n }).catch(function (err) {\r\n _this.handleLegacyServiceError(err);\r\n // Failed -- toggle back\r\n crmConnection.isEnabled = !crmConnection.isEnabled;\r\n }).finally(function () {\r\n promiseState.pending = false;\r\n });\r\n return promiseState;\r\n };\r\n AccountDirectiveController.prototype.crmShowAddConnection = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n controllers.AddCrmModalController.loadModal(viewModel.crmSelectedType).then(function (newConnection) {\r\n // After modal closes, add to list\r\n if (newConnection) {\r\n viewModel.crmConnections.push(newConnection);\r\n // Load as pristine\r\n _this.crmInitialize(true);\r\n }\r\n else {\r\n if (_this.isDemoAccount()) {\r\n // Clarify after the fact (demo user can see the add-crm form but if they submit, API will throw)\r\n _this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n }\r\n }\r\n });\r\n };\r\n AccountDirectiveController.prototype.resetEmailForm = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.addingInvestorNotificationEmail = false;\r\n viewModel.newInvestorNotificationEmail = null;\r\n };\r\n AccountDirectiveController.prototype.resetForm = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.accountTemp = null;\r\n viewModel.validate = false;\r\n };\r\n AccountDirectiveController.prototype.saveMemberProfile = function (memberProfileForm) {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.validate = true;\r\n if (memberProfileForm.$invalid) {\r\n return;\r\n }\r\n if (!viewModel.isEditingEnabled) {\r\n return;\r\n }\r\n var request = {\r\n accountInfo: viewModel.account\r\n };\r\n this.accountService.updateAccountInfo(request).then(function (response) {\r\n _this.notificationService.success(zbuyer.messages.AccountInfoSaveSuccess, zbuyer.messages.ApplicationTitle);\r\n _this.toggleEditMode(false);\r\n // Gotta re-login! (if API says so (you changed your email))\r\n if (response.loginRequired) {\r\n _this.$scope.logoutCallback();\r\n }\r\n }).catch(function (err) {\r\n console.debug(err);\r\n _this.notificationService.error(zbuyer.messages.AccountInfoSaveError, zbuyer.messages.ApplicationTitle);\r\n // Rolling back\r\n _this.toggleEditMode(true);\r\n });\r\n };\r\n AccountDirectiveController.prototype.savePublicProfile = function (publicProfileForm) {\r\n var _this = this;\r\n if (this.isDemoAccount()) {\r\n this.notificationService.info(zbuyer.messages.DemoAccountReadOnly);\r\n return;\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.validate = true;\r\n if (publicProfileForm.$invalid) {\r\n return;\r\n }\r\n if (!viewModel.isEditingEnabled) {\r\n return;\r\n }\r\n var profileEdit = this.$scope.publicProfileEdit;\r\n var request = {\r\n displayName: profileEdit.displayName,\r\n displayCompany: profileEdit.displayCompany,\r\n displayPhone: profileEdit.displayPhone,\r\n websiteURL: profileEdit.websiteURL,\r\n phoneIsMobile: profileEdit.phoneIsMobile,\r\n headshotPhoto_BASE64: profileEdit.headshotPhoto_BASE64,\r\n //Available but not yet part of requirements:\r\n //shortBiographyText: profileEdit.shortBiographyText\r\n };\r\n this.accountService.updatePublicProfile(request).then(function (response) {\r\n if (!response.success) {\r\n // Save failed\r\n _this.notificationService.error(response.errorMessageToDisplay, zbuyer.messages.ApplicationTitle);\r\n return;\r\n }\r\n // Success: take our last edit as \"official\" (but immediately request a refresh from API)\r\n viewModel.publicProfile = angular.copy(profileEdit);\r\n _this.accountService.getPublicProfile().then(function (publicProfile) {\r\n if (!publicProfile.success) {\r\n throw publicProfile.errorMessageToDisplay;\r\n }\r\n // NOTE: Scope-watch in constructor will ensure the publicProfileEdit reflects this change\r\n viewModel.publicProfile = publicProfile;\r\n }).catch(function (err) {\r\n console.debug('Failed to refresh public profile after saving:', err);\r\n _this.notificationService.warning(zbuyer.messages.PublicProfileError, zbuyer.messages.ApplicationTitle);\r\n });\r\n _this.notificationService.success(zbuyer.messages.PublicProfileSaveSuccess, zbuyer.messages.ApplicationTitle);\r\n _this.toggleEditMode(false);\r\n }).catch(function (err) {\r\n console.debug(err);\r\n _this.notificationService.error(zbuyer.messages.PublicProfileSaveError, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n AccountDirectiveController.prototype.loadProfilePhoto = function (file) {\r\n var _this = this;\r\n var reader = new FileReader();\r\n if (!file) {\r\n this.$scope.publicProfileEdit.headshotPhoto_BASE64 = '';\r\n this.$scope.$applyAsync();\r\n return;\r\n }\r\n reader.onloadend = function (loadEvent) {\r\n if (!loadEvent.loaded) {\r\n console.debug(reader.error);\r\n _this.notificationService.error(\"Unable to load file\", zbuyer.messages.ApplicationTitle);\r\n return;\r\n }\r\n var dataURL = reader.result;\r\n var _a = dataURL.split(','), prefix = _a[0], base64Data = _a[1];\r\n _this.$scope.publicProfileEdit.headshotPhoto_BASE64 = base64Data;\r\n // Necessary since loadProfilePhoto is currently called by out-of-scope means (due to file input limitations)\r\n // Note: scope-watcher will update actual image link based on updated profile photo data\r\n _this.$scope.$applyAsync();\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n AccountDirectiveController.prototype.getProfileImageLink = function (base64Data) {\r\n var mimeType = 'image';\r\n if (!base64Data) {\r\n return null;\r\n }\r\n for (var sig in ImageFileSignatures) {\r\n if (base64Data.startsWith(sig)) {\r\n mimeType = ImageFileSignatures[sig];\r\n }\r\n }\r\n return \"data:\".concat(mimeType, \";base64,\").concat(base64Data);\r\n };\r\n AccountDirectiveController.prototype.setActiveSection = function (sectionType) {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.activeAccountSection = sectionType;\r\n };\r\n AccountDirectiveController.prototype.testLeadInitialize = function (reinitialize) {\r\n var _this = this;\r\n if (reinitialize === void 0) { reinitialize = false; }\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.testLeadFormInputs && !reinitialize) {\r\n return;\r\n }\r\n viewModel.testLeadFormInputs = null;\r\n this.testNotificationService.getTestNotificationOptions().then(function (inputFormItems) {\r\n // Should enable \"Send Test Lead\" button\r\n viewModel.testLeadFormInputs = inputFormItems;\r\n }).catch(function (err) { return _this.handleLegacyServiceError(err); });\r\n };\r\n AccountDirectiveController.prototype.testLeadSendNotification = function () {\r\n var _this = this;\r\n var promiseState = { pending: true };\r\n controllers.TestNotificationModalController.loadModal(this.$scope.viewModel.testLeadFormInputs).then(function (formValues) {\r\n // Should be formValues object if it wasn't cancelled\r\n if (formValues) {\r\n _this.testNotificationService.sendTestNotification(formValues).then(function () {\r\n _this.notificationService.success('Test notification sent!');\r\n }).catch(function (err) { return _this.handleLegacyServiceError(err); })\r\n .finally(function () { return promiseState.pending = false; });\r\n }\r\n else {\r\n promiseState.pending = false;\r\n }\r\n });\r\n return promiseState;\r\n };\r\n AccountDirectiveController.prototype.smsPhoneBlurred = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.editingSmsPhone = false;\r\n if (viewModel.textNotificationForm.phone.$invalid && viewModel.account.textAlerts) {\r\n viewModel.account.textAlerts = false;\r\n this.updateNotificationSettings();\r\n }\r\n };\r\n AccountDirectiveController.prototype.smsPhoneChanged = function () {\r\n var viewModel = this.$scope.viewModel;\r\n if (!viewModel.textNotificationForm.phone.$invalid) {\r\n // Turn on text alerts and save as soon as valid\r\n viewModel.account.textAlerts = true;\r\n this.updateNotificationSettings();\r\n }\r\n };\r\n AccountDirectiveController.prototype.smsPhoneFocused = function () {\r\n this.$scope.viewModel.editingSmsPhone = true;\r\n };\r\n AccountDirectiveController.prototype.toggleEditMode = function (revertChanges) {\r\n if (revertChanges === void 0) { revertChanges = true; }\r\n var viewModel = this.$scope.viewModel;\r\n // Note: Same editing mode flag used for 2 different sections, just not at same time\r\n viewModel.isEditingEnabled = !viewModel.isEditingEnabled;\r\n if (viewModel.activeAccountSection == vme.AccountSectionType.MemberProfile) {\r\n if (viewModel.isEditingEnabled) {\r\n // Member profile is edited by backing up the original\r\n viewModel.accountTemp = angular.copy(viewModel.account, viewModel.accountTemp);\r\n }\r\n else {\r\n // Discard edits\r\n if (revertChanges && viewModel.accountTemp) {\r\n viewModel.account = viewModel.accountTemp;\r\n }\r\n this.resetForm();\r\n }\r\n }\r\n else if (viewModel.activeAccountSection == vme.AccountSectionType.PublicProfile) {\r\n viewModel.validate = false;\r\n // Public profile is never changed until actually saved -- only the \"edit\" which is used to build the save request\r\n if (viewModel.isEditingEnabled || revertChanges) {\r\n // Just ensure the visible \"edit\" matches on fresh edit, or when reverting to saved changes\r\n this.$scope.publicProfileEdit = angular.copy(this.$scope.viewModel.publicProfile);\r\n }\r\n }\r\n };\r\n AccountDirectiveController.prototype.toggleTextAlerts = function () {\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.textNotificationForm.phone.$invalid && viewModel.account.textAlerts) {\r\n // Don't allow turning on when invalid\r\n viewModel.account.textAlerts = false;\r\n angular.element(SmsPhoneInputElement).focus();\r\n }\r\n else {\r\n this.updateNotificationSettings();\r\n }\r\n };\r\n AccountDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.AppSettingsService,\r\n names.zbuyer.services.CrmService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.NotificationTestService\r\n ];\r\n return AccountDirectiveController;\r\n }(controllers.ControllerBase));\r\n controllers.AccountDirectiveController = AccountDirectiveController;\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.Account, AccountDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var AddCrmModalController = /** @class */ (function (_super) {\r\n __extends(AddCrmModalController, _super);\r\n function AddCrmModalController($scope, $sce, $uibModalInstance, crmService, modalService, notificationService, viewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.crmService = crmService;\r\n _this.modalService = modalService;\r\n _this.notificationService = notificationService;\r\n _this.modalService.handleCloseActions(_this.$scope, _this.$uibModalInstance);\r\n $scope.viewModel = viewModel;\r\n if (viewModel.crmConnectionType.showConnectButton) {\r\n viewModel.formViewModel.submitCallback = function (formValues) { return _this.addCrmConnection(formValues); };\r\n }\r\n return _this;\r\n }\r\n AddCrmModalController.loadModal = function (crmConnectionType) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var modalInstance = $uibModal.open({\r\n controller: names.zbuyer.controllers.AddCrmModalController,\r\n resolve: {\r\n viewModel: {\r\n crmConnectionType: crmConnectionType,\r\n formViewModel: {\r\n inputFormItems: crmConnectionType.inputFormItems,\r\n submitButtonText: 'Connect',\r\n showSubmitButton: crmConnectionType.showConnectButton,\r\n title: crmConnectionType.displayName\r\n }\r\n }\r\n },\r\n backdropClass: 'add-crm-backdrop',\r\n size: 'md',\r\n backdrop: true,\r\n templateUrl: AddCrmModalController.TemplateUrl,\r\n windowClass: 'add-crm-modal'\r\n });\r\n return modalInstance.result;\r\n };\r\n AddCrmModalController.prototype.cancel = function () {\r\n this.$uibModalInstance.close();\r\n };\r\n AddCrmModalController.prototype.close = function (newConnection) {\r\n this.$uibModalInstance.close(newConnection);\r\n };\r\n AddCrmModalController.prototype.trustHtml = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n AddCrmModalController.prototype.addCrmConnection = function (formValues) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n console.debug('Submitting input values:', formValues);\r\n return this.crmService.add(viewModel.crmConnectionType.crmConnectionTypeId, formValues)\r\n .then(function (crmConnection) {\r\n _this.notificationService.success(\"Added \".concat(viewModel.crmConnectionType.displayName, \" connection: \").concat(crmConnection.displayName));\r\n _this.close(crmConnection);\r\n })\r\n .catch(function (error) {\r\n var errorMessageToDisplay;\r\n if (typeof error == 'string') {\r\n errorMessageToDisplay = error;\r\n }\r\n else {\r\n console.error(error);\r\n errorMessageToDisplay = 'An unexpected error has occurred. Please contact support.';\r\n }\r\n _this.notificationService.error(errorMessageToDisplay);\r\n });\r\n };\r\n AddCrmModalController.TemplateUrl = 'staticpages/modals/AddCrmModal.html';\r\n AddCrmModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.CrmService,\r\n names.zbuyer.services.ModalService,\r\n names.zbuyer.services.NotificationService,\r\n 'viewModel'\r\n ];\r\n return AddCrmModalController;\r\n }(controllers.ControllerBase));\r\n controllers.AddCrmModalController = AddCrmModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.AddCrmModalController, AddCrmModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/components/advancedpackageslidercomponent.html';\r\n var AdvancedPackageSliderController = /** @class */ (function () {\r\n function AdvancedPackageSliderController($scope) {\r\n $scope.$$postDigest(function () {\r\n $scope.$broadcast('rzSliderForceRender');\r\n });\r\n }\r\n AdvancedPackageSliderController.prototype.$onInit = function () {\r\n this.sliderOptions = {\r\n ceil: this.maxLeads,\r\n disabled: this.sliderDisabled,\r\n hidePointerLabels: true,\r\n onChange: this.getOnMoveCallback(),\r\n onEnd: this.getFinishedMovingCallback()\r\n };\r\n };\r\n AdvancedPackageSliderController.prototype.getFinishedMovingCallback = function () {\r\n var _this = this;\r\n return function (sliderId, modelValue, highValue, pointerType) {\r\n _this.valueUpdatedCallback({ newValue: modelValue });\r\n };\r\n };\r\n AdvancedPackageSliderController.prototype.getOnMoveCallback = function () {\r\n var _this = this;\r\n return function (sliderId, modelValue, highValue, pointerType) {\r\n _this.sliderMovedCallback({ newValue: modelValue });\r\n };\r\n };\r\n AdvancedPackageSliderController.getController = function () {\r\n return {\r\n controller: ['$scope', AdvancedPackageSliderController],\r\n bindings: {\r\n currentValue: '<',\r\n maxLeads: '<',\r\n pricePerLead: '<',\r\n sliderDisabled: '<',\r\n sliderMovedCallback: '&',\r\n valueUpdatedCallback: '&'\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n return AdvancedPackageSliderController;\r\n }());\r\n angular.module(names.zbuyer.Application)\r\n .component(names.zbuyer.components.AdvancedPackageSliderComponent, AdvancedPackageSliderController.getController());\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var BlockId = 'AdvancedSubscriptionEditLoadingBlock';\r\n var TemplateUrl = 'staticpages/directives/advancedsubscriptioneditdirective.html';\r\n var AdvancedSubscriptionEditDirectiveController = /** @class */ (function (_super) {\r\n __extends(AdvancedSubscriptionEditDirectiveController, _super);\r\n function AdvancedSubscriptionEditDirectiveController($scope, preCheckoutService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.preCheckoutService = preCheckoutService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.pristine = true;\r\n _this.$scope.viewModel = {\r\n lastPackageResponse: null,\r\n errorToDisplay: null\r\n };\r\n return _this;\r\n }\r\n AdvancedSubscriptionEditDirectiveController.prototype.$onInit = function () {\r\n var _this = this;\r\n if (this.$scope.initialPackageResponse == null) {\r\n this.setLoading();\r\n this.refreshAdvancedPackage().finally(function () { return _this.setNotLoading(); });\r\n }\r\n else {\r\n this.processPackageResponseData(this.$scope.initialPackageResponse);\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.findByCountyAndState = function (countyName, stateCode) {\r\n var _a;\r\n return (_a = this.$scope.viewModel) === null || _a === void 0 ? void 0 : _a.lastPackageResponse.countyPackages.find(function (county) { return county.countyName == countyName && county.stateCode == stateCode; });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.getBuyerFinalizeCallback = function (countyName, stateCode) {\r\n var _this = this;\r\n return function (newValue) {\r\n _this.onBuyerUpdate({ countyName: countyName, stateCode: stateCode }, newValue);\r\n };\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.getSellerFinalizeCallback = function (countyName, stateCode) {\r\n var _this = this;\r\n return function (newValue) {\r\n _this.onSellerUpdate({ countyName: countyName, stateCode: stateCode }, newValue);\r\n };\r\n };\r\n // Updates the model value but does not synchronize with the server\r\n AdvancedSubscriptionEditDirectiveController.prototype.nonBindingBuyerUpdate = function (callback, newValue) {\r\n var oldEntry = this.findByCountyAndState(callback.countyName, callback.stateCode);\r\n if (oldEntry != null) {\r\n oldEntry.selectedBuyers = newValue;\r\n }\r\n };\r\n // Updates the model value but does not synchronize with the server\r\n AdvancedSubscriptionEditDirectiveController.prototype.nonBindingSellerUpdate = function (callback, newValue) {\r\n var oldEntry = this.findByCountyAndState(callback.countyName, callback.stateCode);\r\n if (oldEntry != null) {\r\n oldEntry.selectedSellers = newValue;\r\n }\r\n };\r\n // Updates the model value but does not synchronize with the server\r\n AdvancedSubscriptionEditDirectiveController.prototype.getNonBindingBuyerUpdate = function (countyName, stateCode) {\r\n var _this = this;\r\n return function (newValue) {\r\n _this.nonBindingBuyerUpdate({ countyName: countyName, stateCode: stateCode }, newValue);\r\n };\r\n };\r\n // Updates the model value but does not synchronize with the server\r\n AdvancedSubscriptionEditDirectiveController.prototype.getNonBindingSellerUpdate = function (countyName, stateCode) {\r\n var _this = this;\r\n return function (newValue) {\r\n _this.nonBindingSellerUpdate({ countyName: countyName, stateCode: stateCode }, newValue);\r\n };\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.handleError = function (error) {\r\n if (error === void 0) { error = null; }\r\n var viewModel = this.$scope.viewModel;\r\n if (typeof error == 'string') {\r\n viewModel.errorToDisplay = error;\r\n }\r\n else {\r\n viewModel.errorToDisplay = 'An unexpected error has occurred. Please refresh the page.';\r\n console.log(error);\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.onBlurSellerLeadsInput = function (countyPackage) {\r\n var _a;\r\n countyPackage.selectedSellers = Math.max(0, Math.min(countyPackage.maxSellers, (_a = countyPackage.selectedSellers) !== null && _a !== void 0 ? _a : 0));\r\n this.updateLeadsCount({\r\n countyName: countyPackage.countyName,\r\n stateCode: countyPackage.stateCode,\r\n buyerLeadsCount: countyPackage.selectedBuyers,\r\n sellerLeadsCount: countyPackage.selectedSellers\r\n });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.onBlurBuyerLeadsInput = function (countyPackage) {\r\n var _a;\r\n countyPackage.selectedBuyers = Math.max(0, Math.min(countyPackage.maxBuyers, (_a = countyPackage.selectedBuyers) !== null && _a !== void 0 ? _a : 0));\r\n this.updateLeadsCount({\r\n countyName: countyPackage.countyName,\r\n stateCode: countyPackage.stateCode,\r\n buyerLeadsCount: countyPackage.selectedBuyers,\r\n sellerLeadsCount: countyPackage.selectedSellers\r\n });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.onBuyerUpdate = function (callback, newValue) {\r\n var oldEntry = this.findByCountyAndState(callback.countyName, callback.stateCode);\r\n if (oldEntry != null) {\r\n this.updateLeadsCount({\r\n countyName: oldEntry.countyName,\r\n stateCode: oldEntry.stateCode,\r\n buyerLeadsCount: newValue,\r\n sellerLeadsCount: oldEntry.selectedSellers\r\n });\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.onSellerUpdate = function (callback, newValue) {\r\n var oldEntry = this.findByCountyAndState(callback.countyName, callback.stateCode);\r\n if (oldEntry != null) {\r\n this.updateLeadsCount({\r\n countyName: oldEntry.countyName,\r\n stateCode: oldEntry.stateCode,\r\n buyerLeadsCount: oldEntry.selectedBuyers,\r\n sellerLeadsCount: newValue\r\n });\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.openCountyModal = function () {\r\n var _this = this;\r\n var alreadySelectedCounties = [];\r\n if (this.$scope.viewModel.lastPackageResponse) {\r\n alreadySelectedCounties = this.$scope.viewModel.lastPackageResponse.countyPackages.map(function (countyPackage) {\r\n return { name: countyPackage.countyName, stateAbbreviation: countyPackage.stateCode };\r\n });\r\n }\r\n controllers.SelectCountyModalController.loadModal(alreadySelectedCounties).then(function (selectedCounty) {\r\n if (!selectedCounty) {\r\n return;\r\n }\r\n _this.setLoading();\r\n _this.pristine = false;\r\n _this.preCheckoutService.addCountyToWorkingArea(selectedCounty)\r\n .then(function () { return _this.refreshAdvancedPackage(); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { return _this.setNotLoading(); });\r\n });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.openLearnMoreModal = function (track) {\r\n controllers.LearnMoreModalController.loadModal(track);\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.openMetroModal = function () {\r\n var _this = this;\r\n controllers.SelectMetroModalController.loadModal()\r\n .then(function (selectedMetroArea) {\r\n if (!selectedMetroArea) {\r\n return;\r\n }\r\n _this.setLoading();\r\n _this.pristine = false;\r\n return _this.preCheckoutService.addMetroAreaToWorkingArea(selectedMetroArea)\r\n .then(function () { return _this.refreshAdvancedPackage(); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { _this.setNotLoading(); });\r\n });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.openStatisticsModal = function (countyName, stateCode) {\r\n if (!this.sellerIsSoldOut(countyName, stateCode)) {\r\n controllers.CountyStatisticsModalController.loadModal(stateCode, countyName);\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.preferSellersBuyers = function (preferSellers, preferBuyers, userConfirmed) {\r\n var _this = this;\r\n if (userConfirmed === void 0) { userConfirmed = false; }\r\n if (this.pristine || userConfirmed) {\r\n this.setLoading();\r\n this.preCheckoutService.setLeadTypePreference(preferSellers, preferBuyers)\r\n .then(function () { return _this.refreshAdvancedPackage(); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { _this.setNotLoading(); });\r\n }\r\n else {\r\n zbuyer.controllers.YesNoModalComponent.loadModal({\r\n titleText: \"Are you sure?\",\r\n text: \"Any lead count values you have customized may be reset.\",\r\n noButtonText: null,\r\n yesButtonText: null\r\n }).then(function (result) {\r\n if (result == controllers.YesNoModalResults.Yes) {\r\n _this.preferSellersBuyers(preferSellers, preferBuyers, true);\r\n }\r\n });\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.processPackageResponseData = function (data) {\r\n var viewModel = this.$scope.viewModel;\r\n if (!data.success || data.errorMessageToDisplay) {\r\n console.log(data);\r\n viewModel.errorToDisplay = data.errorMessageToDisplay;\r\n }\r\n else {\r\n viewModel.errorToDisplay = null;\r\n }\r\n viewModel.lastPackageResponse = data;\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.refreshAdvancedPackage = function () {\r\n var _this = this;\r\n return this.preCheckoutService.getAdvancedPackage()\r\n .then(function (response) { return _this.processPackageResponseData(response); })\r\n .catch(function (err) { return _this.handleError(err); });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.removeCounty = function (countyName, stateCode) {\r\n var _this = this;\r\n this.pristine = false;\r\n this.setLoading();\r\n return this.preCheckoutService.removeCountyFromWorkingArea({ name: countyName, stateAbbreviation: stateCode, specialInfoItemMessage: \"\", specialInfoItemUrl: \"\" })\r\n .then(function () { return _this.refreshAdvancedPackage(); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { return _this.setNotLoading(); });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.revertToRecommendedSettings = function (modalText, userConfirmed) {\r\n var _this = this;\r\n if (userConfirmed === void 0) { userConfirmed = false; }\r\n if (this.pristine || userConfirmed) {\r\n this.setLoading();\r\n this.preCheckoutService.resetToRecommendedPackage()\r\n .then(function () { return _this.$scope.resetToRecommendedCallback(); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { return _this.setNotLoading(); });\r\n }\r\n else {\r\n zbuyer.controllers.YesNoModalComponent.loadModal({\r\n titleText: null,\r\n text: modalText,\r\n noButtonText: null,\r\n yesButtonText: null\r\n }).then(function (result) {\r\n if (result == controllers.YesNoModalResults.Yes) {\r\n _this.revertToRecommendedSettings(modalText, true);\r\n }\r\n });\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.sellerIsSoldOut = function (countyName, stateCode) {\r\n var area = this.findByCountyAndState(countyName, stateCode);\r\n if (area && area.sellersSoldOut == false) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.setLoading = function () {\r\n this.spinWaitService.block(BlockId, 'image logo', 'Loading...');\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.setNotLoading = function () {\r\n this.spinWaitService.unblock(BlockId);\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.viewCart = function () {\r\n var _this = this;\r\n if (this.$scope.viewModel.lastPackageResponse) {\r\n var packageInfo = this.$scope.viewModel.lastPackageResponse.countyPackages.map(function (countyPackage) {\r\n return {\r\n countyName: countyPackage.countyName,\r\n stateCode: countyPackage.stateCode,\r\n buyerLeadsCount: countyPackage.selectedBuyers,\r\n sellerLeadsCount: countyPackage.selectedSellers\r\n };\r\n });\r\n this.preCheckoutService.validateAdvancedPackageDisplay({ countyPackages: packageInfo, totalPriceUSD: this.$scope.viewModel.lastPackageResponse.totalPriceUSD })\r\n .then(function (packageValid) {\r\n if (packageValid) {\r\n _this.$scope.checkoutCallback();\r\n }\r\n else {\r\n }\r\n });\r\n }\r\n else {\r\n return;\r\n }\r\n };\r\n AdvancedSubscriptionEditDirectiveController.prototype.updateLeadsCount = function (newValues) {\r\n var _this = this;\r\n this.pristine = false;\r\n this.setLoading();\r\n return this.preCheckoutService.setAdvancedCountyLeadCounts(newValues)\r\n .then(function (response) { return _this.processPackageResponseData(response); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { return _this.setNotLoading(); });\r\n };\r\n AdvancedSubscriptionEditDirectiveController.getDirective = function () {\r\n return {\r\n controller: AdvancedSubscriptionEditDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n checkoutCallback: '&onCheckout',\r\n initialPackageResponse: '<',\r\n loading: '<',\r\n resetToRecommendedCallback: '&onReset'\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n AdvancedSubscriptionEditDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.zbuyer.services.CheckoutHelperService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return AdvancedSubscriptionEditDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.AdvancedSubscriptionEdit, AdvancedSubscriptionEditDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var BlockId = 'BasicSubscriptionEditLoadingBlock';\r\n var TemplateUrl = 'staticpages/directives/basicsubscriptioneditdirective.html';\r\n var DefaultMinimumLeadCount = 10;\r\n var BasicSubscriptionEditDirectiveController = /** @class */ (function (_super) {\r\n __extends(BasicSubscriptionEditDirectiveController, _super);\r\n function BasicSubscriptionEditDirectiveController($scope, $timeout, notificationService, preCheckoutService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$timeout = $timeout;\r\n _this.notificationService = notificationService;\r\n _this.preCheckoutService = preCheckoutService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.setLoading();\r\n return _this;\r\n }\r\n BasicSubscriptionEditDirectiveController.getDirective = function () {\r\n return {\r\n controller: BasicSubscriptionEditDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n checkoutCallback: '&onCheckout',\r\n viewModel: '=',\r\n activeStep: '=',\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n BasicSubscriptionEditDirectiveController.fitToSliderRange = function (value, sliderOptions) {\r\n return Math.max(sliderOptions.floor, Math.min(sliderOptions.ceil, value));\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.isPendingSetLeadsAmount = function (scope, isSellerTrack, leadCount) {\r\n var pendingAmount = (isSellerTrack ? scope.sellerLeadsAmountPending : scope.buyerLeadsAmountPending);\r\n return pendingAmount == leadCount;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.setPendingLeadAmount = function (scope, isSellerTrack, leadCount) {\r\n if (isSellerTrack) {\r\n scope.sellerLeadsAmountPending = leadCount;\r\n }\r\n else {\r\n scope.buyerLeadsAmountPending = leadCount;\r\n }\r\n scope.userEditingLeads = scope.sellerLeadsAmountPending != null || scope.buyerLeadsAmountPending != null;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.setLeadsForTrack = function (isSellerTrack) {\r\n var _this = this;\r\n var scope = this.$scope;\r\n var amountToSet = isSellerTrack ?\r\n scope.viewModel.sellerLeadCount :\r\n scope.viewModel.buyerLeadCount;\r\n if (this.isPendingSetLeadsAmount(scope, isSellerTrack, amountToSet)) {\r\n // Already expecting response for this amount\r\n return;\r\n }\r\n // Track the pending amount to verify against response\r\n this.setPendingLeadAmount(scope, isSellerTrack, amountToSet);\r\n var responsePromise = isSellerTrack ?\r\n this.preCheckoutService.setRecomendedPackageSellers(amountToSet) :\r\n this.preCheckoutService.setRecomendedPackageBuyers(amountToSet);\r\n var isRequestValid = false;\r\n responsePromise\r\n .then(function (recommendedPackage) {\r\n // Is the amount requested still the most recent?\r\n isRequestValid = _this.isPendingSetLeadsAmount(scope, isSellerTrack, amountToSet);\r\n if (!isRequestValid) {\r\n // Superceded\r\n return;\r\n }\r\n // Note: overwrites all info (counties, values on each track, etc)\r\n scope.viewModel = recommendedPackage;\r\n // In case somehow there are pending requests on both tracks, don't let\r\n // first response contradict whatever's pending on the second response\r\n // (i.e. don't let the slider flicker back to what it was).\r\n if (isSellerTrack && scope.buyerLeadsAmountPending) {\r\n scope.viewModel.buyerLeadCount = scope.buyerLeadsAmountPending;\r\n }\r\n else if (!isSellerTrack && scope.sellerLeadsAmountPending) {\r\n scope.viewModel.sellerLeadCount = scope.sellerLeadsAmountPending;\r\n }\r\n _this.updateSliders();\r\n })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () {\r\n if (isRequestValid) {\r\n // Cleanup (request was not invalidated by any newer request)\r\n _this.setPendingLeadAmount(scope, isSellerTrack, null);\r\n }\r\n });\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.setLoading = function () {\r\n this.spinWaitService.block(BlockId, 'image logo', 'Loading...');\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.setNotLoading = function () {\r\n this.spinWaitService.unblock(BlockId);\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.onFocusLeadsInput = function () {\r\n this.$scope.userEditingLeads = true;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.onBlurSellerLeadsInput = function () {\r\n this.$scope.viewModel.sellerLeadCount = BasicSubscriptionEditDirectiveController.fitToSliderRange(this.$scope.viewModel.sellerLeadCount, this.$scope.sellerLeadsSliderOptions);\r\n this.setLeadsForTrack(true);\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.onBlurBuyerLeadsInput = function () {\r\n this.$scope.viewModel.buyerLeadCount = BasicSubscriptionEditDirectiveController.fitToSliderRange(this.$scope.viewModel.buyerLeadCount, this.$scope.buyerLeadsSliderOptions);\r\n this.setLeadsForTrack(false);\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.initializeSliders = function (selfInvoke) {\r\n var _this = this;\r\n if (selfInvoke === void 0) { selfInvoke = true; }\r\n if (selfInvoke) {\r\n // Gets us past the ng init cycle avoiding glitches with Rzlider on rendering too soon.\r\n this.$timeout(function () { return _this.initializeSliders(false); }, 1);\r\n return;\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n var scope = this.$scope;\r\n scope.buyerLeadsAmountPending = null;\r\n scope.sellerLeadsAmountPending = null;\r\n var buyerLeadsSliderOptions = {\r\n disableAnimation: true,\r\n hidePointerLabels: true,\r\n onStart: function () { return scope.userEditingLeads = true; },\r\n onEnd: function () { return _this.setLeadsForTrack(false); }\r\n };\r\n this.configureSlider(buyerLeadsSliderOptions, viewModel.buyerLeadCount, viewModel.maxBuyers, viewModel.buyersSoldOut);\r\n var sellerLeadsSliderOptions = {\r\n disableAnimation: true,\r\n hidePointerLabels: true,\r\n onStart: function () { return scope.userEditingLeads = true; },\r\n onEnd: function () { return _this.setLeadsForTrack(true); }\r\n };\r\n this.configureSlider(sellerLeadsSliderOptions, viewModel.sellerLeadCount, viewModel.maxSellers, viewModel.sellersSoldOut);\r\n scope.buyerLeadsSliderOptions = buyerLeadsSliderOptions;\r\n scope.sellerLeadsSliderOptions = sellerLeadsSliderOptions;\r\n this.setNotLoading();\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.updateSliders = function () {\r\n var viewModel = this.$scope.viewModel;\r\n this.configureSlider(this.$scope.buyerLeadsSliderOptions, viewModel.buyerLeadCount, viewModel.maxBuyers, viewModel.buyersSoldOut);\r\n this.configureSlider(this.$scope.sellerLeadsSliderOptions, viewModel.sellerLeadCount, viewModel.maxSellers, viewModel.sellersSoldOut);\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.configureSlider = function (sliderOptions, currentLeadCount, maxLeadCount, soldOut) {\r\n var sliderMinimum = Math.min(DefaultMinimumLeadCount, currentLeadCount, maxLeadCount);\r\n var disabled = soldOut || (maxLeadCount <= sliderMinimum);\r\n sliderOptions.floor = sliderMinimum;\r\n sliderOptions.ceil = maxLeadCount;\r\n sliderOptions.disabled = disabled;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.goToTeamSizeStep = function () {\r\n this.$scope.activeStep = zbuyer.viewmodels.enums.PreCheckoutStep.TeamSize;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.goToWorkingAreaStep = function () {\r\n this.$scope.activeStep = zbuyer.viewmodels.enums.PreCheckoutStep.WorkingArea;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.goToAdvancedStep = function () {\r\n this.$scope.activeStep = zbuyer.viewmodels.enums.PreCheckoutStep.AdvancedEdit;\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.handleError = function (error) {\r\n if (error === void 0) { error = null; }\r\n var viewModel = this.$scope.viewModel;\r\n // Reset UI signals\r\n this.$scope.buyerLeadsAmountPending = null;\r\n this.$scope.sellerLeadsAmountPending = null;\r\n this.$scope.userEditingLeads = false;\r\n if (typeof error == 'string') {\r\n viewModel.errorMessageToDisplay = error;\r\n }\r\n else {\r\n viewModel.errorMessageToDisplay = 'An unexpected error has occurred. Please refresh the page.';\r\n console.log(error);\r\n }\r\n this.notificationService.error(viewModel.errorMessageToDisplay);\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.loadRecommendedPackage = function () {\r\n var _this = this;\r\n var scope = this.$scope;\r\n return this.preCheckoutService.getRecommendedPackage()\r\n .then(function (pkg) {\r\n if (!pkg) {\r\n _this.handleError(null);\r\n return;\r\n }\r\n scope.viewModel = pkg;\r\n _this.updateSliders();\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.preferSellersBuyers = function (preferSellers, preferBuyers) {\r\n var _this = this;\r\n this.setLoading();\r\n this.preCheckoutService.setLeadTypePreference(preferSellers, preferBuyers)\r\n .then(function () { return _this.loadRecommendedPackage(); })\r\n .catch(function (err) { return _this.handleError(err); })\r\n .finally(function () { return _this.setNotLoading(); });\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.showCountyBreakdownModal = function () {\r\n controllers.RecommendedPackageCountyBreakdownController.loadModal(this.$scope.viewModel.counties);\r\n };\r\n BasicSubscriptionEditDirectiveController.prototype.showLearnMoreModal = function (track) {\r\n controllers.LearnMoreModalController.loadModal(track);\r\n };\r\n BasicSubscriptionEditDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Timeout,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.CheckoutHelperService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return BasicSubscriptionEditDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.BasicSubscriptionEdit, BasicSubscriptionEditDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var vme = zbuyer.viewmodels.enums;\r\n var TemplateUrl = 'staticpages/directives/cartbuilderdirective.html';\r\n var CartFlashTimeoutMillis = 1000; // Time to block UI with indication on \"cart updated\"\r\n var CartItemBuilder = /** @class */ (function () {\r\n function CartItemBuilder() {\r\n }\r\n return CartItemBuilder;\r\n }());\r\n var LeadPathGroup = /** @class */ (function () {\r\n function LeadPathGroup() {\r\n }\r\n return LeadPathGroup;\r\n }());\r\n var CartBuilderController = /** @class */ (function (_super) {\r\n __extends(CartBuilderController, _super);\r\n function CartBuilderController($scope, $location, $q, $sce, $timeout, $window, checkoutService, countiesService, countyStatisticsService, notificationService, spinWaitService, statesService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$location = $location;\r\n _this.$q = $q;\r\n _this.$sce = $sce;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.checkoutService = checkoutService;\r\n _this.countiesService = countiesService;\r\n _this.countyStatisticsService = countyStatisticsService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.statesService = statesService;\r\n _this.$scope.losAngelesSubdivided = { name: 'Los Angeles (Subdivided)', stateAbbreviation: 'CA' };\r\n _this.$scope.LeadType = vme.CartLeadType;\r\n var checkoutFlag = _this.$location.search()[names.zbuyer.queryparameters.Checkout];\r\n if (checkoutFlag) {\r\n if (checkoutFlag.toLowerCase() === true.toString()) {\r\n // Flag indicates we want to go straight to checkout\r\n _this.cartCheckout();\r\n return _this;\r\n }\r\n }\r\n _this.initializeCartBuilderController();\r\n return _this;\r\n }\r\n CartBuilderController.getDirective = function () {\r\n return {\r\n controller: CartBuilderController,\r\n restrict: 'E',\r\n scope: {\r\n checkoutCallback: '&onCheckout',\r\n viewModel: '=',\r\n zipCode: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n CartBuilderController.prototype.initializeCartBuilderController = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var initDropdowns = this.statesService.getStates().then(function (result) {\r\n viewModel.states = result;\r\n if (!_this.$scope.zipCode) {\r\n return _this.$q.resolve();\r\n }\r\n return _this.selectCountyByZip(_this.$scope.zipCode);\r\n });\r\n var allInitDone = this.$q.all([initDropdowns, this.getCurrentCart()]).then(function () {\r\n _this.$scope.initialized = true;\r\n });\r\n this.spinWaitService.blockDuring(allInitDone, 'CartBuilderInitializing', 'image logo');\r\n };\r\n CartBuilderController.prototype.activateOption = function (leadOption, pathGroup) {\r\n var affectedSelector;\r\n pathGroup.leadOptions.forEach(function (builder) {\r\n if (builder == leadOption) {\r\n builder.isActive = true;\r\n affectedSelector = builder.selector;\r\n }\r\n else {\r\n builder.isActive = false;\r\n }\r\n });\r\n this.forceSliderUpdate(affectedSelector);\r\n };\r\n CartBuilderController.prototype.forceSliderUpdate = function (affectedSelector) {\r\n var _this = this;\r\n // Section containing the slider was previously hidden, and the RzSlider atttempts to render itself too soon after displayed, causing defects.\r\n // So we can set a flag that lets it hide while multiple re-renders are attmempted (timing is tricky)\r\n affectedSelector.rendering = true;\r\n // Note: Render seems to be needed strictly AFTER the Angular digest but also needs some unknown delay beyond even that.\r\n this.$timeout(function () {\r\n // In testing, this was usually late enough to reveal the good render after concealing the first botched render.\r\n affectedSelector.rendering = false;\r\n _this.$scope.$broadcast('rzSliderForceRender');\r\n }, 175);\r\n this.$timeout(function () {\r\n _this.$scope.$broadcast('rzSliderForceRender');\r\n }, 250);\r\n this.$timeout(function () {\r\n _this.$scope.$broadcast('rzSliderForceRender');\r\n }, 750);\r\n };\r\n CartBuilderController.prototype.initializeLeadOption = function (leadOption, tabTitle) {\r\n if (!leadOption.showLeadOption) {\r\n return null;\r\n }\r\n var itemBuilder = {\r\n settings: leadOption,\r\n tabTitle: tabTitle,\r\n isActive: leadOption.isDefaultTabOfGroup\r\n };\r\n var ceil = itemBuilder.settings.quantityMax;\r\n var value = Math.min(ceil, itemBuilder.settings.quantityDefault);\r\n var floor = ceil == 0 ? 0 : itemBuilder.settings.quantityMin;\r\n itemBuilder.selector = this.getSelector(value, floor, ceil, itemBuilder.isSoldOut);\r\n itemBuilder.isSoldOut = itemBuilder.settings.showPriceAndQtyBlock && ceil == 0;\r\n return itemBuilder;\r\n };\r\n CartBuilderController.prototype.addOrUpdateLeadOption = function (cartItemBuilder) {\r\n var viewModel = this.$scope.viewModel;\r\n var request = {\r\n quantity: cartItemBuilder.selector.selectedValue,\r\n county: viewModel.selectedCounty.name,\r\n state: viewModel.selectedState.abbreviation,\r\n includeCurrentCart: true,\r\n leadType: cartItemBuilder.settings.leadType\r\n };\r\n this.updateCart(request).then(function () {\r\n cartItemBuilder.settings.alreadyInCart = true;\r\n });\r\n };\r\n CartBuilderController.prototype.addOption = function (additionalOption) {\r\n var viewModel = this.$scope.viewModel;\r\n var request = {\r\n quantity: 1,\r\n county: viewModel.selectedCounty.name,\r\n state: viewModel.selectedState.abbreviation,\r\n includeCurrentCart: true,\r\n additionalOptionType: additionalOption.additionalOptionType,\r\n leadType: vme.CartLeadType.Unknown,\r\n };\r\n this.updateCart(request).then(function () {\r\n additionalOption.alreadyInCart = true;\r\n });\r\n };\r\n CartBuilderController.prototype.cartCheckout = function () {\r\n this.$scope.checkoutCallback();\r\n };\r\n CartBuilderController.prototype.checkStatisticsModalShouldBeVisible = function () {\r\n var _this = this;\r\n var _a, _b;\r\n var viewModel = this.$scope.viewModel;\r\n var state = (_a = viewModel.selectedState) === null || _a === void 0 ? void 0 : _a.abbreviation;\r\n var county = (_b = viewModel.selectedCounty) === null || _b === void 0 ? void 0 : _b.name;\r\n viewModel.statisticModalLinkVisible = false;\r\n if (!state || !county) {\r\n // County is un-selected\r\n return this.$q.resolve();\r\n }\r\n this.countyStatisticsService.getCountyStatisticsForStateAndCounty(state, county).then(function (result) {\r\n var countyStatistics = result.countyStatistics;\r\n if (!countyStatistics) {\r\n return;\r\n }\r\n if (countyStatistics.availability ||\r\n countyStatistics.averageHomeValue ||\r\n countyStatistics.averageLeadSharing ||\r\n countyStatistics.maxHomeValue ||\r\n countyStatistics.minHomeValue ||\r\n countyStatistics.needFinancingToBuy ||\r\n countyStatistics.sellersAlsoBuying ||\r\n countyStatistics.willingToDiscount ||\r\n countyStatistics.soldWithin1YearText ||\r\n countyStatistics.soldWithin2YearsText ||\r\n countyStatistics.soldWithin3YearsText ||\r\n countyStatistics.soldWithin6MonthsText) {\r\n viewModel.statisticModalLinkVisible = true;\r\n return;\r\n }\r\n if (countyStatistics.leadMapEnabled) {\r\n _this.countyStatisticsService.getCountyLeadsCoordinatesForStateAndCounty(state, county).then(function (result) {\r\n var _a;\r\n var coordinates = (_a = result === null || result === void 0 ? void 0 : result.countyLeadsCoordinates) === null || _a === void 0 ? void 0 : _a.coordinates;\r\n if (coordinates && coordinates.length > 0) {\r\n viewModel.statisticModalLinkVisible = true;\r\n }\r\n }).catch(console.debug);\r\n }\r\n if (countyStatistics.cityStatisticsEnabled) {\r\n _this.countyStatisticsService.getCityLeadCountsForStateAndCounty(state, county).then(function (result) {\r\n if ((result === null || result === void 0 ? void 0 : result.cityLeads) && result.cityLeads.length > 0) {\r\n viewModel.statisticModalLinkVisible = true;\r\n }\r\n }).catch(console.debug);\r\n }\r\n }).catch(console.debug);\r\n };\r\n CartBuilderController.prototype.getCartItemBuilder = function (cartRowItemType) {\r\n for (var _i = 0, _a = this.$scope.leadPathGroups; _i < _a.length; _i++) {\r\n var optionList = _a[_i];\r\n for (var _b = 0, _c = optionList.leadOptions; _b < _c.length; _b++) {\r\n var cartBuilder = _c[_b];\r\n if (cartBuilder.settings.leadType.toString() == cartRowItemType) {\r\n return cartBuilder;\r\n }\r\n }\r\n }\r\n };\r\n CartBuilderController.prototype.deleteCartItem = function (cartItem) {\r\n var viewModel = this.$scope.viewModel;\r\n var request = {\r\n state: cartItem.stateEdit,\r\n county: cartItem.countyEdit,\r\n quantity: 0,\r\n includeCurrentCart: true\r\n };\r\n var onSuccess;\r\n if (cartItem.rowType == vme.CartRowType.CartAdditionalOption) {\r\n request.leadType = vme.CartLeadType.Unknown;\r\n request.additionalOptionType = cartItem.itemType;\r\n // We'll fudge a temporary update to the additional option, since we'll know it's been removed\r\n var additionalItem_1 = this.$scope.cartAdditionalOptions.find(function (opt) { return opt.additionalOptionType == request.additionalOptionType; });\r\n if (additionalItem_1) {\r\n onSuccess = function () { additionalItem_1.alreadyInCart = false; };\r\n }\r\n }\r\n else if (cartItem.rowType == vme.CartRowType.CartLeadOption) {\r\n var cartItemBuilder = this.getCartItemBuilder(cartItem.itemType);\r\n // Note: itemType is string but *should* be enough to get us the original lead option\r\n if (!cartItemBuilder) {\r\n console.error('Unable to find lead option info for CartRow with itemType ', cartItem.itemType);\r\n return;\r\n }\r\n // Identify hard CartLeadType\r\n request.leadType = cartItemBuilder.settings.leadType;\r\n // We'll fudge a temporary udate to the lead option, since we'll know it's been removed\r\n onSuccess = function () { cartItemBuilder.settings.alreadyInCart = false; };\r\n }\r\n else {\r\n throw 'This cart line item cannot be deleted';\r\n }\r\n this.updateCart(request).then(onSuccess);\r\n };\r\n CartBuilderController.prototype.handleError = function (error) {\r\n if (typeof error == 'string') {\r\n this.notificationService.error(error);\r\n }\r\n else {\r\n this.notificationService.error('An unexpected error has occurred. Please refresh the page.');\r\n console.error(error);\r\n }\r\n this.$window.scrollTo(this.$window.scrollX, 0);\r\n };\r\n CartBuilderController.prototype.editCartItem = function (cartItem) {\r\n var _this = this;\r\n // This will ensure that the \"active\" state on the tabs are re-bound (they have a one-time-binding)\r\n this.$scope.initialized = false;\r\n var editCart = this.selectCounty(cartItem.countyEdit, cartItem.stateEdit).then(function () {\r\n // Once we have the right county, make sure the right tab is showing for the cart item we're editing.\r\n for (var _i = 0, _a = _this.$scope.leadPathGroups; _i < _a.length; _i++) {\r\n var pathGroup = _a[_i];\r\n var matchesForCartRow = pathGroup.leadOptions.filter(function (option) { return option.settings.leadType.toString() == cartItem.itemType; });\r\n if (matchesForCartRow.length) {\r\n _this.activateOption(matchesForCartRow[0], pathGroup);\r\n }\r\n }\r\n // So the tab activation state properly updates\r\n return _this.$timeout(function () {\r\n _this.$scope.initialized = true;\r\n _this.$window.scrollTo({ top: 0 });\r\n });\r\n }).catch(function (err) { return _this.handleError(err); });\r\n this.spinWaitService.blockDuring(editCart, 'EditCartItem', 'image logo');\r\n };\r\n CartBuilderController.prototype.fillCounties = function (stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.counties = null; // incoming...\r\n return this.countiesService.getCountiesForState(stateAbbreviation).then(function (result) {\r\n viewModel.counties = result;\r\n if (stateAbbreviation === _this.$scope.losAngelesSubdivided.stateAbbreviation) {\r\n viewModel.counties.push(_this.$scope.losAngelesSubdivided);\r\n viewModel.counties = viewModel.counties.sort(function (a, b) { return a.name.localeCompare(b.name); });\r\n }\r\n // Auto-select single choice if only one.\r\n if (viewModel.counties.length === 1) {\r\n viewModel.selectedCounty = viewModel.counties[0];\r\n return _this.onCountySelected(false);\r\n }\r\n return _this.$q.resolve();\r\n });\r\n };\r\n CartBuilderController.prototype.fillRelatedCounties = function () {\r\n var viewModel = this.$scope.viewModel;\r\n if (!viewModel.selectedCounty) {\r\n // County was un-selected, no related counties to fill\r\n return this.$q.resolve();\r\n }\r\n return this.countiesService.getRelatedCounties(viewModel.selectedState.abbreviation, viewModel.selectedCounty.name).then(function (result) {\r\n // Ensure reponse is still relevant to current state of UI\r\n if (viewModel.selectedCounty && viewModel.selectedState) {\r\n if (viewModel.selectedCounty.name === result.countyRequested && viewModel.selectedState.abbreviation === result.stateRequested) {\r\n viewModel.relatedCounties = result.counties;\r\n }\r\n }\r\n });\r\n };\r\n CartBuilderController.prototype.flashUpdatedCartOverlay = function () {\r\n var _this = this;\r\n var blockId = 'SubscriptionCart';\r\n this.spinWaitService.blockDuring(this.$timeout(CartFlashTimeoutMillis), blockId, names.misc.BlockUISpinnerCheckmarkClass, zbuyer.messages.UpdateCart)\r\n .finally(function () { return _this.spinWaitService.unblock(blockId); });\r\n };\r\n CartBuilderController.prototype.getBindableHtml = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n CartBuilderController.prototype.getSelector = function (value, floor, ceil, disabled) {\r\n return {\r\n options: {\r\n autoHideLimitLabels: false,\r\n ceil: ceil,\r\n disabled: disabled,\r\n disableAnimation: true,\r\n floor: floor,\r\n hideLimitLabels: false,\r\n // Render all numeric values (max/min/etc except the central model value since we will render that independently)\r\n translate: function (value, sliderId, label) {\r\n return label == 'model' ? '' : value.toString();\r\n }\r\n },\r\n selectedValue: value,\r\n };\r\n };\r\n CartBuilderController.prototype.joinWaitingList = function (cartItemBuilder) {\r\n var viewModel = this.$scope.viewModel;\r\n if (!cartItemBuilder.settings.showWaitingListOption) {\r\n return;\r\n }\r\n var request = {\r\n quantity: 0,\r\n joinWaitingList: true,\r\n county: viewModel.selectedCounty.name,\r\n state: viewModel.selectedState.abbreviation,\r\n includeCurrentCart: true,\r\n leadType: cartItemBuilder.settings.leadType\r\n };\r\n this.updateCart(request);\r\n };\r\n CartBuilderController.prototype.addLeadPathGroup = function (rawPathGroup, isSelling) {\r\n var _this = this;\r\n if (!rawPathGroup.showPathGroup) {\r\n return null;\r\n }\r\n var itemBuilders = [\r\n this.initializeLeadOption(rawPathGroup.nonExclusiveLeads, 'Shared'),\r\n this.initializeLeadOption(rawPathGroup.exclusiveLeads, 'Exclusive')\r\n ].filter(function (o) { return !!o; });\r\n if (!itemBuilders.length) {\r\n return null;\r\n }\r\n var pathGroup = {\r\n isSellingPath: isSelling,\r\n leadOptions: itemBuilders\r\n };\r\n this.$scope.leadPathGroups.push(pathGroup);\r\n // Special workaround to correct slider rendering after sufficient delay\r\n pathGroup.leadOptions.forEach(function (leadOption) { return _this.forceSliderUpdate(leadOption.selector); });\r\n return pathGroup;\r\n };\r\n CartBuilderController.prototype.onCountySelected = function (blockUI) {\r\n var _this = this;\r\n if (blockUI === void 0) { blockUI = true; }\r\n if (blockUI) {\r\n return this.spinWaitService.blockDuring(this.onCountySelected(false), 'OnCountySelected', 'image logo');\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.relatedCounties = null;\r\n this.$scope.leadPathGroups = [];\r\n if (!viewModel.selectedCounty) {\r\n return this.$q.resolve(); // Nothing else to do\r\n }\r\n var promises = [this.fillRelatedCounties(), this.checkStatisticsModalShouldBeVisible()];\r\n if (viewModel.selectedCounty != this.$scope.losAngelesSubdivided) {\r\n var gotItemOptions = this.checkoutService.getCartItemOptions(viewModel.selectedCounty.name, viewModel.selectedCounty.stateAbbreviation).then(function (response) {\r\n console.debug('Got CART OPTIONS', response);\r\n _this.addLeadPathGroup(response.sellingPathGroup, true);\r\n _this.addLeadPathGroup(response.buyingPathGroup, false);\r\n _this.$scope.cartAdditionalOptions = response.additionalOptions;\r\n }).catch(function (err) { return _this.handleError(err); });\r\n promises.push(gotItemOptions);\r\n }\r\n return this.$q.all(promises);\r\n };\r\n CartBuilderController.prototype.onStateSelected = function (blockUI) {\r\n if (blockUI === void 0) { blockUI = true; }\r\n if (blockUI) {\r\n return this.spinWaitService.blockDuring(this.onStateSelected(false), 'OnStateSelected', 'image logo');\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n return this.fillCounties(viewModel.selectedState.abbreviation);\r\n };\r\n CartBuilderController.prototype.resetDropdownSelection = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.selectedCounty = null;\r\n viewModel.selectedState = null;\r\n this.$window.scrollTo({ top: 0 });\r\n };\r\n CartBuilderController.prototype.selectCounty = function (countyName, stateAbbreviation) {\r\n var _this = this;\r\n var _a, _b;\r\n var viewModel = this.$scope.viewModel;\r\n if (stateAbbreviation) {\r\n if (((_a = viewModel.selectedState) === null || _a === void 0 ? void 0 : _a.abbreviation) != stateAbbreviation) {\r\n // Need right state first. Bring blocking overlay back up after state load finished\r\n return this.selectState(stateAbbreviation).then(function () { return _this.selectCounty(countyName); });\r\n }\r\n }\r\n if (((_b = viewModel.selectedCounty) === null || _b === void 0 ? void 0 : _b.name) == countyName) {\r\n return this.$q.resolve();\r\n }\r\n var search = viewModel.counties.filter(function (c) { return c.name == countyName; });\r\n if (search.length > 0) {\r\n this.$scope.viewModel.selectedCounty = search[0];\r\n return this.onCountySelected(false);\r\n }\r\n else {\r\n return this.$q.reject();\r\n }\r\n };\r\n CartBuilderController.prototype.selectCountyByZip = function (zip) {\r\n var _this = this;\r\n return this.countiesService.getCountyForZip(zip).then(function (county) {\r\n if (county) {\r\n return _this.selectCounty(county.name, county.stateAbbreviation);\r\n }\r\n });\r\n };\r\n CartBuilderController.prototype.selectState = function (abbreviation) {\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.selectedState && viewModel.selectedState.abbreviation === abbreviation) {\r\n return this.$q.resolve();\r\n }\r\n var search = viewModel.states.filter(function (s) { return s.abbreviation === abbreviation; });\r\n if (search.length > 0) {\r\n viewModel.selectedState = search[0];\r\n return this.onStateSelected(false);\r\n }\r\n return this.$q.resolve();\r\n };\r\n CartBuilderController.prototype.getCurrentCart = function () {\r\n var _this = this;\r\n var gettingCart = this.checkoutService.getCurrentCart(false).then(function (currentCartResponse) {\r\n _this.handleUpdatedCart(currentCartResponse);\r\n }).catch(function (err) { return _this.handleError(err); });\r\n this.spinWaitService.blockDuring(gettingCart, 'GetCurrentCart', 'image logo', 'Loading Cart');\r\n return gettingCart;\r\n };\r\n CartBuilderController.prototype.showCountyStatisticsModal = function () {\r\n var viewModel = this.$scope.viewModel;\r\n controllers.CountyStatisticsModalController.loadModal(viewModel.selectedState.abbreviation, viewModel.selectedCounty.name);\r\n };\r\n CartBuilderController.prototype.showLearnMoreModal = function (pathGroup) {\r\n controllers.LearnMoreModalController.loadModal(pathGroup.isSellingPath ? names.misc.SellersTrack : names.misc.BuyersTrack);\r\n };\r\n CartBuilderController.prototype.showZipLookupModal = function () {\r\n var _this = this;\r\n controllers.ZipLookupModalController.loadModal().result.then(function (zip) {\r\n return _this.spinWaitService.blockDuring(_this.selectCountyByZip(zip), 'SelectCountyByZip', 'image logo');\r\n });\r\n };\r\n CartBuilderController.prototype.updateCart = function (request) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var updatingCart = this.checkoutService.updateCart(request).then(function (response) {\r\n _this.handleUpdatedCart(response.currentCart);\r\n viewModel.cart = response.currentCart;\r\n });\r\n return this.spinWaitService.blockDuring(updatingCart, 'UpdateCart', 'image logo', 'Updating Cart...')\r\n .then(function () { return _this.flashUpdatedCartOverlay(); })\r\n .catch(function (err) { return _this.handleError(err); });\r\n };\r\n CartBuilderController.prototype.handleUpdatedCart = function (currentCart) {\r\n var _a, _b;\r\n var viewModel = this.$scope.viewModel;\r\n if (!currentCart.cartIsEditable) {\r\n (_b = (_a = this.$scope).checkoutCallback) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n return;\r\n }\r\n if (currentCart.redirectToUrl) {\r\n this.$window.location.href = currentCart.redirectToUrl;\r\n }\r\n console.debug('GOT CART', currentCart);\r\n viewModel.cart = currentCart;\r\n };\r\n CartBuilderController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Location,\r\n names.angular.Q,\r\n names.angular.Sce,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.services.CheckoutService,\r\n names.zbuyer.services.CountiesService,\r\n names.zbuyer.services.CountyStatisticsService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService,\r\n names.zbuyer.services.StatesService\r\n ];\r\n return CartBuilderController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.CartBuilder, CartBuilderController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/checkoutdirective.html';\r\n var CheckoutDirectiveController = /** @class */ (function (_super) {\r\n __extends(CheckoutDirectiveController, _super);\r\n function CheckoutDirectiveController($scope, $sce, $location, $timeout, $window, checkoutService, complianceService, notificationService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$location = $location;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.checkoutService = checkoutService;\r\n _this.complianceService = complianceService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.initializeCheckoutDirectiveController();\r\n return _this;\r\n }\r\n CheckoutDirectiveController.getDirective = function () {\r\n return {\r\n controller: CheckoutDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n supportPhone: '=',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n Object.defineProperty(CheckoutDirectiveController.prototype, \"checkoutIsDisabled\", {\r\n get: function () {\r\n var viewModel = this.$scope.viewModel;\r\n return viewModel.awaitingFormCertification || !viewModel.cartIsValid || (viewModel.paymentForm.$submitted && viewModel.paymentForm.$invalid);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CheckoutDirectiveController.prototype.initializeCheckoutDirectiveController = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.awaitingFormCertification = true;\r\n this.complianceService.applyTrustedFormCertification(names.zbuyer.compliance.Checkout).finally(function () {\r\n viewModel.awaitingFormCertification = false;\r\n });\r\n this.checkoutService.getCurrentCart(true).then(function (response) {\r\n var _a;\r\n if (response.redirectToUrl) {\r\n _this.$window.location.href = response.redirectToUrl;\r\n }\r\n viewModel.cart = response;\r\n viewModel.cartIsValid = response.cartIsValid;\r\n viewModel.errorMessage = (_a = response.errorMessageToDisplay) !== null && _a !== void 0 ? _a : (response.success ? '' : 'There was an error getting your cart data');\r\n var checkoutData = response.cartCheckoutData;\r\n ;\r\n if (checkoutData) {\r\n viewModel.initialChargeAmount = checkoutData.initialChargeAmount;\r\n viewModel.recurringChargeAmount = checkoutData.recurringChargeAmount;\r\n viewModel.recurringNextChargeDate = checkoutData.recurringNextChargeDate;\r\n }\r\n viewModel.paymentViewModel = {};\r\n viewModel.checkoutDataLoaded = true;\r\n });\r\n var checkoutFlag = this.$location.search()[names.zbuyer.queryparameters.Checkout];\r\n if (checkoutFlag) {\r\n // Indicates KW Signup flow required\r\n viewModel.isKwSignupMode = true;\r\n // Note: Technically we are not expecting &checkout=false. IF set immediately to false, user will end up at standard old cart-edit.\r\n // But for checkout=true we will see the CheckoutDirective immediately and editing cart from THERE will redirect to KW Signup flows (AKA /precheckout)) as expected.\r\n viewModel.isCheckoutActive = checkoutFlag.toLowerCase() === true.toString();\r\n }\r\n angular.element(window).on('resize', function () {\r\n _this.resizeTermsColumn();\r\n });\r\n };\r\n CheckoutDirectiveController.prototype.editCart = function () {\r\n var viewModel = this.$scope.viewModel;\r\n if (this.$scope.viewModel.isKwSignupMode) {\r\n if (viewModel.cartIsValid) {\r\n // Normal case for KW signup -> just go back to basic-subscription-edit\r\n this.$window.location.href = 'signup/precheckout?step=4';\r\n }\r\n else {\r\n // Probably shouldn't be here -> go back to first step of KW signup\r\n this.$window.location.href = 'signup/precheckout?step=1';\r\n }\r\n }\r\n else {\r\n viewModel.isCheckoutActive = false;\r\n }\r\n };\r\n CheckoutDirectiveController.prototype.getBindableHtml = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n CheckoutDirectiveController.prototype.checkout = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.paymentForm.$invalid) {\r\n return;\r\n }\r\n viewModel.errorMessage = null;\r\n var blockId = 'SubscriptionCheckout';\r\n this.spinWaitService.block(blockId, names.misc.BlockUISpinnerCheckmarkClass, 'Processing Payment');\r\n var checkoutRequest = {\r\n billingZipCode: viewModel.paymentViewModel.billingZipCode,\r\n cardCVV2: viewModel.paymentViewModel.cardCVV2,\r\n cardExpirationMonth: viewModel.paymentViewModel.cardExpirationMonth,\r\n cardExpirationYear: viewModel.paymentViewModel.cardExpirationYear,\r\n cardNumber: viewModel.paymentViewModel.cardNumber.replace(/ /g, ''),\r\n initialChargeAmtShown: viewModel.initialChargeAmount,\r\n recurringChargeAmtShown: viewModel.recurringChargeAmount\r\n };\r\n this.checkoutService.performCheckout(checkoutRequest).then(function (result) {\r\n if (result.checkoutSuccess) {\r\n if (result.showKWCommandPageNext) {\r\n viewModel.showKWCommandNotice = true;\r\n _this.$window.scrollTo(0, 0);\r\n }\r\n else {\r\n _this.continueOnCheckoutSuccess();\r\n }\r\n }\r\n else {\r\n viewModel.errorMessage = result.errorMessageToDisplay;\r\n _this.notificationService.error(result.errorMessageToDisplay);\r\n }\r\n }).catch(function (reason) {\r\n viewModel.errorMessage = zbuyer.messages.ErrorProcessingPayment;\r\n _this.notificationService.error(zbuyer.messages.ErrorProcessingPayment);\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(blockId);\r\n });\r\n };\r\n CheckoutDirectiveController.prototype.continueOnCheckoutSuccess = function () {\r\n window.location.href = \"\".concat(appConfiguration.baseUrl, \"signup/success\");\r\n };\r\n CheckoutDirectiveController.prototype.resizeTermsColumn = function () {\r\n var setWidth = angular.element('.terms-col > ul:first-child > li:first-child').width();\r\n if (!setWidth) {\r\n return;\r\n }\r\n angular.element('.terms-col > ul:last-child > li:first-child').width(setWidth);\r\n };\r\n CheckoutDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.angular.Location,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.services.CheckoutService,\r\n names.zbuyer.services.ComplianceService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return CheckoutDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.Checkout, CheckoutDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/claimedleadmodal.html';\r\n var ClaimedLeadNavigationOption;\r\n (function (ClaimedLeadNavigationOption) {\r\n ClaimedLeadNavigationOption[ClaimedLeadNavigationOption[\"ViewClaimed\"] = 1] = \"ViewClaimed\";\r\n ClaimedLeadNavigationOption[ClaimedLeadNavigationOption[\"NextLead\"] = 2] = \"NextLead\";\r\n ClaimedLeadNavigationOption[ClaimedLeadNavigationOption[\"BackToList\"] = 3] = \"BackToList\";\r\n })(ClaimedLeadNavigationOption = controllers.ClaimedLeadNavigationOption || (controllers.ClaimedLeadNavigationOption = {}));\r\n var ClaimedLeadModalController = /** @class */ (function (_super) {\r\n __extends(ClaimedLeadModalController, _super);\r\n function ClaimedLeadModalController($scope, $uibModalInstance, modalService, notificationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.modalService = modalService;\r\n _this.notificationService = notificationService;\r\n $scope.ClaimedLeadNavigationOption = ClaimedLeadNavigationOption;\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n return _this;\r\n }\r\n ClaimedLeadModalController.showModal = function (modalScope) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var modalInstance = $uibModal.open({\r\n controller: names.zbuyer.controllers.ClaimedLeadModalController,\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'claimed-lead-modal-parent-window',\r\n scope: modalScope\r\n });\r\n return modalInstance.result.then(function (result) { return result; });\r\n };\r\n ClaimedLeadModalController.prototype.closeModal = function (navigation) {\r\n this.$uibModalInstance.close(navigation);\r\n };\r\n ClaimedLeadModalController.prototype.handleError = function (thrownError) {\r\n if (thrownError === void 0) { thrownError = null; }\r\n if (typeof thrownError == 'string') {\r\n this.notificationService.error(thrownError);\r\n }\r\n else {\r\n this.notificationService.error('An unexpected error has occurred.');\r\n console.error(thrownError);\r\n }\r\n };\r\n ClaimedLeadModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.ModalService,\r\n names.zbuyer.services.NotificationService\r\n ];\r\n return ClaimedLeadModalController;\r\n }(controllers.ControllerBase));\r\n controllers.ClaimedLeadModalController = ClaimedLeadModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.ClaimedLeadModalController, ClaimedLeadModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/ComplianceAgreement.html';\r\n var ComplianceAgreementModalComponent = /** @class */ (function () {\r\n function ComplianceAgreementModalComponent($scope, complianceService, modalService, notificationService) {\r\n this.$scope = $scope;\r\n this.complianceService = complianceService;\r\n this.modalService = modalService;\r\n this.notificationService = notificationService;\r\n }\r\n ComplianceAgreementModalComponent.prototype.$onInit = function () {\r\n // NOTE: viewModel and $uibModalInstance are NOT injected/resolved in constructor, so waiting for $onInit is necessary\r\n this.modalService.handleCloseActions(this.$scope, this.$uibModalInstance);\r\n var viewModel = this.viewModel;\r\n this.complianceService.applyTrustedFormCertification(names.zbuyer.compliance.TcpaComplianceAgreement).finally(function () {\r\n // Always allow user to submit once attempt to apply TCPA cert is completed\r\n viewModel.loading = false;\r\n });\r\n };\r\n ComplianceAgreementModalComponent.prototype.agreeAndClose = function () {\r\n var _this = this;\r\n var termsHtml = $('.compliance-agreement-terms').html();\r\n if (!termsHtml) {\r\n console.debug('Unable to set compliance: no terms HTML found');\r\n return;\r\n }\r\n this.complianceService.setProspectingCompliance(termsHtml).then(function (result) {\r\n _this.$uibModalInstance.close(true);\r\n }).catch(function (err) {\r\n _this.cancel();\r\n _this.notificationService.error(err, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n ComplianceAgreementModalComponent.prototype.cancel = function () {\r\n this.$uibModalInstance.close(false);\r\n };\r\n ComplianceAgreementModalComponent.loadModal = function (account) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var modalInstance = $uibModal.open({\r\n backdropClass: 'compliance-agreement-backdrop',\r\n component: names.zbuyer.components.ComplianceAgreement,\r\n backdrop: 'static',\r\n size: 'sm',\r\n resolve: {\r\n // NOTE: For components, awkwardly the only way to receive the resolves seems to be a literal public resolve property on the component,\r\n // which will have these properties *nested* (late bound after constructor -- cannot be injected!)\r\n memberAccount: account,\r\n loading: true,\r\n },\r\n windowClass: 'compliance-agreement-modal'\r\n });\r\n return modalInstance.result;\r\n };\r\n ComplianceAgreementModalComponent.getComponentOptions = function () {\r\n return {\r\n controller: ComplianceAgreementModalComponent,\r\n controllerAs: 'modal',\r\n bindings: {\r\n $uibModalInstance: \"\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/ComplianceReminder.html';\r\n var ComplianceReminderModalComponent = /** @class */ (function () {\r\n function ComplianceReminderModalComponent($scope, modalService) {\r\n this.$scope = $scope;\r\n this.modalService = modalService;\r\n }\r\n ComplianceReminderModalComponent.prototype.$onInit = function () {\r\n this.modalService.handleCloseActions(this.$scope, this.$uibModalInstance);\r\n };\r\n ComplianceReminderModalComponent.getComponentOptions = function () {\r\n return {\r\n controller: ComplianceReminderModalComponent,\r\n bindings: {\r\n $uibModalInstance: \"\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var ConvertToNumberDirective = /** @class */ (function () {\r\n function ConvertToNumberDirective($scope) {\r\n this.$scope = $scope;\r\n }\r\n ConvertToNumberDirective.getDirective = function () {\r\n return {\r\n link: function (scope, element, attrs, ngModel) {\r\n ngModel.$parsers.push(function (val) {\r\n return parseInt(val, 10);\r\n });\r\n ngModel.$formatters.push(function (val) {\r\n return '' + val;\r\n });\r\n },\r\n require: 'ngModel',\r\n restrict: 'A'\r\n };\r\n };\r\n ConvertToNumberDirective.$inject = [\r\n names.angular.Scope\r\n ];\r\n return ConvertToNumberDirective;\r\n }());\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.ConvertToNumber, ConvertToNumberDirective.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/countystatisticsdirective.html';\r\n var CountyStatisticsDirectiveController = /** @class */ (function (_super) {\r\n __extends(CountyStatisticsDirectiveController, _super);\r\n function CountyStatisticsDirectiveController($scope, $q, $timeout, appConfiguration, countyStatisticsService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.appConfiguration = appConfiguration;\r\n _this.countyStatisticsService = countyStatisticsService;\r\n $scope.viewModel = { cityLeads: null, countyLeadsCoordinates: null, countyStatistics: null };\r\n _this.currencyFormatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n maximumFractionDigits: 0,\r\n minimumFractionDigits: 0,\r\n });\r\n $scope.$watch('state', function (newValue, oldValue) {\r\n _this.selectState(newValue);\r\n }, true);\r\n $scope.$watch('county', function (newValue, oldValue) {\r\n _this.selectCounty(newValue);\r\n }, true);\r\n return _this;\r\n }\r\n CountyStatisticsDirectiveController.getDirective = function () {\r\n return {\r\n controller: CountyStatisticsDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n state: '=',\r\n county: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n CountyStatisticsDirectiveController.prototype.selectCounty = function (county) {\r\n this.fillCountyStatistics(this.$scope.state, county);\r\n };\r\n CountyStatisticsDirectiveController.prototype.selectState = function (state) {\r\n this.fillCountyStatistics(state, this.$scope.county);\r\n };\r\n CountyStatisticsDirectiveController.prototype.fillCountyStatistics = function (state, county) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n this.$scope.state = state;\r\n this.$scope.county = county;\r\n // Clear statistics while loading to prevent stale display on error\r\n viewModel.countyStatistics = null;\r\n viewModel.countyLeadsCoordinates = null;\r\n viewModel.cityLeads = null;\r\n if (!this.$scope.state || !this.$scope.county) {\r\n // County was un-selected, no statistics to fill\r\n return;\r\n }\r\n var countyStatistics = this.countyStatisticsService.getCountyStatisticsForStateAndCounty(state, county);\r\n var countyMap = this.countyStatisticsService.getCountyLeadsCoordinatesForStateAndCounty(state, county);\r\n var cityLeads = this.countyStatisticsService.getCityLeadCountsForStateAndCounty(state, county);\r\n var results = this.$q.all([countyStatistics, countyMap, cityLeads]);\r\n results.then(function (result) {\r\n // Verify results still match scope values for requested states and counties\r\n if (_this.$scope.state && _this.$scope.county) {\r\n if (_this.$scope.state === state && _this.$scope.county == county) {\r\n viewModel.countyStatistics = result[0].countyStatistics;\r\n viewModel.countyLeadsCoordinates = result[1].countyLeadsCoordinates;\r\n viewModel.cityLeads = result[2].cityLeads;\r\n }\r\n }\r\n }).catch(function (_) {\r\n // Do not display invalid data on error\r\n return;\r\n });\r\n };\r\n CountyStatisticsDirectiveController.prototype.assignMapToDOMObject = function (id) {\r\n this.map = L.map(id);\r\n var isRetina = L.Browser.retina;\r\n var baseUrl = \"\".concat(this.appConfiguration.webServiceUrl, \"/map-data/tile/{z}/{x}/{y}\");\r\n var retinaUrl = \"\".concat(this.appConfiguration.webServiceUrl, \"/map-data/tile-highres/{z}/{x}/{y}\");\r\n L.tileLayer(isRetina ? retinaUrl : baseUrl, {\r\n attribution: \"Powered by Geoapify | \\u00A9 OpenStreetMap contributors\",\r\n maxZoom: 13,\r\n }).addTo(this.map);\r\n var markerIcon = L.icon({\r\n iconUrl: \"\".concat(this.appConfiguration.webServiceUrl, \"/map-data/icon\"),\r\n iconSize: [10, 14],\r\n iconAnchor: [5, 7]\r\n });\r\n var markerList = [];\r\n for (var _i = 0, _a = this.$scope.viewModel.countyLeadsCoordinates.coordinates; _i < _a.length; _i++) {\r\n var markerLocation = _a[_i];\r\n markerList.push(L.marker([markerLocation.lat, markerLocation.lon], {\r\n icon: markerIcon\r\n }).addTo(this.map));\r\n }\r\n this.group = L.featureGroup(markerList);\r\n var controller = this;\r\n this.resizeMap();\r\n this.$timeout(function () {\r\n controller.resizeMap();\r\n }, 100);\r\n angular.element(id).on('resize', function () {\r\n controller.resizeMap();\r\n });\r\n };\r\n CountyStatisticsDirectiveController.prototype.resizeMap = function () {\r\n this.map.invalidateSize();\r\n this.map.fitBounds(this.group.getBounds().pad(.1));\r\n };\r\n CountyStatisticsDirectiveController.prototype.shouldShowSellRateStatistics = function () {\r\n var countyStatistics = this.$scope.viewModel.countyStatistics;\r\n return countyStatistics && Boolean(countyStatistics.soldWithinIsNationwideAverage\r\n || countyStatistics.soldWithin1YearText\r\n || countyStatistics.soldWithin2YearsText\r\n || countyStatistics.soldWithin3YearsText\r\n || countyStatistics.soldWithin6MonthsText);\r\n };\r\n CountyStatisticsDirectiveController.prototype.formatCurrency = function (value) {\r\n return this.currencyFormatter.format(+value);\r\n };\r\n CountyStatisticsDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.Timeout,\r\n names.zbuyer.AppConfiguration,\r\n names.zbuyer.services.CountyStatisticsService\r\n ];\r\n return CountyStatisticsDirectiveController;\r\n }(controllers.ControllerBase));\r\n controllers.CountyStatisticsDirectiveController = CountyStatisticsDirectiveController;\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.CountyStatistics, CountyStatisticsDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/countystatisticsmodal.html';\r\n var CountyStatisticsModalViewModel = /** @class */ (function () {\r\n function CountyStatisticsModalViewModel() {\r\n }\r\n return CountyStatisticsModalViewModel;\r\n }());\r\n var CountyStatisticsModalController = /** @class */ (function (_super) {\r\n __extends(CountyStatisticsModalController, _super);\r\n function CountyStatisticsModalController($scope, $uibModalInstance, appConfiguration, modalService, countyStatisticsModalViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.appConfiguration = appConfiguration;\r\n _this.modalService = modalService;\r\n _this.countyStatisticsModalViewModel = countyStatisticsModalViewModel;\r\n $scope.viewModel = countyStatisticsModalViewModel;\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n return _this;\r\n }\r\n CountyStatisticsModalController.loadModal = function (state, county) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var countyStatisticsModalViewModel = { state: state, county: county };\r\n return $uibModal.open({\r\n controller: names.zbuyer.controllers.CountyStatisticsModalController,\r\n resolve: {\r\n countyStatisticsModalViewModel: countyStatisticsModalViewModel\r\n },\r\n size: 'lg',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'county-statistics-modal'\r\n });\r\n };\r\n CountyStatisticsModalController.prototype.close = function () {\r\n this.$uibModalInstance.close();\r\n };\r\n CountyStatisticsModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.AppConfiguration,\r\n names.zbuyer.services.ModalService,\r\n 'countyStatisticsModalViewModel'\r\n ];\r\n return CountyStatisticsModalController;\r\n }(controllers.ControllerBase));\r\n controllers.CountyStatisticsModalController = CountyStatisticsModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.CountyStatisticsModalController, CountyStatisticsModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/countystatisticspagedirective.html';\r\n var CountyStatisticsPageDirectiveController = /** @class */ (function (_super) {\r\n __extends(CountyStatisticsPageDirectiveController, _super);\r\n function CountyStatisticsPageDirectiveController($scope, $q, $window, $location, countiesService, countyPackagesService, spinWaitService, statesService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$q = $q;\r\n _this.$window = $window;\r\n _this.$location = $location;\r\n _this.countiesService = countiesService;\r\n _this.countyPackagesService = countyPackagesService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.statesService = statesService;\r\n _this.$scope.viewModel = {\r\n countyPackageDataCounties: [],\r\n selectedCountyPackageData: null,\r\n selectedState: null,\r\n states: []\r\n };\r\n var viewModel = _this.$scope.viewModel;\r\n _this.$scope.losAngelesSubdivided = { county: 'Los Angeles (Subdivided)', state: 'CA' };\r\n _this.showOverlayDuring(function () {\r\n return _this.statesService.getStates().then(function (result) {\r\n viewModel.states = result;\r\n var queryParameters = _this.$location.search();\r\n if (typeof queryParameters.state === 'string' && typeof queryParameters.county === 'string') {\r\n _this.selectCounty(queryParameters.county, queryParameters.state);\r\n }\r\n });\r\n });\r\n return _this;\r\n }\r\n CountyStatisticsPageDirectiveController.getDirective = function () {\r\n return {\r\n controller: CountyStatisticsPageDirectiveController,\r\n restrict: 'E',\r\n scope: {},\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.countySelected = function (blockUI) {\r\n var _this = this;\r\n if (blockUI === void 0) { blockUI = true; }\r\n if (blockUI) {\r\n return this.showOverlayDuring(function () { return _this.countySelected(false); });\r\n }\r\n return this.$q.resolve();\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.fillCounties = function (stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.countyPackageDataCounties = null; // incoming...\r\n return this.countyPackagesService.getCountyPackageDataForState(stateAbbreviation).then(function (result) {\r\n viewModel.countyPackageDataCounties = result;\r\n if (stateAbbreviation === _this.$scope.losAngelesSubdivided.state) {\r\n viewModel.countyPackageDataCounties.push(_this.$scope.losAngelesSubdivided);\r\n viewModel.countyPackageDataCounties = viewModel.countyPackageDataCounties.sort(function (a, b) { return a.county < b.county ? -1 : a.county > b.county ? 1 : 0; });\r\n }\r\n // Auto-select single choice if only one.\r\n if (viewModel.countyPackageDataCounties.length === 1) {\r\n viewModel.selectedCountyPackageData = viewModel.countyPackageDataCounties[0];\r\n return _this.countySelected(false);\r\n }\r\n return _this.$q.resolve();\r\n });\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.getCountyPackageData = function (state, county) {\r\n var viewModel = this.$scope.viewModel;\r\n return viewModel.countyPackageDataCounties.filter(function (cpd) { return cpd.county === county && cpd.state === state; })[0];\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.isLosAngelesCounty = function () {\r\n var viewModel = this.$scope.viewModel;\r\n return viewModel.selectedCountyPackageData && viewModel.selectedCountyPackageData.county === this.$scope.losAngelesSubdivided.county;\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.resetDropdownSelection = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.selectedCountyPackageData = null;\r\n viewModel.selectedState = null;\r\n this.$window.scrollTo({ top: 0 });\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.selectCounty = function (countyName, stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n if (stateAbbreviation) {\r\n var selectedStateAbbrev = viewModel.selectedState && viewModel.selectedState.abbreviation;\r\n if (selectedStateAbbrev != stateAbbreviation) {\r\n // Need right state first. Bring blocking overlay back up after state load finished\r\n return this.selectState(stateAbbreviation).then(function () { return _this.showOverlayDuring(function () { return _this.selectCounty(countyName); }); });\r\n }\r\n }\r\n var search = viewModel.countyPackageDataCounties.filter(function (c) { return c.county == countyName; });\r\n if (search.length > 0) {\r\n this.$scope.viewModel.selectedCountyPackageData = search[0];\r\n return this.countySelected(false);\r\n }\r\n else {\r\n return this.$q.reject();\r\n }\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.selectState = function (abbreviation) {\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.selectedState && viewModel.selectedState.abbreviation === abbreviation) {\r\n return this.$q.resolve();\r\n }\r\n var search = viewModel.states.filter(function (s) { return s.abbreviation === abbreviation; });\r\n if (search.length > 0) {\r\n viewModel.selectedState = search[0];\r\n return this.stateSelected();\r\n }\r\n return this.$q.resolve();\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.selectCountyByZip = function (zip) {\r\n var _this = this;\r\n return this.showOverlayDuring(function () {\r\n return _this.countiesService.getCountyForZip(zip).then(function (county) {\r\n if (county) {\r\n _this.selectCounty(county.name, county.stateAbbreviation);\r\n }\r\n });\r\n });\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.showOverlay = function (active, message) {\r\n if (active === void 0) { active = true; }\r\n if (message === void 0) { message = null; }\r\n var blockId = 'CountyStatisticsStateCountyLoading';\r\n if (active) {\r\n this.spinWaitService.block(blockId, 'image logo', message || 'Loading...');\r\n }\r\n else {\r\n this.spinWaitService.unblock(blockId);\r\n }\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.showOverlayDuring = function (untilFunc, message) {\r\n var _this = this;\r\n if (message === void 0) { message = null; }\r\n try {\r\n this.showOverlay(true, message);\r\n return untilFunc().finally(function () { return _this.showOverlay(false); });\r\n }\r\n catch (error) {\r\n this.showOverlay(false);\r\n return this.$q.reject(error);\r\n }\r\n };\r\n CountyStatisticsPageDirectiveController.prototype.stateSelected = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n return this.showOverlayDuring(function () { return _this.fillCounties(viewModel.selectedState.abbreviation); });\r\n };\r\n CountyStatisticsPageDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.Window,\r\n names.angular.Location,\r\n names.zbuyer.services.CountiesService,\r\n names.zbuyer.services.CountyPackagesService,\r\n names.zbuyer.services.SpinWaitService,\r\n names.zbuyer.services.StatesService\r\n ];\r\n return CountyStatisticsPageDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.CountyStatisticsPage, CountyStatisticsPageDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var DynamicFormController = /** @class */ (function (_super) {\r\n __extends(DynamicFormController, _super);\r\n function DynamicFormController($scope, $sce) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$scope.$watch(function (scope) { return scope.viewModel; }, function () {\r\n // Ensure formController is accessible from model (in case of external submit action)\r\n _this.$scope.viewModel.formController = _this.formController;\r\n });\r\n var viewModel = _this.$scope.viewModel;\r\n if (!viewModel.inputValues) {\r\n viewModel.inputValues = {};\r\n }\r\n if (viewModel.showSubmitButton !== false) {\r\n viewModel.showSubmitButton = true;\r\n }\r\n viewModel.inputFormItems.forEach(function (inputItem) {\r\n var _a;\r\n if (!inputItem.itemId) {\r\n return;\r\n }\r\n if (inputItem.itemType == zbuyer.models.enums.InputFormItemType.CheckBox) {\r\n var checked = ((_a = inputItem.defaultValue) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n viewModel.inputValues[inputItem.itemId] = checked;\r\n }\r\n else {\r\n viewModel.inputValues[inputItem.itemId] = inputItem.defaultValue;\r\n }\r\n });\r\n return _this;\r\n }\r\n DynamicFormController.prototype.submit = function () {\r\n var _a, _b;\r\n this.formController.$submitted = true;\r\n if (this.formController.$invalid) {\r\n return;\r\n }\r\n var promise = (_b = (_a = this.$scope.viewModel).submitCallback) === null || _b === void 0 ? void 0 : _b.call(_a, this.$scope.viewModel.inputValues);\r\n // Watch for callback completion if applicable, to prevent double-submit\r\n if (!promise) {\r\n return null;\r\n }\r\n var promiseState = { pending: true };\r\n promise.finally(function () { return promiseState.pending = false; });\r\n return promiseState;\r\n };\r\n DynamicFormController.prototype.trustHtml = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n DynamicFormController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce\r\n ];\r\n return DynamicFormController;\r\n }(controllers.ControllerBase));\r\n controllers.DynamicFormController = DynamicFormController;\r\n angular.module(names.zbuyer.Application).directive(names.zbuyer.directives.DynamicForm, function () { return ({\r\n controller: DynamicFormController,\r\n restrict: 'E',\r\n transclude: true,\r\n scope: {\r\n viewModel: '=',\r\n },\r\n templateUrl: 'staticpages/directives/dynamicformdirective.html'\r\n }); });\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/educationleadsdirective.html';\r\n var EducationLeadsDirectiveController = /** @class */ (function (_super) {\r\n __extends(EducationLeadsDirectiveController, _super);\r\n function EducationLeadsDirectiveController($scope, $window, appConfiguration) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$window = $window;\r\n _this.appConfiguration = appConfiguration;\r\n _this.initializeEducationLeadsDirectiveController();\r\n return _this;\r\n }\r\n EducationLeadsDirectiveController.getDirective = function () {\r\n return {\r\n controller: EducationLeadsDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n track: '=',\r\n isModal: '@'\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n EducationLeadsDirectiveController.prototype.initializeEducationLeadsDirectiveController = function () {\r\n this.$scope.viewModel = {};\r\n this.$scope.viewModel.track = this.$scope.track;\r\n if (typeof this.$scope.isModal == 'string') {\r\n this.$scope.viewModel.isModal = true;\r\n }\r\n else {\r\n this.$scope.viewModel.isModal = false;\r\n }\r\n this.$scope.appConfiguration = this.appConfiguration;\r\n if (this.$scope.viewModel.track) {\r\n var self_1 = this;\r\n $.getJSON(\"\".concat(this.appConfiguration.baseUrl, \"Content/education-leads-detail.json\"), function (jsonData) {\r\n self_1.educationLeadsDetail = jsonData;\r\n });\r\n }\r\n this.setupBackgrounds();\r\n };\r\n EducationLeadsDirectiveController.prototype.goToTopic = function (topic) {\r\n this.$window.location.href = \"education/\".concat(topic);\r\n };\r\n EducationLeadsDirectiveController.prototype.openExampleImage = function (imageName, headerText) {\r\n var pathToImage = 'Content/Images/LeadExampleImages/' + imageName;\r\n var viewModel = {};\r\n viewModel.imagePathToEnlarge = pathToImage;\r\n viewModel.headerText = headerText;\r\n controllers.LeadExampleDetailModalController.loadModal(viewModel);\r\n };\r\n EducationLeadsDirectiveController.prototype.showDetail = function (detailId, topic) {\r\n this.fillDetail(detailId, topic);\r\n controllers.EducationModalController.showEducationModal(this.$scope.viewModel);\r\n };\r\n EducationLeadsDirectiveController.prototype.fillDetail = function (detailId, topic) {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.topic = topic;\r\n // Pull relevant HTML for track from the education-leads-detail (JSON data loaded in initialize)\r\n var trackDetails = viewModel.track == names.misc.SellersTrack ? this.educationLeadsDetail.sellers : this.educationLeadsDetail.buyers;\r\n viewModel.detail = trackDetails[detailId];\r\n };\r\n EducationLeadsDirectiveController.prototype.setupBackgrounds = function () {\r\n var options = { alignX: 0.5, alignY: 0.2, url: 'Content/Images/education-banner.jpg' };\r\n angular.element('.education-banner').backstretch([options]);\r\n };\r\n EducationLeadsDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Window,\r\n names.zbuyer.AppConfiguration\r\n ];\r\n return EducationLeadsDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.EducationLeads, EducationLeadsDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/educationmodal.html';\r\n var EducationModalController = /** @class */ (function (_super) {\r\n __extends(EducationModalController, _super);\r\n function EducationModalController($scope, $sce, $uibModalInstance, educationLeadsViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.initializeEducationModal(educationLeadsViewModel);\r\n _this.$uibModalInstance.rendered.then(function () {\r\n // Any initialization here\r\n });\r\n return _this;\r\n }\r\n EducationModalController.prototype.initializeEducationModal = function (educationLeadsViewModel) {\r\n this.$scope.viewModel = educationLeadsViewModel;\r\n };\r\n EducationModalController.prototype.closeModal = function () {\r\n this.$uibModalInstance.close(true);\r\n };\r\n EducationModalController.prototype.renderHtml = function () {\r\n return this.$sce.trustAsHtml(this.$scope.viewModel.detail);\r\n };\r\n EducationModalController.prototype.renderHtmlTopic = function () {\r\n return this.$sce.trustAsHtml(this.$scope.viewModel.topic);\r\n };\r\n EducationModalController.showEducationModal = function (educationLeadsViewModel) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModel = $injector.get(names.angular.UiBootstrapModal);\r\n return $uibModel.open({\r\n backdropClass: 'education-modal-backdrop',\r\n controller: names.zbuyer.controllers.EducationModalController,\r\n resolve: {\r\n educationLeadsViewModel: educationLeadsViewModel\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'education-modal'\r\n });\r\n };\r\n EducationModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.angular.UiBootstrapModalInstance,\r\n 'educationLeadsViewModel'\r\n ];\r\n return EducationModalController;\r\n }(controllers.ControllerBase));\r\n controllers.EducationModalController = EducationModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.EducationModalController, EducationModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var FilterMenuHeaderElement = '.filter-header';\r\n var FilterMenuSelectionsElement = '.selections';\r\n var FilterMenuWrapperElement = '.filter-menu-wrapper';\r\n var ModalDialogElement = '.modal-dialog';\r\n var ModalResizeWindowEvent = 'resize.filterModal';\r\n var OneHundredThousand = 100000;\r\n var OneMillion = 1000000;\r\n var OneThousand = 1000;\r\n var SearchButtonElement = '.search-button';\r\n var TemplateUrl = 'staticpages/modals/filtermodal.html';\r\n var TenThousand = 10000;\r\n var FilterModalController = /** @class */ (function (_super) {\r\n __extends(FilterModalController, _super);\r\n function FilterModalController($scope, $timeout, $uibModalInstance, $window, searchLeadsViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$timeout = $timeout;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.$window = $window;\r\n _this.searchLeadsViewModel = searchLeadsViewModel;\r\n _this.priceRangeSelectorMax = 10000000;\r\n _this.priceRangeSelectorMin = 10000;\r\n _this.priceRangeSelectorSetup = {\r\n max: _this.priceRangeSelectorMax,\r\n min: _this.priceRangeSelectorMin,\r\n options: {\r\n ceil: _this.priceRangeSelectorMax,\r\n floor: _this.priceRangeSelectorMin,\r\n onChange: function () {\r\n _this.syncPriceRangeSelector();\r\n },\r\n stepsArray: _this.setSelectorSteps(),\r\n translate: function (value) {\r\n return _this.numberToCurrencyShorthand(value);\r\n }\r\n }\r\n };\r\n _this.$scope.priceRangeSelector = _this.priceRangeSelectorSetup;\r\n _this.$scope.viewModel = searchLeadsViewModel;\r\n _this.$uibModalInstance.rendered.then(function () {\r\n _this.initializePriceNumberRange();\r\n _this.initializeModalResizing();\r\n });\r\n _this.$uibModalInstance.closed.then(function () {\r\n angular.element(window).off(ModalResizeWindowEvent);\r\n });\r\n return _this;\r\n }\r\n FilterModalController.showFilterModal = function (searchLeadsViewModel) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModel = $injector.get(names.angular.UiBootstrapModal);\r\n var modal = $uibModel.open({\r\n backdropClass: 'filter-modal-backdrop',\r\n controller: names.zbuyer.controllers.FilterModalController,\r\n resolve: {\r\n searchLeadsViewModel: searchLeadsViewModel\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'filter-modal'\r\n });\r\n return modal;\r\n };\r\n Object.defineProperty(FilterModalController.prototype, \"allFoldersSelected\", {\r\n get: function () {\r\n return this.$scope.viewModel.folders.every(function (folderOption) { return folderOption.selected; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FilterModalController.prototype, \"allReasonsSelected\", {\r\n get: function () {\r\n return this.$scope.viewModel.reasonsSelling.every(function (reasonOption) { return reasonOption.selected; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(FilterModalController.prototype, \"allTagsSelected\", {\r\n get: function () {\r\n return this.$scope.viewModel.leadTags.every(function (tagOption) { return tagOption.selected; });\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n FilterModalController.prototype.closeFilters = function (turnFiltersOn) {\r\n this.$uibModalInstance.close(turnFiltersOn);\r\n };\r\n FilterModalController.prototype.initializePriceNumberRange = function () {\r\n this.redrawPriceSelector();\r\n var viewModel = this.$scope.viewModel;\r\n // Fill default values\r\n var defaultMin = viewModel.appSettings.priceFilterDefaultBase;\r\n var defaultMax = viewModel.appSettings.priceFilterDefaultCap;\r\n var setMin = viewModel.priceRangeMin || defaultMin;\r\n var setMax = viewModel.priceRangeMax || defaultMax;\r\n this.setPriceSelectorRange(setMin, setMax);\r\n };\r\n FilterModalController.prototype.resetFilters = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.bathroomsMax = viewModel.appSettings.bathroomFilterDefaultCap;\r\n viewModel.bathroomsMin = viewModel.appSettings.bathroomFilterDefaultBase;\r\n viewModel.bedroomsMax = viewModel.appSettings.bedroomFilterDefaultCap;\r\n viewModel.bedroomsMin = viewModel.appSettings.bedroomFilterDefaultBase;\r\n viewModel.priceRangeMax = viewModel.appSettings.priceFilterDefaultCap;\r\n viewModel.priceRangeMin = viewModel.appSettings.priceFilterDefaultBase;\r\n this.resetSelectableItems(viewModel.leadTags);\r\n this.resetSelectableItems(viewModel.reasonsSelling);\r\n this.resetSelectableItems(viewModel.folders);\r\n viewModel.folders.filter(function (f) { return f.item.name == 'Unfiled'; }).forEach(function (item) { return item.selected = true; });\r\n viewModel.searchText = '';\r\n this.setPriceSelectorRange(viewModel.priceRangeMin, viewModel.priceRangeMax);\r\n };\r\n FilterModalController.prototype.search = function () {\r\n this.closeFilters(true);\r\n };\r\n FilterModalController.prototype.toggleFolder = function (folder) {\r\n folder.selected = !folder.selected;\r\n };\r\n FilterModalController.prototype.toggleFolders = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var allSelected = this.allFoldersSelected;\r\n // Select all if any are unselected, otherwise UNselect all\r\n viewModel.folders.forEach(function (folderOption) { return folderOption.selected = !allSelected; });\r\n };\r\n FilterModalController.prototype.toggleReasons = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var allSelected = this.allReasonsSelected;\r\n // Select all if any are unselected, otherwise UNselect all\r\n viewModel.reasonsSelling.forEach(function (reasonOption) { return reasonOption.selected = !allSelected; });\r\n };\r\n FilterModalController.prototype.toggleTags = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var allSelected = this.allTagsSelected;\r\n // Select all if any are unselected, otherwise UNselect all\r\n viewModel.leadTags.forEach(function (tagOption) { return tagOption.selected = !allSelected; });\r\n };\r\n FilterModalController.prototype.getNearestNumberFromArray = function (find, inArray) {\r\n return inArray.reduce(function (previousValue, currentValue) {\r\n return (Math.abs(currentValue - find) < Math.abs(previousValue - find) ? currentValue : previousValue);\r\n });\r\n };\r\n FilterModalController.prototype.initializeModalResizing = function () {\r\n var _this = this;\r\n this.$timeout(function () {\r\n _this.resizeModalContents();\r\n });\r\n angular.element(window).on(ModalResizeWindowEvent, (function () {\r\n _this.resizeModalContents();\r\n }));\r\n };\r\n /**\r\n * Formats a number value (e.g. 1000000 -> $1M, 50000 -> $50K)\r\n * @param value The number to format\r\n */\r\n FilterModalController.prototype.numberToCurrencyShorthand = function (value) {\r\n var base = value.toString();\r\n switch (true) {\r\n case (value === this.priceRangeSelectorMin):\r\n return 'No Min';\r\n case (value < TenThousand):\r\n base = base;\r\n break;\r\n case (value < OneMillion):\r\n base = \"\".concat((value / OneThousand).toString(), \"K\");\r\n break;\r\n case (value === this.priceRangeSelectorMax):\r\n return 'No Max';\r\n default:\r\n base = \"\".concat((value / OneMillion).toString(), \"M\");\r\n break;\r\n }\r\n return \"$\".concat(base);\r\n };\r\n FilterModalController.prototype.redrawPriceSelector = function () {\r\n this.$scope.$broadcast('reCalcViewDimensions');\r\n };\r\n FilterModalController.prototype.resizeModalContents = function () {\r\n var windowHeight = angular.element(window).height();\r\n var modalMarginTop = +angular.element(ModalDialogElement).css('margin-top').slice(0, -2);\r\n var modalMarginBottom = +angular.element(ModalDialogElement).css('margin-bottom').slice(0, -2);\r\n var modalContentPadding = +angular.element(FilterMenuWrapperElement).css('padding-top').slice(0, -2);\r\n var buttonHeight = angular.element(SearchButtonElement).outerHeight();\r\n var bottomMargin = 20 + modalMarginTop + modalContentPadding + modalMarginBottom + buttonHeight;\r\n var newSize = windowHeight - angular.element(FilterMenuHeaderElement).height() - bottomMargin;\r\n angular.element(FilterMenuSelectionsElement).height(newSize);\r\n };\r\n FilterModalController.prototype.resetSelectableItems = function (items) {\r\n items.forEach(function (item) { return item.selected = false; });\r\n };\r\n FilterModalController.prototype.setPriceSelectorRange = function (min, max) {\r\n var selector = this.$scope.priceRangeSelector;\r\n selector.min = this.getNearestNumberFromArray(min, selector.options.stepsArray);\r\n selector.max = this.getNearestNumberFromArray(max, selector.options.stepsArray);\r\n this.redrawPriceSelector();\r\n };\r\n FilterModalController.prototype.setSelectorSteps = function () {\r\n var steps = [this.priceRangeSelectorMin];\r\n var number = this.priceRangeSelectorMin;\r\n // This loop increments differently based on the size of the number\r\n // Numbers less than one million increment 10k\r\n // Numbers more than one million increment 100k\r\n while (number < this.priceRangeSelectorMax) {\r\n if (number >= OneMillion) {\r\n number += OneHundredThousand;\r\n }\r\n else {\r\n number += TenThousand;\r\n }\r\n steps.push(number);\r\n }\r\n return steps;\r\n };\r\n FilterModalController.prototype.syncPriceRangeSelector = function () {\r\n var selector = this.$scope.priceRangeSelector;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.priceRangeMin = selector.min;\r\n viewModel.priceRangeMax = selector.max;\r\n };\r\n FilterModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Timeout,\r\n names.angular.UiBootstrapModalInstance,\r\n names.angular.Window,\r\n 'searchLeadsViewModel'\r\n ];\r\n return FilterModalController;\r\n }(controllers.ControllerBase));\r\n controllers.FilterModalController = FilterModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.FilterModalController, FilterModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var ForgotPasswordController = /** @class */ (function (_super) {\r\n __extends(ForgotPasswordController, _super);\r\n function ForgotPasswordController($q, $scope, accountService, generalApiService, notificationService, spinWaitService, vcRecaptchaService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$q = $q;\r\n _this.$scope = $scope;\r\n _this.accountService = accountService;\r\n _this.generalApiService = generalApiService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.vcRecaptchaService = vcRecaptchaService;\r\n _this.initialize();\r\n return _this;\r\n }\r\n ForgotPasswordController.prototype.initialize = function () {\r\n this.$scope.viewModel = {};\r\n this.$scope.viewModel.forgotPasswordEmail = '';\r\n };\r\n ForgotPasswordController.prototype.validateRecaptchaAndSend = function () {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n var recaptchaKey = this.$scope.viewModel.recaptchaResponse;\r\n if (typeof recaptchaKey === 'undefined' || recaptchaKey == '') {\r\n this.notificationService.error(zbuyer.messages.RecaptchaIsBlank, zbuyer.messages.RecaptchaError);\r\n return deferred.promise;\r\n }\r\n var validating = this.generalApiService.validateRecaptcha(recaptchaKey).then(function (response) {\r\n if (response.success) {\r\n _this.spinWaitService.unblock('validate-recaptcha');\r\n _this.sendForgotPasswordEmail();\r\n }\r\n else {\r\n _this.notificationService.error(zbuyer.messages.RecaptchaRejected, zbuyer.messages.RecaptchaError);\r\n deferred.reject(zbuyer.messages.RecaptchaError);\r\n }\r\n }).catch(function () {\r\n _this.notificationService.error(zbuyer.messages.ApiCommunicationError, zbuyer.messages.ApplicationTitle);\r\n deferred.reject(zbuyer.messages.ApiCommunicationError);\r\n });\r\n this.spinWaitService.blockDuring(validating, 'validate-recaptcha');\r\n return deferred.promise;\r\n };\r\n ForgotPasswordController.prototype.sendForgotPasswordEmail = function () {\r\n var _this = this;\r\n var sendForgotPasswordEmailRequest = {\r\n email: this.$scope.viewModel.forgotPasswordEmail\r\n };\r\n var sendingForgotPasswordEmail = this.accountService.sendForgotPasswordEmail(sendForgotPasswordEmailRequest).then(function (success) {\r\n if (success) {\r\n _this.notificationService.success(zbuyer.messages.ForgotPasswordSuccess, 'Check Your Email');\r\n _this.$scope.viewModel.forgotPasswordEmail = \"\";\r\n }\r\n else {\r\n _this.notificationService.error(zbuyer.messages.ForgotPasswordFailed, 'Error');\r\n }\r\n return success;\r\n }).finally(function () {\r\n _this.vcRecaptchaService.reload();\r\n });\r\n this.spinWaitService.blockDuring(sendingForgotPasswordEmail, 'reset-password');\r\n return sendingForgotPasswordEmail;\r\n };\r\n ForgotPasswordController.$inject = [\r\n names.angular.Q,\r\n names.angular.Scope,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.GeneralApiService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService,\r\n names.zbuyer.services.VcRecaptchaService\r\n ];\r\n return ForgotPasswordController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.ForgotPasswordController, ForgotPasswordController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var LocationSearchViewModel = /** @class */ (function () {\r\n function LocationSearchViewModel(location, asCityInCounty) {\r\n if (asCityInCounty === void 0) { asCityInCounty = false; }\r\n this.location = location;\r\n this.asCityInCounty = asCityInCounty;\r\n if (!this.location.zip && !this.location.city) {\r\n this.text = \"\".concat(this.location.county, \" County, \").concat(this.location.state);\r\n }\r\n else if (this.asCityInCounty) {\r\n this.text = \"\".concat(this.location.city, \", \").concat(this.location.state);\r\n }\r\n else {\r\n var cityLabel = \"\".concat(this.location.city, \", \").concat(this.location.state, \" (\").concat(this.location.county, \")\");\r\n this.text = this.location.zip ? \"\".concat(this.location.zip, \" - \").concat(cityLabel) : cityLabel;\r\n }\r\n }\r\n return LocationSearchViewModel;\r\n }());\r\n var PreviewFilterMenuWrapperElement = '.preview-filter-menu-wrapper';\r\n var FilterMenuHeaderElement = '.filter-header';\r\n var FilterMenuSelectionsElement = '.selections';\r\n var ModalDialogElement = '.modal-dialog';\r\n var ModalResizeWindowEvent = 'resize.filterModal';\r\n var OneHundredThousand = 100000;\r\n var OneMillion = 1000000;\r\n var OneThousand = 1000;\r\n var SearchButtonElement = '.search-button';\r\n var TemplateUrl = 'StaticPages/Modals/PreviewFilterModal.html';\r\n var TenThousand = 10000;\r\n var IsNumericText = function (n) { return !isNaN(+n); };\r\n var PreviewFilterModalController = /** @class */ (function (_super) {\r\n __extends(PreviewFilterModalController, _super);\r\n function PreviewFilterModalController($scope, $q, $timeout, $uibModalInstance, leadPreviewService, notificationService, leadPreviewsViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.leadPreviewService = leadPreviewService;\r\n _this.notificationService = notificationService;\r\n _this.leadPreviewsViewModel = leadPreviewsViewModel;\r\n _this.priceRangeSelectorMax = 10000000;\r\n _this.priceRangeSelectorMin = 10000;\r\n _this.priceRangeSelectorSetup = {\r\n max: _this.priceRangeSelectorMax,\r\n min: _this.priceRangeSelectorMin,\r\n options: {\r\n ceil: _this.priceRangeSelectorMax,\r\n floor: _this.priceRangeSelectorMin,\r\n onChange: function () {\r\n _this.syncPriceRangeSelector();\r\n },\r\n stepsArray: _this.setSelectorSteps(),\r\n translate: function (value) {\r\n return _this.numberToCurrencyShorthand(value);\r\n }\r\n }\r\n };\r\n _this.$scope.priceRangeSelector = _this.priceRangeSelectorSetup;\r\n _this.$scope.viewModel = leadPreviewsViewModel;\r\n _this.$uibModalInstance.rendered.then(function () {\r\n _this.initializeLocations();\r\n _this.initializePriceNumberRange();\r\n });\r\n _this.$uibModalInstance.closed.then(function () {\r\n angular.element(window).off(ModalResizeWindowEvent);\r\n });\r\n return _this;\r\n }\r\n PreviewFilterModalController.showPreviewFilterModal = function (leadPreviewsViewModel) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModel = $injector.get(names.angular.UiBootstrapModal);\r\n var modal = $uibModel.open({\r\n backdropClass: 'preview-filter-modal-backdrop',\r\n controller: names.zbuyer.controllers.PreviewFilterModalController,\r\n resolve: {\r\n leadPreviewsViewModel: leadPreviewsViewModel\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'preview-filter-modal'\r\n });\r\n return modal;\r\n };\r\n PreviewFilterModalController.prototype.initializeLocations = function () {\r\n // Prep location lists at various levels for easy use in auto-complete lists and as final leads-search parameters.\r\n var _this = this;\r\n // Used in two of the three lists\r\n var countyModels;\r\n // Will be re-used for 2 different variations of model\r\n var cityLocations;\r\n var hasErrors = false;\r\n var gotZipModels = this.leadPreviewService.getSubscribedLocations('zip')\r\n .then(function (locations) { return _this.$scope.zipLocations = locations\r\n .sort(function (a, b) { return a.zip.localeCompare(b.zip); })\r\n .map(function (zipLoc) { return new LocationSearchViewModel(zipLoc); }); })\r\n .catch(function (err) {\r\n hasErrors = true;\r\n _this.$scope.zipLocations = [];\r\n _this.handleError(err);\r\n });\r\n var gotRawCityLocations = this.leadPreviewService.getSubscribedLocations('city')\r\n .then(function (locations) {\r\n cityLocations = locations\r\n .sort(function (a, b) {\r\n var countyCompare = a.county.localeCompare(b.county);\r\n return (countyCompare ? countyCompare : a.city.localeCompare(b.city));\r\n });\r\n })\r\n .catch(function (err) {\r\n hasErrors = true;\r\n cityLocations = [];\r\n _this.handleError(err);\r\n });\r\n var gotCountyModels = this.leadPreviewService.getSubscribedLocations('county')\r\n .then(function (locations) { return countyModels = locations\r\n .sort(function (a, b) { return a.county.localeCompare(b.county); })\r\n .map(function (loc) { return new LocationSearchViewModel(loc); }); })\r\n .catch(function (err) {\r\n hasErrors = true;\r\n countyModels = [];\r\n _this.handleError(err);\r\n });\r\n // Notify of any failures collectively (we'll still use what we can for dropdowns)\r\n this.$q.all([gotCountyModels, gotRawCityLocations, gotZipModels])\r\n .finally(function () {\r\n if (hasErrors) {\r\n _this.handleError('Location search may not work properly due to errors retrieving your subscribed locations.');\r\n }\r\n // Massage results into pre-sorted auto-suggest lists:\r\n // 1. Zip-based autosuggest (already set above, nothing to massage from there)\r\n // 2. Combine cities and counties in alpha order for and 3+char autosuggestion list\r\n _this.$scope.mixedLocations = __spreadArray(__spreadArray([], cityLocations.map(function (loc) { return new LocationSearchViewModel(loc); }), true), countyModels, true).sort(function (a, b) { return a.text.localeCompare(b.text); });\r\n // 3. State-based autosuggest with counties followed by their cities.\r\n var stateLocationModels = [];\r\n countyModels.forEach(function (countyModel) {\r\n var cityModelsUnderCounty = cityLocations\r\n .filter(function (cityLoc) { return cityLoc.county === countyModel.location.county && cityLoc.state === countyModel.location.state; })\r\n .map(function (cityLoc) { return new LocationSearchViewModel(cityLoc, true); });\r\n stateLocationModels.push(countyModel);\r\n stateLocationModels.push.apply(stateLocationModels, cityModelsUnderCounty);\r\n });\r\n _this.$scope.stateLocations = stateLocationModels;\r\n // Restore the selected location based on the view model properties\r\n var selectedLocation = _this.$scope.mixedLocations.find(function (loc) {\r\n return loc.location.city === _this.$scope.viewModel.locationCity &&\r\n loc.location.state === _this.$scope.viewModel.locationState &&\r\n loc.location.zip === _this.$scope.viewModel.locationZip &&\r\n loc.location.county === _this.$scope.viewModel.locationCounty;\r\n });\r\n if (selectedLocation) {\r\n _this.$scope.selectedLocation = selectedLocation;\r\n _this.$scope.locationSearchText = selectedLocation.text;\r\n }\r\n });\r\n };\r\n PreviewFilterModalController.prototype.closeFilters = function (turnFiltersOn) {\r\n this.$uibModalInstance.close(this.$scope.viewModel);\r\n };\r\n PreviewFilterModalController.prototype.initializePriceNumberRange = function () {\r\n this.redrawPriceSelector();\r\n var viewModel = this.$scope.viewModel;\r\n var setMin = viewModel.priceRangeMin || this.priceRangeSelectorMin;\r\n var setMax = viewModel.priceRangeMax || this.priceRangeSelectorMax;\r\n var setMin = viewModel.priceRangeMin;\r\n var setMax = viewModel.priceRangeMax;\r\n this.setPriceSelectorRange(setMin, setMax);\r\n };\r\n PreviewFilterModalController.prototype.resetFilters = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var settings = this.leadPreviewsViewModel.appSettings;\r\n viewModel.bathroomsMax = settings.bathroomFilterDefaultCap;\r\n viewModel.bathroomsMin = settings.bathroomFilterDefaultBase;\r\n viewModel.bedroomsMax = settings.bedroomFilterDefaultCap;\r\n viewModel.bedroomsMin = settings.bedroomFilterDefaultBase;\r\n viewModel.priceRangeMax = settings.priceFilterDefaultCap;\r\n viewModel.priceRangeMin = settings.priceFilterDefaultBase;\r\n viewModel.includeUnknownBathrooms = true;\r\n viewModel.includeUnknownBedrooms = true;\r\n viewModel.includeUnknownPrice = true;\r\n viewModel.locationState = null;\r\n viewModel.locationCounty = null;\r\n viewModel.locationCity = null;\r\n viewModel.locationZip = null;\r\n viewModel.searchText = null;\r\n viewModel.includeBuyers = true;\r\n viewModel.includeSellers = true;\r\n viewModel.leadType = 'Buyer & Seller';\r\n this.$scope.locationSearchText = \"\";\r\n this.setPriceSelectorRange(viewModel.priceRangeMin, viewModel.priceRangeMax);\r\n };\r\n PreviewFilterModalController.prototype.search = function () {\r\n this.closeFilters(true);\r\n };\r\n PreviewFilterModalController.prototype.searchLocations = function (searchText) {\r\n if (!searchText || !searchText.length) {\r\n return this.$scope.mixedLocations;\r\n }\r\n // Number search => search zips\r\n if (IsNumericText(searchText)) {\r\n return this.$scope.zipLocations\r\n .filter(function (zipLocation) { return zipLocation.location.zip.startsWith(searchText); });\r\n }\r\n // 2 letters: Match by STATE: Show each county with its cities under it\r\n if (searchText.length == 2) {\r\n var stateQuery = searchText.toUpperCase();\r\n var stateResults = this.$scope.stateLocations.filter(function (stateLoc) { return stateLoc.location.state == stateQuery; });\r\n if (stateResults.length) {\r\n return stateResults;\r\n }\r\n }\r\n // Default general search matching city or county\r\n searchText = searchText.toLowerCase();\r\n var mixedMatches = this.$scope.mixedLocations.filter(function (loc) {\r\n var _a;\r\n var name = ((_a = loc.location.city) !== null && _a !== void 0 ? _a : loc.location.county).toLowerCase();\r\n return name.includes(searchText);\r\n });\r\n // Show \"starting\" matches first (vs \"containing\" matches), and alpha-sort from there\r\n return mixedMatches.sort(function (a, b) {\r\n var aStarts = a.text.toLowerCase().startsWith(searchText);\r\n if (aStarts != b.text.toLowerCase().startsWith(searchText)) {\r\n return aStarts ? -1 : 1;\r\n }\r\n return a.text.localeCompare(b.text);\r\n });\r\n };\r\n PreviewFilterModalController.prototype.onSelectedLocationChange = function (selectedLocation) {\r\n var _a, _b, _c, _d;\r\n this.$scope.viewModel.locationCity = (_a = selectedLocation === null || selectedLocation === void 0 ? void 0 : selectedLocation.location) === null || _a === void 0 ? void 0 : _a.city;\r\n this.$scope.viewModel.locationState = (_b = selectedLocation === null || selectedLocation === void 0 ? void 0 : selectedLocation.location) === null || _b === void 0 ? void 0 : _b.state;\r\n this.$scope.viewModel.locationZip = (_c = selectedLocation === null || selectedLocation === void 0 ? void 0 : selectedLocation.location) === null || _c === void 0 ? void 0 : _c.zip;\r\n this.$scope.viewModel.locationCounty = (_d = selectedLocation === null || selectedLocation === void 0 ? void 0 : selectedLocation.location) === null || _d === void 0 ? void 0 : _d.county;\r\n };\r\n PreviewFilterModalController.prototype.getNearestNumberFromArray = function (find, inArray) {\r\n return inArray.reduce(function (previousValue, currentValue) {\r\n return (Math.abs(currentValue - find) < Math.abs(previousValue - find) ? currentValue : previousValue);\r\n });\r\n };\r\n PreviewFilterModalController.prototype.handleError = function (thrownError) {\r\n if (thrownError === void 0) { thrownError = null; }\r\n if (typeof thrownError == 'string') {\r\n this.notificationService.error(thrownError);\r\n }\r\n else {\r\n this.notificationService.error('An unexpected error has occurred.');\r\n console.error(thrownError);\r\n }\r\n };\r\n /**\r\n * Formats a number value (e.g. 1000000 -> $1M, 50000 -> $50K)\r\n * @param value The number to format\r\n */\r\n PreviewFilterModalController.prototype.numberToCurrencyShorthand = function (value) {\r\n var base = value.toString();\r\n switch (true) {\r\n case (value === this.priceRangeSelectorMin):\r\n return 'No Min';\r\n case (value < TenThousand):\r\n base = base;\r\n break;\r\n case (value < OneMillion):\r\n base = \"\".concat((value / OneThousand).toString(), \"K\");\r\n break;\r\n case (value === this.priceRangeSelectorMax):\r\n return 'No Max';\r\n default:\r\n base = \"\".concat((value / OneMillion).toString(), \"M\");\r\n break;\r\n }\r\n return \"$\".concat(base);\r\n };\r\n PreviewFilterModalController.prototype.redrawPriceSelector = function () {\r\n this.$scope.$broadcast('reCalcViewDimensions');\r\n };\r\n PreviewFilterModalController.prototype.setPriceSelectorRange = function (min, max) {\r\n var selector = this.$scope.priceRangeSelector;\r\n selector.min = this.getNearestNumberFromArray(min, selector.options.stepsArray);\r\n selector.max = this.getNearestNumberFromArray(max, selector.options.stepsArray);\r\n this.redrawPriceSelector();\r\n };\r\n PreviewFilterModalController.prototype.setSelectorSteps = function () {\r\n var steps = [this.priceRangeSelectorMin];\r\n var number = this.priceRangeSelectorMin;\r\n // This loop increments differently based on the size of the number\r\n // Numbers less than one million increment 10k\r\n // Numbers more than one million increment 100k\r\n while (number < this.priceRangeSelectorMax) {\r\n if (number >= OneMillion) {\r\n number += OneHundredThousand;\r\n }\r\n else {\r\n number += TenThousand;\r\n }\r\n steps.push(number);\r\n }\r\n return steps;\r\n };\r\n PreviewFilterModalController.prototype.syncPriceRangeSelector = function () {\r\n var selector = this.$scope.priceRangeSelector;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.priceRangeMin = selector.min;\r\n viewModel.priceRangeMax = selector.max;\r\n };\r\n PreviewFilterModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.Timeout,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.LeadPreviewService,\r\n names.zbuyer.services.NotificationService,\r\n 'leadPreviewsViewModel'\r\n ];\r\n return PreviewFilterModalController;\r\n }(controllers.ControllerBase));\r\n controllers.PreviewFilterModalController = PreviewFilterModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.PreviewFilterModalController, PreviewFilterModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/greetingdirective.html';\r\n var GreetingDirectiveController = /** @class */ (function (_super) {\r\n __extends(GreetingDirectiveController, _super);\r\n function GreetingDirectiveController($scope, appConfiguration) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.appConfiguration = appConfiguration;\r\n _this.initializeGreetingDirective();\r\n return _this;\r\n }\r\n GreetingDirectiveController.getDirective = function () {\r\n return {\r\n controller: GreetingDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n signup: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n GreetingDirectiveController.prototype.initializeGreetingDirective = function () {\r\n this.setGreeting();\r\n };\r\n GreetingDirectiveController.prototype.setGreeting = function () {\r\n var background = 'Login';\r\n var greeting = 'Good ';\r\n var morning = 'Morning';\r\n var afternoon = 'Afternoon';\r\n var evening = 'Evening';\r\n var hours = (new Date()).getHours();\r\n switch (true) {\r\n case (hours < 12):\r\n background += morning;\r\n greeting += morning;\r\n break;\r\n case (hours < 17):\r\n background += afternoon;\r\n greeting += afternoon;\r\n break;\r\n case (hours < 20):\r\n background += 'Early' + evening;\r\n greeting += evening;\r\n break;\r\n default:\r\n background += 'Late' + evening;\r\n greeting += evening;\r\n break;\r\n }\r\n angular.element('.greeting-holder').backstretch([this.appConfiguration.baseUrl + 'Content/Images/' + background + '.jpg']);\r\n this.$scope.greeting = this.$scope.signup ? 'Create an account' : greeting;\r\n };\r\n GreetingDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.zbuyer.AppConfiguration\r\n ];\r\n return GreetingDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.Greeting, GreetingDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/hamburgermenudirective.html';\r\n var HamburgerMenuDirectiveController = /** @class */ (function (_super) {\r\n __extends(HamburgerMenuDirectiveController, _super);\r\n function HamburgerMenuDirectiveController($scope, $window, authenticationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$window = $window;\r\n _this.authenticationService = authenticationService;\r\n _this.initializeViewModel();\r\n return _this;\r\n }\r\n HamburgerMenuDirectiveController.getDirective = function () {\r\n return {\r\n controller: HamburgerMenuDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n canProspect: '=',\r\n canPreview: '=',\r\n showMoreMenuCallback: '&onShowMore',\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n HamburgerMenuDirectiveController.prototype.checkLogin = function () {\r\n var authHeader = this.authenticationService.getAuthenticationHeader();\r\n if (authHeader !== '') {\r\n this.$scope.viewModel.loggedIntoAccount = true;\r\n this.$scope.viewModel.loginButtonText = 'Log Out';\r\n }\r\n else {\r\n this.$scope.viewModel.loggedIntoAccount = false;\r\n this.$scope.viewModel.loginButtonText = 'Log In';\r\n }\r\n };\r\n HamburgerMenuDirectiveController.prototype.initializeViewModel = function () {\r\n this.$scope.viewModel = {};\r\n this.checkLogin();\r\n };\r\n HamburgerMenuDirectiveController.prototype.logOut = function () {\r\n this.authenticationService.logout();\r\n };\r\n HamburgerMenuDirectiveController.prototype.logIn = function () {\r\n this.$window.location.href = 'account/login';\r\n };\r\n HamburgerMenuDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Window,\r\n names.zbuyer.services.AuthenticationService\r\n ];\r\n return HamburgerMenuDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.HamburgerMenu, HamburgerMenuDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var LandingController = /** @class */ (function (_super) {\r\n __extends(LandingController, _super);\r\n function LandingController($scope, $sce, $location, $timeout, $window, appConfiguration, accountService, messageService, authenticationService, complianceService, notificationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$location = $location;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.appConfiguration = appConfiguration;\r\n _this.accountService = accountService;\r\n _this.messageService = messageService;\r\n _this.authenticationService = authenticationService;\r\n _this.complianceService = complianceService;\r\n _this.notificationService = notificationService;\r\n _this.DelayForRedirectOnFail = 3000;\r\n _this.initialize();\r\n return _this;\r\n }\r\n LandingController.prototype.initialize = function () {\r\n var _this = this;\r\n var returnUrlParameter = this.$location.search()[names.zbuyer.queryparameters.ReturnUrl];\r\n this.redirectUrl = new URL('/', this.appConfiguration.baseUrl);\r\n if (returnUrlParameter) {\r\n this.redirectUrl.pathname = returnUrlParameter;\r\n }\r\n var viewModel = {};\r\n this.$scope.viewModel = viewModel;\r\n // Ensure authorization before getting started (otherwise back to login)\r\n this.authenticationService.getInitialAuthPromise().then(function (isAuthenticated) {\r\n if (!isAuthenticated) {\r\n // Not even logged in! Just directly send back to login (carrying over returnURL if we have one)\r\n _this.redirectUrl.pathname = 'account/login';\r\n if (returnUrlParameter) {\r\n _this.redirectUrl.searchParams.set(names.zbuyer.queryparameters.ReturnUrl, returnUrlParameter);\r\n }\r\n _this.redirect();\r\n return;\r\n }\r\n return _this.accountService.getAccountProfile().then(function (response) {\r\n viewModel.account = response.account;\r\n if (!returnUrlParameter) {\r\n // No particular redirect path unless user has not set up a subscription yet\r\n if (!viewModel.account.subscription) {\r\n _this.redirectUrl.pathname = 'account/subscription';\r\n }\r\n }\r\n _this.checkNextAccountMessage();\r\n }).catch(function (reason) {\r\n _this.notificationService.error(zbuyer.messages.AccountInfoError);\r\n // Couldn't do anything with account info - move on after error presented (and don't bother checking for messages)\r\n _this.$timeout(function () { return _this.redirect(); }, _this.DelayForRedirectOnFail);\r\n });\r\n });\r\n };\r\n LandingController.prototype.submitResponse = function (actionButtonText) {\r\n var _this = this;\r\n var formViewModel = this.$scope.viewModel.formViewModel;\r\n formViewModel.formController.$submitted = true;\r\n if (formViewModel.formController.$invalid) {\r\n return;\r\n }\r\n this.messageService.recordAction(this.$scope.viewModel.accountMessage.accountMessageId, actionButtonText, formViewModel.inputValues).then(function (response) {\r\n if (!response.success) {\r\n console.debug(response.internalDebugInfo);\r\n _this.notificationService.error(response.errorMessageToDisplay);\r\n }\r\n }).catch(function (err) {\r\n console.error(err);\r\n _this.notificationService.error('Unknown error with response');\r\n }).finally(function () {\r\n _this.checkNextAccountMessage();\r\n });\r\n };\r\n LandingController.prototype.checkNextAccountMessage = function () {\r\n var _this = this;\r\n var _a;\r\n var viewModel = this.$scope.viewModel;\r\n var lastAccountMessageId = (_a = viewModel.accountMessage) === null || _a === void 0 ? void 0 : _a.accountMessageId;\r\n viewModel.accountMessage = null;\r\n viewModel.formViewModel = null;\r\n viewModel.awaitingFormCertification = true;\r\n return this.messageService.get(this.$location.absUrl()).then(function (response) {\r\n console.debug('Got account message', response);\r\n if (!(response === null || response === void 0 ? void 0 : response.success)) {\r\n console.debug(response.internalDebugInfo);\r\n _this.notificationService.error(response.errorMessageToDisplay);\r\n console.debug('Delay and redirect after GET account-message not successful');\r\n return _this.$timeout(_this.DelayForRedirectOnFail).then(function () { return false; });\r\n }\r\n if (!response.haveAccountMessage) {\r\n // Normal \"done\" state -- will redirect\r\n return false;\r\n }\r\n if (lastAccountMessageId) {\r\n // If message ID has been seen before then the last user action must have failed\r\n // (or in any case the message cycle is not advancing)\r\n if (response.accountMessageId == lastAccountMessageId) {\r\n _this.notificationService.error('Unable to advance to next account message');\r\n console.debug('Delay and redirect after account-message failing to advance');\r\n return _this.$timeout(_this.DelayForRedirectOnFail).then(function () { return false; });\r\n }\r\n }\r\n // Content for dynamic-form element\r\n viewModel.formViewModel = {\r\n title: response.messageTitle,\r\n inputFormItems: response.inputFormItems,\r\n showSubmitButton: false\r\n };\r\n viewModel.awaitingFormCertification = true;\r\n viewModel.accountMessage = response;\r\n _this.complianceService.applyTrustedFormCertification(names.zbuyer.compliance.AccountMessage, viewModel.accountMessage.accountMessageId).finally(function () {\r\n viewModel.awaitingFormCertification = false;\r\n });\r\n return true;\r\n }).catch(function (err) {\r\n console.error(err);\r\n _this.notificationService.error('Unable to process account messages');\r\n return _this.$timeout(_this.DelayForRedirectOnFail).then(function () { return false; });\r\n }).then(function (haveNewMessage) {\r\n if (!haveNewMessage) {\r\n _this.redirect();\r\n }\r\n return haveNewMessage;\r\n });\r\n };\r\n LandingController.prototype.logOut = function () {\r\n this.authenticationService.logout();\r\n };\r\n LandingController.prototype.redirect = function () {\r\n this.$window.location.href = this.redirectUrl.href;\r\n };\r\n LandingController.prototype.trustHtml = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n LandingController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.angular.Location,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.AppConfiguration,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.AccountMessageService,\r\n names.zbuyer.services.AuthenticationService,\r\n names.zbuyer.services.ComplianceService,\r\n names.zbuyer.services.NotificationService\r\n ];\r\n return LandingController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.LandingController, LandingController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/leadexampledetailmodal.html';\r\n var LeadExampleDetailModalController = /** @class */ (function (_super) {\r\n __extends(LeadExampleDetailModalController, _super);\r\n function LeadExampleDetailModalController($scope, $uibModalInstance, modalService, leadExampleDetailViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.modalService = modalService;\r\n _this.leadExampleDetailViewModel = leadExampleDetailViewModel;\r\n $scope.viewModel = leadExampleDetailViewModel;\r\n _this.$uibModalInstance.rendered.then(function () {\r\n // Any initialization here\r\n });\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n return _this;\r\n }\r\n LeadExampleDetailModalController.loadModal = function (leadExampleDetailViewModel) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModel = $injector.get(names.angular.UiBootstrapModal);\r\n var modal = $uibModel.open({\r\n controller: names.zbuyer.controllers.LeadExampleDetailModalController,\r\n resolve: {\r\n leadExampleDetailViewModel: leadExampleDetailViewModel\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'lead-example-modal'\r\n });\r\n return modal;\r\n };\r\n LeadExampleDetailModalController.prototype.back = function () {\r\n this.$uibModalInstance.close();\r\n };\r\n LeadExampleDetailModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.ModalService,\r\n 'leadExampleDetailViewModel'\r\n ];\r\n return LeadExampleDetailModalController;\r\n }(controllers.ControllerBase));\r\n controllers.LeadExampleDetailModalController = LeadExampleDetailModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.LeadExampleDetailModalController, LeadExampleDetailModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/leaddetaildirective.html';\r\n var LeadDetailDirectiveController = /** @class */ (function (_super) {\r\n __extends(LeadDetailDirectiveController, _super);\r\n function LeadDetailDirectiveController($scope, $sce, $compile, $location, $q, $timeout, appConfiguration, authenticationService, leadPhoneNumberService, leadsService, notificationService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$compile = $compile;\r\n _this.$location = $location;\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.appConfiguration = appConfiguration;\r\n _this.authenticationService = authenticationService;\r\n _this.leadPhoneNumberService = leadPhoneNumberService;\r\n _this.leadsService = leadsService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.notesUpdatingTimeout = null;\r\n _this.notesUpdatingWaitTime = 750;\r\n _this.phoneUnavailable = 'Unavailable';\r\n _this.initializeLeadDetailDirectiveController();\r\n return _this;\r\n }\r\n LeadDetailDirectiveController.prototype.initializeLeadDetailDirectiveController = function () {\r\n if (!this.$scope.viewModel) {\r\n this.$scope.viewModel = {};\r\n }\r\n if (this.$scope.viewModel.id) {\r\n this.fillLeadDetail(this.$scope.viewModel);\r\n }\r\n if (!this.$scope.printable) {\r\n this.initializeWatches();\r\n }\r\n };\r\n LeadDetailDirectiveController.getDirective = function () {\r\n return {\r\n controller: LeadDetailDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n closeLeadCallback: '&onCloseLead',\r\n loading: '=',\r\n openMoreMenuCallback: '&onOpenMoreMenu',\r\n prospectingComplianceCallback: '&onOpenProspectingCompliance',\r\n printable: '=',\r\n viewModel: '=',\r\n googleApiKey: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n LeadDetailDirectiveController.prototype.checkProspectingUnlockFlag = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.isProspecting && viewModel.contactInfo.isProspectingCompliant == false) {\r\n // For link-triggered unlock of prospecting phones from mobile apps\r\n if (viewModel.phoneStatus == 'Hide') {\r\n // NOTE: Glitchy workaround of us not actually sending enum value for PhoneStatus\r\n var unlockPhonesFlag = this.$location.search()[names.zbuyer.queryparameters.UnlockPhones];\r\n if (unlockPhonesFlag) {\r\n // Let angular continue building the main view before popping up the prospecting agreement\r\n this.$timeout(function () {\r\n _this.showProspectingAgreement();\r\n }, 1);\r\n }\r\n }\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.createGoogleMap = function () {\r\n var deferred = this.$q.defer();\r\n var mapElement = angular.element('#map');\r\n var mapCenter = new google.maps.LatLng(this.$scope.viewModel.latitude, this.$scope.viewModel.longitude);\r\n var mapOptions = {\r\n center: mapCenter,\r\n zoom: 13\r\n };\r\n if (this.$scope.printable === true) {\r\n mapOptions.fullscreenControl = false;\r\n mapOptions.mapTypeControl = false;\r\n mapOptions.panControl = false;\r\n mapOptions.rotateControl = false;\r\n mapOptions.scaleControl = false;\r\n mapOptions.streetViewControl = false;\r\n mapOptions.zoomControl = false;\r\n }\r\n var map = new google.maps.Map(mapElement[0], mapOptions);\r\n map.addListener('tilesloaded', function () {\r\n deferred.resolve();\r\n });\r\n var markerTitle = this.$scope.viewModel.fullAddress;\r\n var marker = new google.maps.Marker({\r\n position: mapCenter,\r\n map: map,\r\n title: markerTitle\r\n });\r\n // Limit time for event to signal maps drawn (may not be fired in print render)\r\n return this.$q.race([deferred.promise, this.$timeout(1500)]);\r\n };\r\n LeadDetailDirectiveController.prototype.createStreetView = function () {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n var streetElement = angular.element('#street');\r\n streetElement[0].innerHTML = '';\r\n var targetLatLng = new google.maps.LatLng(this.$scope.viewModel.latitude, this.$scope.viewModel.longitude);\r\n var panoramaOptions = {\r\n position: targetLatLng,\r\n pov: {\r\n heading: 0,\r\n pitch: 0\r\n },\r\n zoom: 0\r\n };\r\n if (this.$scope.printable === true) {\r\n panoramaOptions.addressControl = false;\r\n panoramaOptions.clickToGo = false;\r\n panoramaOptions.imageDateControl = false;\r\n panoramaOptions.fullscreenControl = false;\r\n panoramaOptions.linksControl = false;\r\n panoramaOptions.motionTrackingControl = false;\r\n panoramaOptions.panControl = false;\r\n panoramaOptions.zoomControl = false;\r\n panoramaOptions.scrollwheel = false;\r\n }\r\n var streetPanorama = new google.maps.StreetViewPanorama(streetElement[0], panoramaOptions);\r\n streetPanorama.addListener('pano_changed', function () {\r\n var heading = google.maps.geometry.spherical.computeHeading(streetPanorama.getLocation().latLng, targetLatLng);\r\n streetPanorama.setPov({\r\n heading: heading,\r\n pitch: 0\r\n });\r\n });\r\n streetPanorama.addListener('pov_changed', function () {\r\n google.maps.event.trigger(streetPanorama, 'resize');\r\n });\r\n streetPanorama.addListener('links_changed', function () {\r\n // NOTE: Doesn't guarantee streetview is ready, but generally is last event to fire\r\n deferred.resolve();\r\n });\r\n // Allow some time beyond the links_changed event for streetview to render\r\n return deferred.promise.then(function () { return _this.$timeout(1500); });\r\n };\r\n LeadDetailDirectiveController.prototype.debounceSaveUpdates = function (newVal, oldVal) {\r\n var _this = this;\r\n if (newVal != oldVal) {\r\n if (this.notesUpdatingTimeout) {\r\n this.$timeout.cancel(this.notesUpdatingTimeout);\r\n }\r\n this.notesUpdatingTimeout = this.$timeout(function () {\r\n _this.saveUpdates();\r\n }, this.notesUpdatingWaitTime);\r\n }\r\n };\r\n ;\r\n LeadDetailDirectiveController.prototype.emailLead = function () {\r\n if (this.$scope.viewModel.contactInfo.email != null) {\r\n window.location.href = \"mailto: \".concat(this.$scope.viewModel.contactInfo.email);\r\n }\r\n else {\r\n this.notificationService.info('There is no email address in the database.', zbuyer.messages.ApplicationTitle);\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.fillLeadDetail = function (leadDetail) {\r\n var _this = this;\r\n this.setupActivityActions(leadDetail.longDescriptionHtml);\r\n var setupMapsPromise = this.setupMapViews();\r\n setupMapsPromise\r\n .catch(function (err) {\r\n console.log(err);\r\n if (!_this.$scope.printable) {\r\n _this.notificationService.warning('There was an error loading the map or street view.');\r\n }\r\n _this.$scope.mapsError = 'There was an error loading the map or street view.';\r\n });\r\n if (this.$scope.printable) {\r\n setupMapsPromise\r\n .finally(function () { return _this.signalEvoPdfConverter(); });\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.getDirections = function () {\r\n if (this.$scope.viewModel.address != null) {\r\n window.open(\"https://www.google.com/maps/place/\".concat(this.$scope.viewModel.fullAddress), '_blank');\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.getLeadPhoneNumber = function () {\r\n var _this = this;\r\n var blockId = 'request-phone-number';\r\n var classGetPhone = '.phone-reveal-prompt';\r\n var classPhoneReveal = '.phone-reveal';\r\n var classPhone = '.phone-number';\r\n var classSecondaryPhone = '.phone-number';\r\n var classFade = 'fade';\r\n var classHide = 'ng-hide';\r\n $(classPhoneReveal).addClass(classFade);\r\n var leadId = this.$scope.viewModel.id;\r\n if (leadId == null) {\r\n $(classPhoneReveal).removeClass(classFade);\r\n this.notificationService.error(\"No lead was provided.\", zbuyer.messages.ApplicationTitle);\r\n }\r\n else {\r\n this.spinWaitService.block(blockId);\r\n this.leadPhoneNumberService.getLeadPhoneNumbers(leadId).then(function (response) {\r\n if (!response.showPropectingRobocallWarning) {\r\n // Chain forward\r\n return response;\r\n }\r\n // For high rate of phone-unlocks: interrupt and warn, then re-request signalling compliance (or not)\r\n // (Chaining onto original promise)\r\n _this.spinWaitService.unblock(blockId);\r\n return controllers.ComplianceReminderModalComponent.loadModal().then(function (confirmed) {\r\n _this.spinWaitService.block(blockId);\r\n return _this.leadPhoneNumberService.getLeadPhoneNumbers(leadId, confirmed);\r\n });\r\n }).then(function (response) {\r\n var revealedPhone = false;\r\n if (response.phoneNumber && response.phoneNumber.fullNumber) {\r\n var primaryPhone = response.phoneNumber.fullNumber;\r\n _this.$scope.viewModel.contactInfo.phoneNumber.fullNumber = primaryPhone;\r\n $(classPhoneReveal).addClass(classHide);\r\n $(classPhone).removeClass(classHide);\r\n revealedPhone = true;\r\n }\r\n if (response.secondaryPhoneNumber && response.secondaryPhoneNumber.fullNumber) {\r\n var secondaryPhone = response.secondaryPhoneNumber.fullNumber;\r\n _this.$scope.viewModel.contactInfo.secondaryPhoneNumber.fullNumber = secondaryPhone;\r\n $(classPhoneReveal).addClass(classHide);\r\n $(classSecondaryPhone).removeClass(classHide);\r\n revealedPhone = true;\r\n }\r\n if (!revealedPhone) {\r\n $(classGetPhone).html(_this.phoneUnavailable);\r\n _this.notificationService.error(\"Phone unavailable. Please contact support.\", zbuyer.messages.ApplicationTitle);\r\n }\r\n }).catch(function (response) {\r\n var _a, _b;\r\n $(classPhoneReveal).removeClass(classHide);\r\n console.debug(response);\r\n _this.notificationService.error((_b = (_a = response.data.message) !== null && _a !== void 0 ? _a : response.data.exceptionMessage) !== null && _b !== void 0 ? _b : 'Unknown error', zbuyer.messages.ApplicationTitle);\r\n }).finally(function () {\r\n $(classPhoneReveal).removeClass(classFade);\r\n _this.spinWaitService.unblock(blockId);\r\n });\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.initializeWatches = function () {\r\n var _this = this;\r\n this.$scope.$watch(function ($scope) { return $scope.viewModel; }, function (newValue, oldValue, $scope) {\r\n if (newValue && newValue.id) {\r\n _this.fillLeadDetail(newValue);\r\n if (_this.$scope.unwatchNotes) {\r\n _this.$scope.unwatchNotes();\r\n }\r\n // Watch for changes to notes once initial notes are in places\r\n _this.$scope.unwatchNotes = _this.$scope.$watch(function ($scope) { var _a; return (_a = $scope.viewModel) === null || _a === void 0 ? void 0 : _a.notes; }, function (newValue, oldValue, $scope) {\r\n if (newValue) {\r\n _this.debounceSaveUpdates(newValue, oldValue);\r\n }\r\n });\r\n // Check for unlockable prospecting lead if we just loaded the model\r\n if (!oldValue) {\r\n _this.checkProspectingUnlockFlag();\r\n }\r\n }\r\n else if (!newValue) {\r\n if (_this.$scope.unwatchNotes) {\r\n _this.$scope.unwatchNotes();\r\n }\r\n }\r\n });\r\n };\r\n LeadDetailDirectiveController.prototype.printDate = function () {\r\n return new Date();\r\n };\r\n LeadDetailDirectiveController.prototype.renderHtmlDescription = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n LeadDetailDirectiveController.prototype.saveUpdates = function () {\r\n var _this = this;\r\n if (!this.$scope.viewModel) {\r\n return;\r\n }\r\n this.leadsService.addNoteToLead(this.$scope.viewModel.notes, this.$scope.viewModel.id).then(function (response) {\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.message, zbuyer.messages.ApplicationTitle);\r\n }).finally(function () {\r\n });\r\n };\r\n LeadDetailDirectiveController.prototype.setupActivityActions = function (longDescriptionHtml) {\r\n var customHtml = this.$compile(longDescriptionHtml);\r\n angular.element('#longDescriptionHTML').empty().append(customHtml(this.$scope));\r\n };\r\n LeadDetailDirectiveController.prototype.showProspectingAgreement = function () {\r\n this.$scope.prospectingComplianceCallback();\r\n };\r\n LeadDetailDirectiveController.prototype.signalEvoPdfConverter = function () {\r\n if (typeof evoPdfConverter == 'undefined') {\r\n return false;\r\n }\r\n else {\r\n evoPdfConverter.startConversion();\r\n return true;\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.checkGoogleMapsLoaded = function () {\r\n if (typeof google === 'object' && typeof google.maps === 'object') {\r\n console.log('Google Maps API is defined, at version ' + google.maps.version);\r\n return true;\r\n }\r\n else {\r\n console.log('Google Maps API is NOT defined');\r\n return false;\r\n }\r\n };\r\n LeadDetailDirectiveController.prototype.setupMapViews = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n if (!viewModel.latitude) {\r\n // No coordinates? Should be able to get coordinates and call setupMapView again\r\n if (viewModel.id != null && viewModel.address.addressLine1) {\r\n return this.leadsService.getLeadLocation(viewModel.id)\r\n .then(function (response) {\r\n if (response.verified) {\r\n viewModel.latitude = response.latitude;\r\n viewModel.longitude = response.longitude;\r\n if (viewModel.latitude) {\r\n return _this.setupMapViews();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // No valid lead or no address - can't get any coordintes for lead\r\n return this.$q.resolve();\r\n }\r\n }\r\n if (this.$scope.printable) {\r\n // No map init for print (using image links to static maps APIs)\r\n return this.$q.resolve();\r\n }\r\n // Coordinates are available (initially or after retrieval)\r\n if (!this.checkGoogleMapsLoaded()) {\r\n this.$scope.mapsError = 'Sorry! We had a problem printing the map or street view.';\r\n return this.$q.resolve();\r\n }\r\n var deferred = this.$q.defer();\r\n try {\r\n // Identify when maps are loaded using promises based on key events fired (also with timeout)\r\n var streetsPromise = this.createStreetView();\r\n var mapsPromise = this.createGoogleMap();\r\n this.$q.all([mapsPromise, streetsPromise])\r\n .finally(function () { return deferred.resolve(); });\r\n }\r\n catch (err) {\r\n return this.$q.reject(err);\r\n }\r\n // Allow 3 seconds wait any for signals that map and streetview have rendered\r\n return this.$q.race([deferred.promise, this.$timeout(3000)]);\r\n };\r\n LeadDetailDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.angular.Compile,\r\n names.angular.Location,\r\n names.angular.Q,\r\n names.angular.Timeout,\r\n names.zbuyer.AppConfiguration,\r\n names.zbuyer.services.AuthenticationService,\r\n names.zbuyer.services.LeadPhoneNumberService,\r\n names.zbuyer.services.LeadsService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return LeadDetailDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.LeadDetail, LeadDetailDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/leadfoldermodal.html';\r\n var LeadFolderModalController = /** @class */ (function (_super) {\r\n __extends(LeadFolderModalController, _super);\r\n function LeadFolderModalController($scope, $timeout, $uibModalInstance, foldersService, notificationService, lead) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$timeout = $timeout;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.foldersService = foldersService;\r\n _this.notificationService = notificationService;\r\n _this.folderUpdatingTimeout = null;\r\n _this.folderUpdatingWaitTime = 1000;\r\n _this.newFolderInputElement = '#inputNewFolder';\r\n _this.initializeLeadFolderModal(lead);\r\n _this.$uibModalInstance.rendered.then(function () {\r\n // Any initialization here\r\n });\r\n return _this;\r\n }\r\n LeadFolderModalController.prototype.initializeLeadFolderModal = function (lead) {\r\n var _this = this;\r\n this.$scope.viewModel = {};\r\n this.$scope.viewModel.foldersLoading = true;\r\n this.$scope.viewModel.lead = lead;\r\n this.$scope.viewModel.currentFolderName = lead.folder.name;\r\n this.loadFolders();\r\n this.$scope.$watch(function (folderName) { return _this.$scope.viewModel.lead.folder; }, function (newValue, oldValue, folderName) {\r\n var viewModel = _this.$scope.viewModel;\r\n viewModel.currentFolderName = viewModel.lead.folder.name;\r\n });\r\n };\r\n LeadFolderModalController.prototype.addNewFolder = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.addingNewFolder = true;\r\n this.$timeout(function () {\r\n angular.element(_this.newFolderInputElement).focus();\r\n });\r\n };\r\n LeadFolderModalController.prototype.cancelNewFolder = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.newFolderName = null;\r\n viewModel.addingNewFolder = false;\r\n };\r\n LeadFolderModalController.prototype.closeModal = function () {\r\n this.$uibModalInstance.close(true);\r\n };\r\n LeadFolderModalController.prototype.loadFolders = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n this.$scope.viewModel.foldersLoading = true;\r\n this.foldersService.getFolderList().then(function (result) {\r\n viewModel.folders = result.map(function (folder) { return ({\r\n item: folder,\r\n selected: false\r\n }); });\r\n var folders = _this.$scope.viewModel.folders;\r\n var selectedFolder = folders.filter(function (f) { return f.item.name == viewModel.lead.folder.name; });\r\n if (selectedFolder && selectedFolder.length > 0) {\r\n selectedFolder[0].selected = true;\r\n }\r\n _this.$scope.viewModel.foldersLoading = false;\r\n }).catch(function (reason) {\r\n _this.notificationService.error(\"Lead folder list unavailable. Please contact support.\", zbuyer.messages.ApplicationTitle);\r\n _this.$scope.viewModel.foldersLoading = false;\r\n });\r\n };\r\n LeadFolderModalController.prototype.saveNewFolder = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var newFolder = {\r\n name: viewModel.newFolderName\r\n };\r\n this.foldersService.addLeadToFolder(newFolder, viewModel.lead.id).then(function (folder) {\r\n _this.loadFolders();\r\n // If folder set for lead, InvestorLead exists and lead is considered viewed\r\n // so change this flag on existing lead for UI updates (will show as Viewed on next reload)\r\n viewModel.lead.viewed = true;\r\n viewModel.lead.folder.name = folder.name;\r\n }).catch(function (reason) {\r\n _this.notificationService.error(\"Unable to add new folder. Please contact support.\", zbuyer.messages.ApplicationTitle);\r\n }).finally(function () {\r\n viewModel.addingNewFolder = false;\r\n });\r\n };\r\n LeadFolderModalController.prototype.setFolder = function (folderModel) {\r\n var viewModel = this.$scope.viewModel;\r\n var folders = viewModel.folders;\r\n var selectedFolder = folders.filter(function (f) { return f.selected == true; });\r\n if (selectedFolder && selectedFolder.length > 0) {\r\n selectedFolder[0].selected = false;\r\n }\r\n folderModel.selected = true;\r\n this.foldersService.addLeadToFolder(folderModel.item, viewModel.lead.id).then(function (result) {\r\n viewModel.lead.folder.name = folderModel.item.name;\r\n // If folder set for lead, InvestorLead exists and lead is considered viewed\r\n // so change this flag on existing lead for UI updates (will show as Viewed on next reload)\r\n viewModel.lead.viewed = true;\r\n });\r\n };\r\n LeadFolderModalController.showLeadFolderModal = function (lead) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModel = $injector.get(names.angular.UiBootstrapModal);\r\n return $uibModel.open({\r\n backdropClass: 'filter-modal-backdrop',\r\n controller: names.zbuyer.controllers.LeadFolderModalController,\r\n resolve: {\r\n lead: lead\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'folder-menu-modal'\r\n });\r\n };\r\n LeadFolderModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Timeout,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.FoldersService,\r\n names.zbuyer.services.NotificationService,\r\n 'lead'\r\n ];\r\n return LeadFolderModalController;\r\n }(controllers.ControllerBase));\r\n controllers.LeadFolderModalController = LeadFolderModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.LeadFolderModalController, LeadFolderModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/leadmoremenumodal.html';\r\n var LeadMoreMenuController = /** @class */ (function (_super) {\r\n __extends(LeadMoreMenuController, _super);\r\n function LeadMoreMenuController($scope, $uibModalInstance, $window, leadsService, notificationService, spinWaitService, viewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.$window = $window;\r\n _this.leadsService = leadsService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n $scope.viewModel = viewModel;\r\n return _this;\r\n }\r\n LeadMoreMenuController.showLeadMoreMenu = function (lead, allowShareAndPrint) {\r\n if (allowShareAndPrint === void 0) { allowShareAndPrint = false; }\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n return $uibModal.open({\r\n backdropClass: 'filter-modal-backdrop',\r\n controller: names.zbuyer.controllers.LeadMoreMenuController,\r\n resolve: {\r\n viewModel: {\r\n lead: lead,\r\n allowShareAndPrint: allowShareAndPrint,\r\n ratingTypes: {\r\n high: zbuyer.models.RatingType.high,\r\n low: zbuyer.models.RatingType.low,\r\n neutral: zbuyer.models.RatingType.neutral\r\n }\r\n }\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'more-menu-modal'\r\n });\r\n };\r\n LeadMoreMenuController.prototype.closeModal = function () {\r\n this.$uibModalInstance.close(true);\r\n };\r\n LeadMoreMenuController.prototype.downloadBlob = function (fileName, blob) {\r\n // IE v11 Compatibility\r\n if (this.$window.navigator.msSaveOrOpenBlob) {\r\n this.$window.navigator.msSaveOrOpenBlob(blob, fileName);\r\n return;\r\n }\r\n // All Other Browsers\r\n var url = window.URL.createObjectURL(blob);\r\n var tempLink = document.createElement('a');\r\n tempLink.href = url;\r\n tempLink.download = fileName;\r\n // Firefox requires adding this element to the body before a click can be triggered\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n };\r\n LeadMoreMenuController.prototype.getDirections = function () {\r\n if (this.$scope.viewModel.lead.address != null) {\r\n window.open(\"https://www.google.com/maps/place/\".concat(this.$scope.viewModel.lead.fullAddress), '_blank');\r\n }\r\n };\r\n LeadMoreMenuController.prototype.getPrintableLead = function () {\r\n var _this = this;\r\n var rateLimitErrorText = 'Download prevented due to rate limit';\r\n var viewModel = this.$scope.viewModel;\r\n var blockId = names.zbuyer.spinnermessages.PrintableScreen;\r\n this.spinWaitService.block(blockId);\r\n this.leadsService.getPrintableLead(viewModel.lead).then(function (result) {\r\n if (!result.rateLimitReached) {\r\n // Just pass on to final .then()\r\n return result;\r\n }\r\n // For high rate of phone-unlocks via Share, interrupt download and warn user about FCC/TCPA compliance\r\n _this.spinWaitService.unblock(blockId);\r\n if (!viewModel.lead.isProspecting && !result.blob) {\r\n // Not expected for non-prospecting lead, but server sent HTTP 429 and provided no data\r\n throw rateLimitErrorText;\r\n }\r\n // For prospecting leads we can warn user about prospecting TCPA compliance.\r\n return zbuyer.controllers.ComplianceReminderModalComponent.loadModal().then(function (confirmed) {\r\n _this.spinWaitService.block(blockId);\r\n return _this.leadsService.getPrintableLead(viewModel.lead, confirmed);\r\n });\r\n }).then(function (result) {\r\n if (result.rateLimitReached) {\r\n throw rateLimitErrorText;\r\n }\r\n // If printable lead generated, InvestorLead exists and lead is considered viewed\r\n // so change this flag on existing lead for UI updates (will show as Viewed on next reload)\r\n viewModel.lead.viewed = true;\r\n _this.downloadBlob(\"\".concat(viewModel.lead.firstName, \" \").concat(viewModel.lead.lastName, \".pdf\"), result.blob);\r\n }).catch(function (reason) {\r\n _this.notificationService.error(\"Printed version unavailable. Please contact support.\", zbuyer.messages.ApplicationTitle);\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(names.zbuyer.spinnermessages.PrintableScreen);\r\n });\r\n };\r\n LeadMoreMenuController.prototype.rateLead = function (rating) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n this.leadsService.addRatingToLead(rating, this.$scope.viewModel.lead.id).then(function (response) {\r\n viewModel.lead.rating = response;\r\n // if rating was set, then InvestorLead was created and lead is considered viewed\r\n // so change this flag on existing lead for UI updates (will show as Viewed on next reload)\r\n viewModel.lead.viewed = true;\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.message, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n LeadMoreMenuController.prototype.shareLead = function () {\r\n var _this = this;\r\n var rateLimitErrorText = 'Download prevented due to rate limit';\r\n var blockId = 'shareLead';\r\n var viewModel = this.$scope.viewModel;\r\n this.spinWaitService.block(blockId);\r\n this.leadsService.getLeadVCard(viewModel.lead).then(function (result) {\r\n if (!result.rateLimitReached) {\r\n // Just pass on to final .then()\r\n return result;\r\n }\r\n // For high rate of phone-unlocks via Share, interrupt download and warn user about FCC/TCPA compliance\r\n _this.spinWaitService.unblock(blockId);\r\n if (!viewModel.lead.isProspecting && !result.blob) {\r\n // Not expected for non-prospecting lead, but server sent HTTP 429 and provided no data\r\n throw rateLimitErrorText;\r\n }\r\n // For prospecting leads we can warn user about prospecting TCPA compliance.\r\n return zbuyer.controllers.ComplianceReminderModalComponent.loadModal().then(function (confirmed) {\r\n _this.spinWaitService.block(blockId);\r\n return _this.leadsService.getLeadVCard(viewModel.lead, confirmed);\r\n });\r\n }).then(function (result) {\r\n if (result.rateLimitReached) {\r\n throw rateLimitErrorText;\r\n }\r\n // if contact info generated, then InvestorLead was created and lead is considered viewed\r\n // so change this flag on existing lead for UI updates (will show as Viewed on next reload)\r\n viewModel.lead.viewed = true;\r\n _this.downloadBlob(\"\".concat(viewModel.lead.firstName, \" \").concat(viewModel.lead.lastName, \".vcf\"), result.blob);\r\n }).catch(function (reason) {\r\n _this.notificationService.error(\"Share Lead unavailable. Please contact support.\", zbuyer.messages.ApplicationTitle);\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(blockId);\r\n });\r\n };\r\n LeadMoreMenuController.prototype.showLeadFolderModal = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var modal = controllers.LeadFolderModalController.showLeadFolderModal(viewModel.lead).result.then(function (result) {\r\n });\r\n };\r\n LeadMoreMenuController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.angular.Window,\r\n names.zbuyer.services.LeadsService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService,\r\n 'viewModel'\r\n ];\r\n return LeadMoreMenuController;\r\n }(controllers.ControllerBase));\r\n controllers.LeadMoreMenuController = LeadMoreMenuController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.LeadMoreMenuController, LeadMoreMenuController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/leadpreviewsdirective.html';\r\n var LeadPreviewsDirectiveController = /** @class */ (function (_super) {\r\n __extends(LeadPreviewsDirectiveController, _super);\r\n function LeadPreviewsDirectiveController($scope, $window, leadPreviewService, notificationService, spinWaitService, $sce) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$window = $window;\r\n _this.leadPreviewService = leadPreviewService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.$sce = $sce;\r\n _this.lastScrollPosition = 0;\r\n var viewModel = _this.$scope.viewModel;\r\n viewModel.searchUpdated = function () {\r\n _this.getLeadPreviews();\r\n };\r\n _this.$scope.$watch(function ($scope) { return $scope.isShowing; }, function (isShowing, wasShowing, $scope) { return _this.handleVisibilityChange(isShowing, wasShowing); });\r\n if (_this.$scope.isShowing) {\r\n _this.getLeadPreviews();\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(LeadPreviewsDirectiveController.prototype, \"scrollPosition\", {\r\n get: function () {\r\n return this.$window.scrollY;\r\n },\r\n set: function (scrollY) {\r\n this.$window.scrollTo({ top: scrollY });\r\n this.lastScrollPosition = scrollY;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LeadPreviewsDirectiveController.prototype.handleVisibilityChange = function (isShowing, wasShowing) {\r\n var _this = this;\r\n if (wasShowing == isShowing) {\r\n return;\r\n }\r\n if (!isShowing) {\r\n // Note: Delicate: Relies on nothing else having already changed the scroll position.\r\n // However, the scroll is generally set on a delay, while the app-section-change (which changes visibility)\r\n // registers soon enough that we can capture the previous position from here.\r\n this.lastScrollPosition = this.$window.scrollY;\r\n }\r\n else {\r\n if (this.$scope.viewModel.leads) {\r\n // Showing, with leads already in place - just restore scroll position\r\n this.$window.setTimeout(function () {\r\n _this.$window.scrollTo({ top: _this.lastScrollPosition });\r\n }, 1);\r\n }\r\n else {\r\n // Showing but nothing loaded yet (first time) so go fetch.\r\n this.getLeadPreviews();\r\n }\r\n }\r\n };\r\n LeadPreviewsDirectiveController.getDirective = function () {\r\n return {\r\n controller: LeadPreviewsDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n leadPreviewSelectedCallback: '&onLeadPreviewSelected',\r\n isShowing: '=',\r\n viewModel: '=',\r\n selectedLeadId: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n LeadPreviewsDirectiveController.prototype.pageChanged = function () {\r\n this.getLeadPreviews();\r\n };\r\n LeadPreviewsDirectiveController.prototype.onClickedLeadPreview = function (leadPreview) {\r\n this.$scope.leadPreviewSelectedCallback({ leadPreview: leadPreview });\r\n };\r\n LeadPreviewsDirectiveController.prototype.getSellingDescription = function (leadPreview) {\r\n var parts = [];\r\n if (leadPreview.sellingInfo.beds > 0) {\r\n parts.push(\"\".concat(leadPreview.sellingInfo.beds, \" Bed\").concat(leadPreview.sellingInfo.beds > 1 ? 's' : ''));\r\n }\r\n if (leadPreview.sellingInfo.baths > 0) {\r\n parts.push(\"\".concat(leadPreview.sellingInfo.baths, \" Bath\").concat(leadPreview.sellingInfo.baths > 1 ? 's' : ''));\r\n }\r\n if (leadPreview.sellingInfo.estimatedValue) {\r\n parts.push(\"$\".concat(leadPreview.sellingInfo.estimatedValue.toLocaleString(), \"\"));\r\n }\r\n return this.$sce.trustAsHtml(parts.join(', '));\r\n };\r\n LeadPreviewsDirectiveController.prototype.getLeadPreviews = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.leads = null;\r\n viewModel.errorMessageToDisplay = null;\r\n // Scroll back to top\r\n this.scrollPosition = 0;\r\n if (!viewModel.page) {\r\n viewModel.page = 1;\r\n }\r\n var request;\r\n if (viewModel.userFiltersApplied) {\r\n request = {\r\n buyer_Baths_MIN: viewModel.bathroomsMin,\r\n buyer_Baths_MAX: viewModel.bathroomsMax,\r\n buyer_Baths_InclUnknown: viewModel.includeUnknownBathrooms,\r\n buyer_Beds_MIN: viewModel.bedroomsMin,\r\n buyer_Beds_MAX: viewModel.bedroomsMax,\r\n buyer_Beds_InclUnknown: viewModel.includeUnknownBedrooms,\r\n buyer_PriceRange_MIN: viewModel.priceRangeMin,\r\n buyer_PriceRange_MAX: viewModel.priceRangeMax,\r\n buyer_PriceRange_InclUnknown: viewModel.includeUnknownPrice,\r\n seller_Baths_MIN: viewModel.bathroomsMin,\r\n seller_Baths_MAX: viewModel.bathroomsMax,\r\n seller_Baths_InclUnknown: viewModel.includeUnknownBathrooms,\r\n seller_Beds_MIN: viewModel.bedroomsMin,\r\n seller_Beds_MAX: viewModel.bedroomsMax,\r\n seller_Beds_InclUnknown: viewModel.includeUnknownBedrooms,\r\n seller_EstimatedValue_MIN: viewModel.priceRangeMin,\r\n seller_EstimatedValue_MAX: viewModel.priceRangeMax,\r\n seller_EstimatedValue_InclUnknown: viewModel.includeUnknownPrice,\r\n includeSellers: viewModel.includeSellers,\r\n includeBuyers: viewModel.includeBuyers,\r\n location_State: viewModel.locationState,\r\n location_County: viewModel.locationCounty,\r\n location_City: viewModel.locationCity,\r\n location_Zip: viewModel.locationZip\r\n };\r\n }\r\n else {\r\n request = {};\r\n }\r\n request.leadsPerPage = viewModel.appSettings.leadsPerPage;\r\n request.pageNum = viewModel.page;\r\n var getLeadsPromise = this.leadPreviewService.getLeadPreviewList(request)\r\n .then(function (response) {\r\n viewModel.leads = response.leadPreviews;\r\n viewModel.page = response.currentPage;\r\n viewModel.totalItems = response.totalLeads;\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n this.spinWaitService.blockDuring(getLeadsPromise, names.zbuyer.spinnermessages.SearchPreviewLeads);\r\n };\r\n LeadPreviewsDirectiveController.prototype.handleError = function (thrownError) {\r\n if (thrownError === void 0) { thrownError = null; }\r\n if (typeof thrownError == 'string') {\r\n this.$scope.viewModel.errorMessageToDisplay = thrownError;\r\n }\r\n else {\r\n this.notificationService.error('An unexpected error has occurred.');\r\n console.error(thrownError);\r\n }\r\n };\r\n LeadPreviewsDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Window,\r\n names.zbuyer.services.LeadPreviewService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService,\r\n '$sce'\r\n ];\r\n return LeadPreviewsDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.LeadPreviewsList, LeadPreviewsDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/LeadPreviewDetailDirective.html';\r\n var LeadPreviewDetailDirectiveController = /** @class */ (function () {\r\n function LeadPreviewDetailDirectiveController($scope, $q, $routeParams, $timeout, leadPreviewService, notificationService) {\r\n this.$scope = $scope;\r\n this.$q = $q;\r\n this.$routeParams = $routeParams;\r\n this.$timeout = $timeout;\r\n this.leadPreviewService = leadPreviewService;\r\n this.notificationService = notificationService;\r\n this.initialize();\r\n }\r\n LeadPreviewDetailDirectiveController.getDirective = function () {\r\n return {\r\n controller: LeadPreviewDetailDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n selectedLeadPreview: '=',\r\n leadPreviews: '=',\r\n closeCallback: '&onClose',\r\n showClaimedLeadCallback: '&onShowClaimedLead'\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n Object.defineProperty(LeadPreviewDetailDirectiveController.prototype, \"canLoadPrevious\", {\r\n get: function () {\r\n return this.$scope.selectedLeadPreviewIndex > 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(LeadPreviewDetailDirectiveController.prototype, \"canLoadNext\", {\r\n get: function () {\r\n return this.$scope.leadPreviews && this.$scope.selectedLeadPreviewIndex < (this.$scope.leadPreviews.length - 1);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n LeadPreviewDetailDirectiveController.prototype.initialize = function () {\r\n var _this = this;\r\n this.$scope.controller = this;\r\n this.$scope.loading = true;\r\n this.$scope.selectedLeadPreviewIndex = -1;\r\n if (this.$routeParams.leadPreviewId) {\r\n this.fetchDetails(+this.$routeParams.leadPreviewId);\r\n }\r\n this.$scope.$watch(function ($scope) { return $scope.selectedLeadPreview; }, function (lead, oldLead, $scope) { return _this.handleSelectedLeadPreviewChanged(lead, oldLead); });\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.loadPrevious = function () {\r\n this.$scope.selectedLeadPreviewIndex--;\r\n this.$scope.selectedLeadPreview = this.$scope.leadPreviews[this.$scope.selectedLeadPreviewIndex];\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.loadNext = function () {\r\n this.$scope.selectedLeadPreviewIndex++;\r\n this.$scope.selectedLeadPreview = this.$scope.leadPreviews[this.$scope.selectedLeadPreviewIndex];\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.claimLeadAndShowModal = function () {\r\n var _this = this;\r\n this.leadPreviewService.claimLead(this.$scope.leadPreview.id)\r\n .then(function (response) {\r\n if (!response.success) {\r\n // No longer claimable? Refresh lead-preview just in case.\r\n _this.fetchDetails(_this.$scope.leadPreview.id);\r\n // Throw error to pop up a message (and avoid navigating away)\r\n throw response.errorMessageToDisplay;\r\n }\r\n // Can immediately assume this\r\n _this.$scope.leadPreview.claimed = true;\r\n _this.$scope.leadPreview.claimable = false;\r\n // Update on shared instance as well\r\n if (_this.$scope.selectedLeadPreview) {\r\n _this.$scope.selectedLeadPreview.claimed = true;\r\n _this.$scope.selectedLeadPreview.claimable = false;\r\n }\r\n // Token balance has changed so provide this to the modal, which will tell us where to go next\r\n return _this.updateTokenBalance().then(function (balanceUpdated) {\r\n var modalScope = _this.$scope.$new(true);\r\n modalScope.result = response;\r\n modalScope.balanceInfo = balanceUpdated ? _this.$scope.balanceInfo : null;\r\n modalScope.allowNavigateNext = _this.canLoadNext;\r\n return controllers.ClaimedLeadModalController.showModal(modalScope);\r\n });\r\n }).then(function (navigation) {\r\n switch (navigation) {\r\n case controllers.ClaimedLeadNavigationOption.NextLead:\r\n _this.loadNext();\r\n break;\r\n case controllers.ClaimedLeadNavigationOption.ViewClaimed:\r\n _this.$scope.showClaimedLeadCallback({ selectedPreviewLeadId: _this.$scope.leadPreview.id });\r\n break;\r\n case controllers.ClaimedLeadNavigationOption.BackToList:\r\n _this.$scope.closeCallback();\r\n break;\r\n }\r\n }).catch(function (err) {\r\n _this.handleError(err);\r\n });\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.updateTokenBalance = function () {\r\n var _this = this;\r\n return this.leadPreviewService.getTokenBalance()\r\n .then(function (balanceResponse) {\r\n _this.$scope.balanceInfo = balanceResponse;\r\n return true;\r\n })\r\n .catch(function (err) {\r\n _this.handleError(err);\r\n return false;\r\n });\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.fetchDetails = function (leadId) {\r\n var _this = this;\r\n var scope = this.$scope;\r\n scope.loading = true;\r\n scope.claimLeadButtonText = \"Claim Lead\";\r\n var gotLeadPreview = this.leadPreviewService.getLeadPreview(leadId)\r\n .then(function (leadPreview) {\r\n scope = _this.$scope;\r\n scope.leadPreview = leadPreview;\r\n if (scope.selectedLeadPreview) {\r\n // Update the copy on the original list, if present\r\n scope.selectedLeadPreview.previewed = leadPreview.previewed;\r\n }\r\n if (leadPreview.sellingInfo && !leadPreview.buyingInfo) {\r\n scope.claimLeadButtonText = \"Claim Seller Lead\";\r\n }\r\n else if (leadPreview.buyingInfo && !leadPreview.sellingInfo) {\r\n scope.claimLeadButtonText = \"Claim Buyer Lead\";\r\n }\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n var gotTokenBalance = this.updateTokenBalance();\r\n return this.$q.all([gotLeadPreview, gotTokenBalance])\r\n .then(function () { return true; })\r\n .catch(function () { return false; })\r\n .finally(function () {\r\n _this.$scope.loading = false;\r\n });\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.handleError = function (thrownError) {\r\n if (thrownError === void 0) { thrownError = null; }\r\n if (typeof thrownError == 'string') {\r\n this.notificationService.error(thrownError);\r\n }\r\n else {\r\n this.notificationService.error('An unexpected error has occurred.');\r\n console.error(thrownError);\r\n }\r\n };\r\n LeadPreviewDetailDirectiveController.prototype.handleSelectedLeadPreviewChanged = function (newSelectedLead, oldSelectedLead) {\r\n if (newSelectedLead && newSelectedLead != oldSelectedLead) {\r\n if (this.$scope.leadPreviews) {\r\n this.$scope.selectedLeadPreviewIndex = this.$scope.leadPreviews.indexOf(newSelectedLead);\r\n }\r\n else {\r\n this.$scope.selectedLeadPreviewIndex = -1;\r\n }\r\n this.fetchDetails(newSelectedLead.id);\r\n }\r\n };\r\n LeadPreviewDetailDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.RouteParams,\r\n names.angular.Timeout,\r\n names.zbuyer.services.LeadPreviewService,\r\n names.zbuyer.services.NotificationService\r\n ];\r\n return LeadPreviewDetailDirectiveController;\r\n }());\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.LeadPreview, LeadPreviewDetailDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/leadsdirective.html';\r\n var LeadsDirectiveController = /** @class */ (function (_super) {\r\n __extends(LeadsDirectiveController, _super);\r\n function LeadsDirectiveController($scope, $sce) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n return _this;\r\n }\r\n LeadsDirectiveController.getDirective = function () {\r\n return {\r\n controller: LeadsDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n showLeadDetailCallback: '&onShowLeadDetail',\r\n openMoreMenuCallback: '&onOpenMoreMenu',\r\n pageChangedCallback: '&onPageChanged',\r\n prospectingComplianceCallback: '&onOpenProspectingCompliance',\r\n prospecting: '=',\r\n prospectingCompliant: '=',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n LeadsDirectiveController.prototype.pageChanged = function () {\r\n this.$scope.pageChangedCallback();\r\n };\r\n LeadsDirectiveController.prototype.renderHtmlDescription = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n LeadsDirectiveController.prototype.showProspectingAgreement = function () {\r\n this.$scope.prospectingComplianceCallback();\r\n };\r\n LeadsDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce\r\n ];\r\n return LeadsDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.LeadsList, LeadsDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/leadssearchdirective.html';\r\n var LeadsSearchDirectiveController = /** @class */ (function (_super) {\r\n __extends(LeadsSearchDirectiveController, _super);\r\n function LeadsSearchDirectiveController($scope) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n return _this;\r\n }\r\n LeadsSearchDirectiveController.getDirective = function () {\r\n return {\r\n controller: LeadsSearchDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n filterButtonClickedCallback: '&onFilterButtonClick',\r\n searchButtonClickedCallback: '&onSearchButtonClick',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n LeadsSearchDirectiveController.$inject = [\r\n names.angular.Scope\r\n ];\r\n return LeadsSearchDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.LeadsSearch, LeadsSearchDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/previewsearchdirective.html';\r\n var PreviewSearchDirectiveController = /** @class */ (function (_super) {\r\n __extends(PreviewSearchDirectiveController, _super);\r\n function PreviewSearchDirectiveController($scope) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n return _this;\r\n }\r\n PreviewSearchDirectiveController.getDirective = function () {\r\n return {\r\n controller: PreviewSearchDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n previewFilterButtonClickedCallback: '&onPreviewFilterButtonClick'\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n PreviewSearchDirectiveController.$inject = [\r\n names.angular.Scope\r\n ];\r\n return PreviewSearchDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.PreviewSearch, PreviewSearchDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/learnmoremodal.html';\r\n var LearnMoreModalController = /** @class */ (function (_super) {\r\n __extends(LearnMoreModalController, _super);\r\n function LearnMoreModalController($scope, $uibModalInstance, modalService, learnMoreViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.modalService = modalService;\r\n _this.learnMoreViewModel = learnMoreViewModel;\r\n $scope.viewModel = learnMoreViewModel;\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n return _this;\r\n }\r\n LearnMoreModalController.loadModal = function (track) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n return $uibModal.open({\r\n controller: names.zbuyer.controllers.LearnMoreModalController,\r\n resolve: {\r\n learnMoreViewModel: { track: track }\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'learn-more-modal'\r\n });\r\n };\r\n LearnMoreModalController.prototype.close = function () {\r\n this.$uibModalInstance.close();\r\n };\r\n LearnMoreModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.ModalService,\r\n 'learnMoreViewModel'\r\n ];\r\n return LearnMoreModalController;\r\n }(controllers.ControllerBase));\r\n controllers.LearnMoreModalController = LearnMoreModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.LearnMoreModalController, LearnMoreModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/mobileapppromomodal.html';\r\n var MobileAppPromoModalController = /** @class */ (function (_super) {\r\n __extends(MobileAppPromoModalController, _super);\r\n function MobileAppPromoModalController($scope, $uibModalInstance, modalService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.modalService = modalService;\r\n _this.$uibModalInstance.rendered.then(function () {\r\n // Any initialization here\r\n });\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n return _this;\r\n }\r\n MobileAppPromoModalController.loadModal = function () {\r\n var $injector = angular.element('html').injector();\r\n var $uibModel = $injector.get(names.angular.UiBootstrapModal);\r\n var modal = $uibModel.open({\r\n controller: names.zbuyer.controllers.MobileAppPromoModalController,\r\n resolve: {},\r\n templateUrl: TemplateUrl,\r\n windowClass: 'mobile-promo-modal'\r\n });\r\n return modal;\r\n };\r\n MobileAppPromoModalController.prototype.appUrl = function () {\r\n if (/Android/i.test(navigator.userAgent)) {\r\n return 'android';\r\n }\r\n else if (/iPhone|iPad/i.test(navigator.userAgent)) {\r\n return 'ios';\r\n }\r\n };\r\n MobileAppPromoModalController.prototype.close = function () {\r\n this.$uibModalInstance.close();\r\n };\r\n MobileAppPromoModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.ModalService\r\n ];\r\n return MobileAppPromoModalController;\r\n }(controllers.ControllerBase));\r\n controllers.MobileAppPromoModalController = MobileAppPromoModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.MobileAppPromoModalController, MobileAppPromoModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/moremenudirective.html';\r\n var MoreMenuDirectiveController = /** @class */ (function (_super) {\r\n __extends(MoreMenuDirectiveController, _super);\r\n function MoreMenuDirectiveController($scope, $window) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$window = $window;\r\n return _this;\r\n }\r\n MoreMenuDirectiveController.getDirective = function () {\r\n return {\r\n controller: MoreMenuDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n MoreMenuDirectiveController.prototype.openPrivacyPolicy = function () {\r\n this.$window.open('legal/privacy');\r\n };\r\n MoreMenuDirectiveController.prototype.openTermsOfUse = function () {\r\n this.$window.open('legal/terms');\r\n };\r\n MoreMenuDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Window\r\n ];\r\n return MoreMenuDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.MoreMenu, MoreMenuDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/navbardirective.html';\r\n var NavBarDirectiveController = /** @class */ (function (_super) {\r\n __extends(NavBarDirectiveController, _super);\r\n function NavBarDirectiveController($scope) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n return _this;\r\n }\r\n NavBarDirectiveController.getDirective = function () {\r\n return {\r\n controller: NavBarDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n initialized: '=',\r\n canProspect: '=',\r\n canPreview: '=',\r\n showLeadsCallback: '&onShowLeads',\r\n showMessagesCallback: '&onShowMessages',\r\n showProspectingCallback: '&onShowProspecting',\r\n showSelectListCallback: '&onShowSelectList',\r\n showAccountCallback: '&onShowAccount',\r\n showMoreCallback: '&onShowMore'\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n NavBarDirectiveController.$inject = [\r\n names.angular.Scope\r\n ];\r\n return NavBarDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.NavBar, NavBarDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var NavigationController = /** @class */ (function (_super) {\r\n __extends(NavigationController, _super);\r\n function NavigationController($scope, appSettingsService, notificationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.appSettingsService = appSettingsService;\r\n _this.notificationService = notificationService;\r\n _this.$scope.viewModel = {};\r\n _this.setAppSettings();\r\n return _this;\r\n }\r\n NavigationController.prototype.setAppSettings = function () {\r\n var _this = this;\r\n this.appSettingsService.getAppSettings().then(function (settings) {\r\n _this.$scope.viewModel.appSettings = settings;\r\n }).catch(function (err) {\r\n console.debug(err);\r\n _this.notificationService.error(zbuyer.messages.AppSettingsError, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n NavigationController.$inject = [\r\n names.angular.Scope,\r\n names.zbuyer.services.AppSettingsService,\r\n names.zbuyer.services.NotificationService\r\n ];\r\n return NavigationController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.NavigationController, NavigationController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n controllers.NewPasswordDirectiveElement = '#newPasswordDirective';\r\n var NewPasswordInputElement = '#newPasswordInput';\r\n var RedirectDelay = 3000;\r\n var TemplateUrl = 'staticpages/directives/newpassworddirective.html';\r\n var Used = 'used';\r\n var NewPasswordDirectiveController = /** @class */ (function (_super) {\r\n __extends(NewPasswordDirectiveController, _super);\r\n function NewPasswordDirectiveController($scope, $timeout, $window, accountService, notificationService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.accountService = accountService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n return _this;\r\n }\r\n NewPasswordDirectiveController.getDirective = function () {\r\n return {\r\n controller: NewPasswordDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n forgotten: '=',\r\n signup: '=',\r\n key: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n NewPasswordDirectiveController.prototype.invalidPassword = function () {\r\n var viewModel = this.$scope.viewModel;\r\n if (!viewModel) {\r\n return true;\r\n }\r\n var validPassword = viewModel.validPassword;\r\n return !validPassword.length || !validPassword.content || !validPassword.format || !validPassword.match;\r\n };\r\n NewPasswordDirectiveController.prototype.getNewPassword = function () {\r\n return this.$scope.viewModel.validPassword.newPassword;\r\n };\r\n NewPasswordDirectiveController.prototype.newPasswordFocus = function () {\r\n this.$timeout(function () {\r\n angular.element(NewPasswordInputElement).focus();\r\n }, 500);\r\n };\r\n NewPasswordDirectiveController.prototype.changeAccountPassword = function () {\r\n var _this = this;\r\n this.spinWaitService.block(\"change-password\");\r\n if (this.verifyNewPassword()) {\r\n var validPassword = this.$scope.viewModel.validPassword;\r\n var updateAccountPasswordRequest = {\r\n currentPassword: validPassword.currentPassword,\r\n newPassword: validPassword.newPassword\r\n };\r\n this.accountService.changePassword(updateAccountPasswordRequest).then(function () {\r\n validPassword.newPassword = '';\r\n validPassword.confirmPassword = '';\r\n validPassword.currentPassword = '';\r\n validPassword.content = false;\r\n validPassword.format = false;\r\n validPassword.length = false;\r\n validPassword.match = false;\r\n _this.notificationService.success(zbuyer.messages.PasswordChangedSuccess);\r\n }).catch(function (response) {\r\n var _a;\r\n if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.exceptionMessage) {\r\n _this.notificationService.error(response.data.exceptionMessage, response.data.message);\r\n }\r\n else {\r\n _this.notificationService.error(zbuyer.messages.PasswordChangedError, zbuyer.messages.ApplicationTitle);\r\n }\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(\"change-password\");\r\n });\r\n }\r\n else {\r\n this.notificationService.error(zbuyer.messages.PasswordChangedError, zbuyer.messages.ApplicationTitle);\r\n this.spinWaitService.unblock(\"change-password\");\r\n }\r\n };\r\n NewPasswordDirectiveController.prototype.changeForgottenPassword = function () {\r\n var _this = this;\r\n this.spinWaitService.block(\"change-forgotten-password\");\r\n var validPassword = this.$scope.viewModel.validPassword;\r\n if (this.$scope.key === null) {\r\n this.notificationService.error(\"Something went wrong. Please return to our home page and try again.\", \"Error\");\r\n }\r\n if (this.$scope.key === Used) {\r\n this.resetNewPasswordForm();\r\n this.notificationService.warning(\"Your password has already been changed. Please try logging in with your new password.\", \"Please Log In\");\r\n this.spinWaitService.unblock(\"change-forgotten-password\");\r\n }\r\n else {\r\n if (this.verifyNewPassword()) {\r\n var updateForgottenPasswordRequest = {\r\n key: this.$scope.key,\r\n newPassword: validPassword.newPassword\r\n };\r\n this.accountService.changeForgottenPassword(updateForgottenPasswordRequest).then(function (response) {\r\n _this.resetNewPasswordForm();\r\n _this.$scope.key = Used;\r\n _this.takeToLogin(response.email);\r\n }).catch(function (response) {\r\n var _a;\r\n if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.exceptionMessage) {\r\n _this.notificationService.error(response.data.exceptionMessage, response.data.message);\r\n }\r\n else {\r\n _this.notificationService.error(zbuyer.messages.PasswordChangedError, zbuyer.messages.ApplicationTitle);\r\n }\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(\"change-forgotten-password\");\r\n });\r\n }\r\n else {\r\n this.notificationService.error(zbuyer.messages.PasswordChangedError, zbuyer.messages.ApplicationTitle);\r\n this.spinWaitService.unblock(\"change-forgotten-password\");\r\n }\r\n }\r\n };\r\n NewPasswordDirectiveController.prototype.resetNewPasswordForm = function () {\r\n var validPassword = this.$scope.viewModel.validPassword;\r\n validPassword.newPassword = '';\r\n validPassword.confirmPassword = '';\r\n validPassword.content = false;\r\n validPassword.format = false;\r\n validPassword.length = false;\r\n validPassword.match = false;\r\n this.verifyNewPassword();\r\n };\r\n NewPasswordDirectiveController.prototype.submitChangePasswordRequest = function () {\r\n if (typeof (this.$scope.key) !== 'undefined' && this.$scope.key !== null) {\r\n // This is a request from a user who is not logged in (forgot password change request)\r\n this.changeForgottenPassword();\r\n }\r\n else {\r\n // This is a request from a user who is currently logged in\r\n this.changeAccountPassword();\r\n }\r\n };\r\n NewPasswordDirectiveController.prototype.takeToLogin = function (email) {\r\n var _this = this;\r\n this.notificationService.success(zbuyer.messages.PasswordChangedRedirectToLogin);\r\n this.$timeout(function () {\r\n _this.$window.location.href = \"\".concat(appConfiguration.baseUrl, \"account/login?\").concat(names.zbuyer.queryparameters.Email, \"=\").concat(email);\r\n }, RedirectDelay);\r\n };\r\n NewPasswordDirectiveController.prototype.verifyNewPassword = function () {\r\n if (typeof this.$scope.viewModel == 'undefined') {\r\n return false;\r\n }\r\n var validPassword = this.$scope.viewModel.validPassword;\r\n var newPassword = validPassword.newPassword;\r\n var confirmPassword = validPassword.confirmPassword;\r\n if (typeof newPassword == 'undefined') {\r\n return false;\r\n }\r\n validPassword.match = (newPassword == confirmPassword);\r\n validPassword.length = newPassword.length >= 8 && newPassword.length <= 20;\r\n validPassword.format = newPassword.indexOf(' ') == -1;\r\n validPassword.content = newPassword.search(/[A-Za-z]/) != -1 && newPassword.search(/[0-9]/) != -1;\r\n if (validPassword.content && validPassword.format && validPassword.length && validPassword.match) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n NewPasswordDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return NewPasswordDirectiveController;\r\n }(controllers.ControllerBase));\r\n controllers.NewPasswordDirectiveController = NewPasswordDirectiveController;\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.NewPassword, NewPasswordDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/newsignupdirective.html';\r\n var NewSignupDirectiveController = /** @class */ (function (_super) {\r\n __extends(NewSignupDirectiveController, _super);\r\n function NewSignupDirectiveController($scope, $sce, crmService, notificationService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.crmService = crmService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.initializeNewSignupDirectiveController();\r\n return _this;\r\n }\r\n NewSignupDirectiveController.prototype.initializeNewSignupDirectiveController = function () {\r\n var _this = this;\r\n zbuyer.analytics.FacebookPixel.track(zbuyer.analytics.FacebookPixel.NewSignupPixelID, 'New Signup');\r\n var scope = this.$scope;\r\n var blockId = 'load-crm-type';\r\n var initCrm = this.crmService.getDefaultType().then(function (response) {\r\n scope.crmMessageBlockHtml = response.messageBlockHtml;\r\n scope.crmConnectionType = response.crmConnectionType;\r\n }).catch(function (error) {\r\n var errorMessageToDisplay;\r\n if (typeof error == 'string') {\r\n errorMessageToDisplay = error;\r\n }\r\n else {\r\n console.error(error);\r\n errorMessageToDisplay = 'An unexpected error has occurred. Please contact support.';\r\n }\r\n _this.notificationService.error(errorMessageToDisplay);\r\n }).finally(function () {\r\n scope.doneLoading = true;\r\n });\r\n this.spinWaitService.blockDuring(initCrm, blockId);\r\n };\r\n NewSignupDirectiveController.prototype.configureCrm = function () {\r\n if (!this.$scope.crmConnectionType) {\r\n console.error('No CRM Type available to configure');\r\n return;\r\n }\r\n var scope = this.$scope;\r\n controllers.AddCrmModalController.loadModal(this.$scope.crmConnectionType).then(function (submitted) {\r\n if (submitted) {\r\n scope.crmCreated = true;\r\n }\r\n });\r\n };\r\n NewSignupDirectiveController.prototype.trustHtml = function (html) {\r\n return this.$sce.trustAsHtml(html);\r\n };\r\n NewSignupDirectiveController.getDirective = function () {\r\n return {\r\n controller: NewSignupDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n closeCallback: '&onClose',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n NewSignupDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.zbuyer.services.CrmService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return NewSignupDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.NewSignup, NewSignupDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/paymentdirective.html';\r\n var PaymentDirectiveController = /** @class */ (function (_super) {\r\n __extends(PaymentDirectiveController, _super);\r\n function PaymentDirectiveController($scope, statesService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.statesService = statesService;\r\n _this.initializePaymentDirectiveController();\r\n return _this;\r\n }\r\n PaymentDirectiveController.getDirective = function () {\r\n return {\r\n controller: PaymentDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n billingAddressEnabled: '=',\r\n paymentForm: '=',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n PaymentDirectiveController.prototype.initializePaymentDirectiveController = function () {\r\n var viewModel = this.$scope.viewModel;\r\n this.statesService.getStates().then(function (result) {\r\n viewModel.states = result;\r\n });\r\n };\r\n PaymentDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.zbuyer.services.StatesService\r\n ];\r\n return PaymentDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.Payment, PaymentDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var vme = zbuyer.viewmodels.enums;\r\n var PreCheckoutController = /** @class */ (function (_super) {\r\n __extends(PreCheckoutController, _super);\r\n function PreCheckoutController($scope, $location, $timeout, $window, accountService, authenticationService, preCheckoutService, notificationService, animationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$location = $location;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.accountService = accountService;\r\n _this.authenticationService = authenticationService;\r\n _this.preCheckoutService = preCheckoutService;\r\n _this.notificationService = notificationService;\r\n _this.animationService = animationService;\r\n _this.initializeController();\r\n return _this;\r\n }\r\n Object.defineProperty(PreCheckoutController.prototype, \"preCheckoutStep\", {\r\n get: function () {\r\n return vme.PreCheckoutStep;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PreCheckoutController.prototype, \"requestedActiveStep\", {\r\n set: function (step) {\r\n this.setActiveStep(step);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PreCheckoutController.prototype.initializeController = function () {\r\n var _this = this;\r\n this.$scope.viewModel = preCheckoutViewModel;\r\n preCheckoutViewModel.processing = true;\r\n preCheckoutViewModel.workingAreaCounties = [];\r\n preCheckoutViewModel.workingAreaTitle = 'Working Area';\r\n preCheckoutViewModel.teamSizeOptions = [];\r\n this.authenticationService.getInitialAuthPromise().then(function (authenticated) {\r\n if (!authenticated) {\r\n // signup/precheckout requires an existing account\r\n _this.$window.location.href = 'signup';\r\n return;\r\n }\r\n var stepParameter = parseInt(_this.$location.search()[names.zbuyer.queryparameters.Step]);\r\n if (!_this.setActiveStepFromParameter(stepParameter)) {\r\n if (preCheckoutViewModel.step) {\r\n _this.setActiveStep(preCheckoutViewModel.step, false);\r\n }\r\n else {\r\n // No overriding URL parameter for step, so determine dynamically\r\n _this.determineNextStep();\r\n }\r\n }\r\n _this.$scope.$on('$locationChangeSuccess', function (event, newUrl) {\r\n var newLocation = new URL(newUrl);\r\n var newStep = parseInt(newLocation.searchParams.get(names.zbuyer.queryparameters.Step));\r\n // Navigation operations (e.g. back-button) should update the UI when the step parameter changes\r\n if (newStep != _this.$scope.viewModel.step) {\r\n _this.$timeout(function () { return _this.setActiveStepFromParameter(newStep); });\r\n }\r\n });\r\n });\r\n };\r\n PreCheckoutController.prototype.continueToNextStep = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.processing = true;\r\n switch (viewModel.step) {\r\n case vme.PreCheckoutStep.LeadType:\r\n if (viewModel.questionStatuses) {\r\n viewModel.questionStatuses.answeredLeadType = true;\r\n }\r\n this.determineNextStep(true);\r\n return;\r\n case vme.PreCheckoutStep.WorkingArea:\r\n this.preCheckoutService.validateWorkingAreaDisplay(viewModel.workingAreaCounties)\r\n .then(function (success) {\r\n if (success) {\r\n if (viewModel.questionStatuses) {\r\n viewModel.questionStatuses.answeredAreas = true;\r\n }\r\n _this.determineNextStep(true);\r\n }\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n return;\r\n case vme.PreCheckoutStep.TeamSize:\r\n this.preCheckoutService.setTeamSize(viewModel.teamSize)\r\n .then(function () {\r\n if (viewModel.questionStatuses) {\r\n viewModel.questionStatuses.answeredTeamSize = true;\r\n }\r\n _this.determineNextStep(true);\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n return;\r\n case vme.PreCheckoutStep.BasicEdit:\r\n var finalRecommendedPackage = viewModel.recommendedPackageViewModel;\r\n if (!finalRecommendedPackage) {\r\n this.handleError(\"No leads package has been created. Please reload the page.\");\r\n }\r\n var validateRequest = {\r\n counties: finalRecommendedPackage.counties,\r\n sellerLeadCount: finalRecommendedPackage.sellerLeadCount,\r\n buyerLeadCount: finalRecommendedPackage.buyerLeadCount,\r\n totalPriceUSD: finalRecommendedPackage.totalPriceUSD\r\n };\r\n this.preCheckoutService.validateRecommendedPackageDisplay(validateRequest)\r\n .then(function (response) {\r\n if (response.success) {\r\n _this.$window.location.href = 'account/subscription?checkout=true';\r\n return;\r\n }\r\n _this.handleError(response.errorMessageToDisplay);\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n return;\r\n case vme.PreCheckoutStep.AdvancedEdit:\r\n this.$window.location.href = 'account/subscription?checkout=true';\r\n return;\r\n default:\r\n this.handleError(\"Unable to process signup step\");\r\n break;\r\n }\r\n viewModel.processing = false;\r\n this.setActiveStep(viewModel.step + 1, true);\r\n };\r\n PreCheckoutController.prototype.determineNextStep = function (isTransition) {\r\n var _this = this;\r\n if (isTransition === void 0) { isTransition = false; }\r\n var viewModel = this.$scope.viewModel;\r\n var questionStatuses = viewModel.questionStatuses;\r\n if (!questionStatuses) {\r\n this.preCheckoutService.getQuestionStatuses()\r\n .then(function (response) {\r\n if (!response.success) {\r\n throw 'Failed to get question statuses';\r\n }\r\n viewModel.questionStatuses = response;\r\n // Recurse now with valid question statuses attached to model\r\n _this.determineNextStep(isTransition);\r\n })\r\n .catch(function (err) {\r\n _this.handleError(err);\r\n viewModel.step = vme.PreCheckoutStep.LeadType;\r\n _this.setActiveStep(viewModel.step, isTransition);\r\n });\r\n return;\r\n }\r\n if (!questionStatuses.answeredLeadType) {\r\n this.setActiveStep(vme.PreCheckoutStep.LeadType, true);\r\n }\r\n else if (!questionStatuses.answeredAreas) {\r\n this.setActiveStep(vme.PreCheckoutStep.WorkingArea, true);\r\n }\r\n else if (!questionStatuses.answeredTeamSize) {\r\n this.setActiveStep(vme.PreCheckoutStep.TeamSize, true);\r\n }\r\n else {\r\n this.setActiveStep(vme.PreCheckoutStep.BasicEdit, true);\r\n }\r\n };\r\n PreCheckoutController.prototype.goToBasicEdit = function () {\r\n this.setActiveStep(vme.PreCheckoutStep.BasicEdit, false);\r\n };\r\n PreCheckoutController.prototype.handleError = function (error) {\r\n this.$window.scrollTo(this.$window.scrollX, 0);\r\n var viewModel = this.$scope.viewModel;\r\n if (typeof error == 'string') {\r\n viewModel.errorMessageToDisplay = error;\r\n }\r\n else {\r\n viewModel.errorMessageToDisplay = 'An unexpected error has occurred. Please refresh the page.';\r\n console.log(error);\r\n }\r\n this.notificationService.error(viewModel.errorMessageToDisplay);\r\n viewModel.processing = false;\r\n };\r\n PreCheckoutController.prototype.setActiveStep = function (nextStep, isTransition) {\r\n var _this = this;\r\n if (isTransition === void 0) { isTransition = false; }\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.processing = true;\r\n viewModel.step = nextStep;\r\n var stepParameter = parseInt(this.$location.search()[names.zbuyer.queryparameters.Step]);\r\n if (stepParameter != viewModel.step) {\r\n // Ensure URL reflects new step\r\n this.$location.search(names.zbuyer.queryparameters.Step, viewModel.step);\r\n if (!stepParameter || stepParameter < vme.PreCheckoutStep.LeadType || stepParameter > vme.PreCheckoutStep.AdvancedEdit) {\r\n // Forget history if URL parameter was never valid\r\n this.$location.replace();\r\n }\r\n }\r\n switch (viewModel.step) {\r\n case vme.PreCheckoutStep.LeadType:\r\n viewModel.fullName = 'New User';\r\n this.accountService.getAccountProfile()\r\n .then(function (accountInfo) {\r\n viewModel.fullName = \"\".concat(accountInfo.account.firstName, \" \").concat(accountInfo.account.lastName);\r\n _this.readyForStep(isTransition);\r\n })\r\n .catch(function (err) {\r\n isTransition = false;\r\n _this.handleError(err);\r\n });\r\n return;\r\n case vme.PreCheckoutStep.WorkingArea:\r\n viewModel.workingAreaCounties = [];\r\n viewModel.workingAreaTitle = 'Working Area';\r\n this.preCheckoutService.getCurrentWorkingArea()\r\n .then(function (response) {\r\n viewModel.workingAreaCounties = response.counties;\r\n viewModel.workingAreaTitle = response.areaTitle;\r\n _this.readyForStep(isTransition);\r\n })\r\n .catch(function (err) {\r\n _this.handleError(err);\r\n });\r\n return;\r\n case vme.PreCheckoutStep.TeamSize:\r\n this.preCheckoutService.getTeamSize()\r\n .then(function (teamSizeInfo) {\r\n viewModel.teamSize = teamSizeInfo.currentTeamSize;\r\n viewModel.teamSizeOptions = teamSizeInfo.teamSizeOptions;\r\n _this.readyForStep(isTransition);\r\n })\r\n .catch(function (err) {\r\n viewModel.teamSize = null;\r\n viewModel.teamSizeOptions = [];\r\n _this.handleError(err);\r\n });\r\n return;\r\n case vme.PreCheckoutStep.BasicEdit:\r\n viewModel.recommendedPackageViewModel = null;\r\n this.preCheckoutService.getRecommendedPackage()\r\n .then(function (response) {\r\n if (response.advancedModeRequired) {\r\n _this.setActiveStep(vme.PreCheckoutStep.AdvancedEdit, isTransition);\r\n return;\r\n }\r\n viewModel.recommendedPackageViewModel = response;\r\n _this.readyForStep(isTransition);\r\n })\r\n .catch(function (err) {\r\n _this.handleError(err);\r\n });\r\n return;\r\n case vme.PreCheckoutStep.AdvancedEdit:\r\n viewModel.advancedPackageData = null;\r\n this.preCheckoutService.getAdvancedPackage()\r\n .then(function (response) {\r\n viewModel.advancedPackageData = response;\r\n _this.readyForStep(isTransition);\r\n })\r\n .catch(function (err) {\r\n _this.handleError(err);\r\n });\r\n return;\r\n default:\r\n this.handleError(\"Unable to proceed to signup step\");\r\n return;\r\n }\r\n this.readyForStep(isTransition);\r\n };\r\n PreCheckoutController.prototype.setActiveStepFromParameter = function (stepParameter) {\r\n var viewModel = this.$scope.viewModel;\r\n if (stepParameter >= vme.PreCheckoutStep.LeadType && stepParameter <= vme.PreCheckoutStep.AdvancedEdit) {\r\n if (stepParameter != viewModel.step) {\r\n this.setActiveStep(stepParameter);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n PreCheckoutController.prototype.readyForStep = function (animate) {\r\n var viewModel = this.$scope.viewModel;\r\n this.$window.scrollTo(this.$window.scrollX, 0);\r\n if (animate) {\r\n var stepElement = document.querySelector('.step');\r\n this.animationService.animateElement(stepElement, 'slideInUp', function () { });\r\n // Ensure view is showing (after allowing animation to start)\r\n this.$timeout(function () {\r\n viewModel.processing = false;\r\n });\r\n }\r\n else {\r\n viewModel.processing = false;\r\n }\r\n };\r\n PreCheckoutController.prototype.continueWithLeadTypes = function (preferSellers, preferBuyers) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.processing = true;\r\n this.preCheckoutService.setLeadTypePreference(preferSellers, preferBuyers)\r\n .then(function () {\r\n viewModel.preferSellers = preferSellers;\r\n viewModel.preferBuyers = preferBuyers;\r\n _this.continueToNextStep();\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n };\r\n PreCheckoutController.prototype.removeCounty = function (county) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var indexToRemove = viewModel.workingAreaCounties.indexOf(county);\r\n if (indexToRemove >= 0) {\r\n viewModel.workingAreaCounties.splice(indexToRemove, 1);\r\n this.preCheckoutService.removeCountyFromWorkingArea(county)\r\n .catch(function (err) {\r\n // Add back to array if it failed\r\n viewModel.workingAreaCounties.splice(indexToRemove, 0, county);\r\n _this.handleError(err);\r\n });\r\n }\r\n };\r\n PreCheckoutController.prototype.showCountySelectModal = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n controllers.SelectCountyModalController.loadModal(viewModel.workingAreaCounties)\r\n .then(function (selectedCounty) {\r\n if (!selectedCounty) {\r\n return;\r\n }\r\n viewModel.workingAreaCounties.push(selectedCounty);\r\n return _this.preCheckoutService.addCountyToWorkingArea(selectedCounty);\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n };\r\n PreCheckoutController.prototype.showLearnMoreModal = function (track) {\r\n controllers.LearnMoreModalController.loadModal(track);\r\n };\r\n PreCheckoutController.prototype.showMetroSelectModal = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n // Get selected metro from modal, add to working area, and refresh working area counties directly from API\r\n controllers.SelectMetroModalController.loadModal()\r\n .then(function (selectedMetroArea) {\r\n var _a;\r\n if (!selectedMetroArea) {\r\n return;\r\n }\r\n // Immediately add counties based on expected result of actual adding the metro area\r\n var newCounties = selectedMetroArea.counties.filter(function (metroCounty) {\r\n return !viewModel.workingAreaCounties.some(function (county) {\r\n return county.name == metroCounty.name && county.stateAbbreviation == metroCounty.stateAbbreviation;\r\n });\r\n });\r\n (_a = viewModel.workingAreaCounties).push.apply(_a, newCounties);\r\n return _this.preCheckoutService.addMetroAreaToWorkingArea(selectedMetroArea)\r\n .then(function () {\r\n return _this.preCheckoutService.getCurrentWorkingArea()\r\n .then(function (response) {\r\n viewModel.workingAreaTitle = response.areaTitle;\r\n })\r\n // Tolerate not getting working area title - not critical\r\n .catch(function (err) { return console.log(err); });\r\n });\r\n })\r\n .catch(function (err) { return _this.handleError(err); });\r\n };\r\n PreCheckoutController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Location,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.AuthenticationService,\r\n names.zbuyer.services.CheckoutHelperService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.ui.services.AnimationService\r\n ];\r\n return PreCheckoutController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .factory('preCheckoutViewModel', function () { return preCheckoutViewModel; })\r\n .controller(names.zbuyer.controllers.PreCheckoutController, PreCheckoutController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/recommendedpackagecountybreakdownmodal.html';\r\n var RecommendedPackageCountyBreakdownController = /** @class */ (function () {\r\n function RecommendedPackageCountyBreakdownController() {\r\n }\r\n RecommendedPackageCountyBreakdownController.getController = function () {\r\n return {\r\n controller: RecommendedPackageCountyBreakdownController,\r\n bindings: {\r\n $uibModalInstance: \"\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/selectcountymodal.html';\r\n var SelectCountyModalController = /** @class */ (function (_super) {\r\n __extends(SelectCountyModalController, _super);\r\n function SelectCountyModalController($scope, $q, $uibModalInstance, preCheckoutService, modalService, selectCountiesViewModel) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$q = $q;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.preCheckoutService = preCheckoutService;\r\n _this.modalService = modalService;\r\n _this.selectCountiesViewModel = selectCountiesViewModel;\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n $scope.viewModel = selectCountiesViewModel;\r\n return _this;\r\n }\r\n SelectCountyModalController.loadModal = function (countiesAlreadySelected) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var $q = $injector.get(names.angular.Q);\r\n var modalInstance = $uibModal.open({\r\n controller: names.zbuyer.controllers.SelectCountyModalController,\r\n resolve: {\r\n selectCountyViewModel: {\r\n previouslySelectedCounties: countiesAlreadySelected !== null && countiesAlreadySelected !== void 0 ? countiesAlreadySelected : [],\r\n states: zbuyer.models.State.usStates\r\n }\r\n },\r\n size: 'md',\r\n templateUrl: TemplateUrl\r\n });\r\n return modalInstance.result.then(function (county) { return $q.resolve(county); });\r\n };\r\n SelectCountyModalController.prototype.countySelected = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.selectedCountyAlreadyAdded = viewModel.previouslySelectedCounties.some(function (county) { return county.stateAbbreviation == viewModel.selectedCounty.stateAbbreviation && county.name == viewModel.selectedCounty.name; });\r\n };\r\n SelectCountyModalController.prototype.stateSelected = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.selectedCountyAlreadyAdded = false;\r\n viewModel.selectedCounty = null;\r\n return this.fillCounties(viewModel.selectedState.abbreviation);\r\n };\r\n SelectCountyModalController.prototype.fillCounties = function (stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.countiesForState = null;\r\n return this.preCheckoutService.getCountiesForState(stateAbbreviation)\r\n .then(function (counties) {\r\n // Make sure request is still applicable\r\n if (counties && counties.some(function (county) { return county.stateAbbreviation == viewModel.selectedState.abbreviation; })) {\r\n viewModel.countiesForState = counties;\r\n }\r\n return _this.$q.resolve();\r\n })\r\n .catch(function (err) {\r\n if (typeof err === 'string') {\r\n alert(err);\r\n }\r\n });\r\n };\r\n SelectCountyModalController.prototype.close = function (selectedCounty) {\r\n this.$uibModalInstance.close(selectedCounty);\r\n };\r\n SelectCountyModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.CheckoutHelperService,\r\n names.zbuyer.services.ModalService,\r\n 'selectCountyViewModel'\r\n ];\r\n return SelectCountyModalController;\r\n }(controllers.ControllerBase));\r\n controllers.SelectCountyModalController = SelectCountyModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.SelectCountyModalController, SelectCountyModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/selectmetromodal.html';\r\n var SelectMetroModalController = /** @class */ (function (_super) {\r\n __extends(SelectMetroModalController, _super);\r\n function SelectMetroModalController($scope, $q, $uibModalInstance, preCheckoutService, modalService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$q = $q;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.preCheckoutService = preCheckoutService;\r\n _this.modalService = modalService;\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n _this.$scope.viewModel = { states: zbuyer.models.State.usStates };\r\n return _this;\r\n }\r\n SelectMetroModalController.loadModal = function () {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var $q = $injector.get(names.angular.Q);\r\n var modalInstance = $uibModal.open({\r\n controller: names.zbuyer.controllers.SelectMetroModalController,\r\n size: 'md',\r\n templateUrl: TemplateUrl\r\n });\r\n return modalInstance.result.then(function (metroArea) { return $q.resolve(metroArea); });\r\n };\r\n SelectMetroModalController.prototype.stateSelected = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.selectedMetro = null;\r\n return this.fillMetroAreas(viewModel.selectedState.abbreviation);\r\n };\r\n SelectMetroModalController.prototype.fillMetroAreas = function (stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n return this.preCheckoutService.getMetroAreasForState(stateAbbreviation)\r\n .then(function (metros) {\r\n // Make sure request is still applicable\r\n if (metros && metros.some(function (metro) { return metro.stateCode == viewModel.selectedState.abbreviation; })) {\r\n viewModel.metrosForState = metros;\r\n }\r\n return _this.$q.resolve();\r\n })\r\n .catch(function (err) {\r\n if (typeof err === 'string') {\r\n alert(err);\r\n }\r\n });\r\n };\r\n SelectMetroModalController.prototype.close = function (selectedMetro) {\r\n this.$uibModalInstance.close(selectedMetro);\r\n };\r\n SelectMetroModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Q,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.CheckoutHelperService,\r\n names.zbuyer.services.ModalService\r\n ];\r\n return SelectMetroModalController;\r\n }(controllers.ControllerBase));\r\n controllers.SelectMetroModalController = SelectMetroModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.SelectMetroModalController, SelectMetroModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var vme = zbuyer.viewmodels.enums;\r\n var SignupStepElement = '.signup-step';\r\n var EmailRegExp = /^([\\w-+\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,11}|[0-9]{1,3})(\\]?)$/;\r\n var SignupController = /** @class */ (function (_super) {\r\n __extends(SignupController, _super);\r\n function SignupController($scope, $cookies, $location, $q, $timeout, $window, appConfiguration, accountService, authenticationService, notificationService, signupService, spinWaitService, animationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$cookies = $cookies;\r\n _this.$location = $location;\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.appConfiguration = appConfiguration;\r\n _this.accountService = accountService;\r\n _this.authenticationService = authenticationService;\r\n _this.notificationService = notificationService;\r\n _this.signupService = signupService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.animationService = animationService;\r\n _this.initializeSignupController();\r\n return _this;\r\n }\r\n Object.defineProperty(SignupController.prototype, \"signupStep\", {\r\n get: function () {\r\n return vme.SignupStep;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SignupController.prototype, \"isContactInfoStep\", {\r\n get: function () {\r\n return this.$scope.viewModel.signupStep == vme.SignupStep.ContactInfo;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SignupController.prototype, \"isLocationInfoStep\", {\r\n get: function () {\r\n return this.$scope.viewModel.signupStep == vme.SignupStep.LocationInfo;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SignupController.prototype.initializeSignupController = function () {\r\n var _this = this;\r\n this.$scope.viewModel = signupViewModel;\r\n this.$scope.emailRegExp = EmailRegExp;\r\n signupViewModel.signupProcessing = true;\r\n signupViewModel.signupStep = vme.SignupStep.ContactInfo;\r\n this.authenticationService.getInitialAuthPromise().then(function (authenticated) {\r\n _this.initializeAccountViewModel(authenticated).then(function () {\r\n _this.determineActiveStep(authenticated);\r\n });\r\n });\r\n };\r\n SignupController.prototype.animateNextStep = function (element, callback) {\r\n this.animationService.animateElement(element, 'slideInUp', callback);\r\n };\r\n /**\r\n * \"Continue\" button handler, processes results of current step and advances\r\n * to next step where applicable.\r\n *\r\n * */\r\n SignupController.prototype.continueSignup = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var accountController = this.getAccountController();\r\n switch (viewModel.signupStep) {\r\n case vme.SignupStep.ContactInfo:\r\n if (this.$scope.contactInfoForm.$invalid) {\r\n this.$scope.validate = true;\r\n return; // Not ready for next step\r\n }\r\n // Convert full name to separate data values to be sent\r\n var firstSpaceIndex = viewModel.fullName.indexOf(' ');\r\n viewModel.accountViewModel.account.firstName = viewModel.fullName.slice(0, firstSpaceIndex);\r\n viewModel.accountViewModel.account.lastName = viewModel.fullName.slice(firstSpaceIndex + 1);\r\n break;\r\n case vme.SignupStep.LocationInfo:\r\n if (this.$scope.locationInfoForm.$invalid) {\r\n this.$scope.validate = true;\r\n return; // Not ready for next step\r\n }\r\n break;\r\n case vme.SignupStep.Password:\r\n this.createAccount();\r\n return; // Expected to redirect or have error\r\n case vme.SignupStep.Subscription:\r\n return; // No next step, shouldn't be here\r\n }\r\n this.setActiveStep(viewModel.signupStep + 1);\r\n };\r\n SignupController.prototype.createAccount = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var newPasswordController = this.getNewPasswordController();\r\n if (newPasswordController.invalidPassword()) {\r\n return;\r\n }\r\n var password = newPasswordController.getNewPassword();\r\n var account = viewModel.accountViewModel.account;\r\n var createAccountRequest = {\r\n address: account.address,\r\n campaignNumber: parseInt(this.$location.search()[names.zbuyer.queryparameters.CampaignNumber]) || null,\r\n companyName: account.company,\r\n email: account.email,\r\n firstName: account.firstName,\r\n lastName: account.lastName,\r\n memberType: account.memberType,\r\n password: password,\r\n phoneNumber: { fullNumber: account.phone.replace(/\\W+/g, '') },\r\n viewId: this.$cookies.get(names.zbuyer.cookies.ViewId)\r\n };\r\n var blockUiName = 'SignupLogin';\r\n this.spinWaitService.block(blockUiName);\r\n this.signupService.newSignup(createAccountRequest).then(function (response) {\r\n if (!response.isNewAccount) {\r\n if (!response.canLogin) {\r\n _this.scrollToTop();\r\n viewModel.signupException = true;\r\n _this.animationService.animateElement(document.querySelector('.signup-exception'), 'slideInUp', function () { });\r\n return;\r\n }\r\n // Otherwise, user attempted to re-register, so go ahead and sign them in\r\n }\r\n // Send back into signup, now authenticated, to set up rest of account\r\n return _this.authenticationService.loginWithUserNameAndPassword(account.email, password).then(function (token) {\r\n _this.$window.location.reload();\r\n }).catch(function (reason) {\r\n _this.notificationService.error(reason.data.error_description, zbuyer.messages.LoginFailed);\r\n }).finally(function () {\r\n _this.$cookies.remove(names.zbuyer.cookies.ViewId);\r\n });\r\n }).catch(function (response) {\r\n _this.notificationService.error(zbuyer.messages.SignupError, zbuyer.messages.ApplicationTitle);\r\n }).finally(function () { return _this.spinWaitService.unblock(blockUiName); });\r\n };\r\n SignupController.prototype.determineActiveStep = function (accountCreated) {\r\n var signupViewModel = this.$scope.viewModel;\r\n if (!accountCreated) {\r\n // No account yet. Note: Account view model will be used for first steps but not account directive\r\n var account = signupViewModel.accountViewModel.account = {};\r\n account.address = {};\r\n // Use any query parameters providing profile info\r\n account.firstName = this.$location.search()[names.zbuyer.queryparameters.FirstName] || '';\r\n account.lastName = this.$location.search()[names.zbuyer.queryparameters.LastName] || '';\r\n account.phone = this.$location.search()[names.zbuyer.queryparameters.Phone] || '';\r\n account.email = this.$location.search()[names.zbuyer.queryparameters.Email] || '';\r\n account.address.zipCode = this.$location.search()[names.zbuyer.queryparameters.Zip] || '';\r\n if (account.email && account.email.match(EmailRegExp)) {\r\n this.$scope.hideEmail = true;\r\n }\r\n // Set up single field for first and last name (will be split into firstName/lastName on submit)\r\n signupViewModel.fullName = \"\".concat(account.firstName, \" \").concat(account.lastName).trim();\r\n this.sendLandingToApi();\r\n this.setActiveStep(vme.SignupStep.ContactInfo);\r\n }\r\n else {\r\n // Account has been created - continue steps\r\n var accountViewModel = this.$scope.viewModel.accountViewModel;\r\n if (!accountViewModel.account.subscription) {\r\n this.setActiveStep(vme.SignupStep.Subscription);\r\n }\r\n else {\r\n // Nothing to do in signup: account already fully created and subscribed\r\n this.$window.location.href = this.appConfiguration.baseUrl;\r\n }\r\n }\r\n var account = signupViewModel.accountViewModel.account;\r\n };\r\n SignupController.prototype.displaySignupException = function () {\r\n this.scrollToTop();\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.signupException = true;\r\n viewModel.signupProcessing = false;\r\n this.animationService.animateElement(document.querySelector('.signup-exception'), 'slideInUp', function () { });\r\n };\r\n SignupController.prototype.getAccountController = function () {\r\n var accountDirectiveElement = angular.element(controllers.AccountDirectiveElement)[0];\r\n var controller = SignupController.getControllerFromSourceElement(accountDirectiveElement, names.zbuyer.directives.Account);\r\n return controller;\r\n };\r\n SignupController.prototype.getNewPasswordController = function () {\r\n var newPasswordDirectiveElement = angular.element(controllers.NewPasswordDirectiveElement)[0];\r\n var controller = SignupController.getControllerFromSourceElement(newPasswordDirectiveElement, names.zbuyer.directives.NewPassword);\r\n return controller;\r\n };\r\n SignupController.prototype.initializeAccountViewModel = function (authenticated) {\r\n var _this = this;\r\n var deferred = this.$q.defer();\r\n var signupViewModel = this.$scope.viewModel;\r\n var accountViewModel = signupViewModel.accountViewModel = {\r\n subscriptionViewModel: {},\r\n isEditingEnabled: true,\r\n subscriptionEditViewModel: {},\r\n cartBuilderViewModel: {}\r\n };\r\n if (!authenticated) {\r\n // No account will exist, but ensure member type options are available for initial signup steps\r\n this.accountService.getMemberTypes().then(function (result) {\r\n accountViewModel.memberTypes = result.memberTypes;\r\n });\r\n deferred.resolve();\r\n return deferred.promise;\r\n }\r\n this.accountService.getAccountProfile().then(function (result) {\r\n accountViewModel.account = result.account;\r\n accountViewModel.subscriptionViewModel.account = result.account;\r\n accountViewModel.subscriptionEditViewModel.account = result.account;\r\n accountViewModel.memberTypes = result.memberTypes;\r\n // Already collected from form, but may be used for live chat plugin\r\n signupViewModel.fullName = \"\".concat(result.account.firstName, \" \").concat(result.account.lastName).trim();\r\n deferred.resolve();\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.message, zbuyer.messages.ApplicationTitle);\r\n deferred.reject();\r\n });\r\n this.accountService.getInvestorNotificationEmails().then(function (result) {\r\n accountViewModel.investorNotificationEmails = result.investorNotificationEmails;\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.message, zbuyer.messages.ApplicationTitle);\r\n });\r\n return deferred.promise;\r\n };\r\n SignupController.prototype.redirectToLogin = function () {\r\n this.$window.location.href = 'account/login';\r\n };\r\n SignupController.prototype.scrollToTop = function () {\r\n this.$window.scrollTo(this.$window.scrollX, 0);\r\n };\r\n SignupController.prototype.sendLandingToApi = function () {\r\n var _this = this;\r\n var storedViewId = this.$cookies.get(names.zbuyer.cookies.ViewId);\r\n if (typeof storedViewId !== 'undefined') {\r\n return;\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n var request = {\r\n authCode: this.$location.search()[names.zbuyer.queryparameters.AuthCode],\r\n campaignNumber: parseInt(this.$location.search()[names.zbuyer.queryparameters.CampaignNumber]) || null,\r\n clickTrackId: parseInt(this.$location.search()[names.zbuyer.queryparameters.ClickTrackId]) || null,\r\n publisherId: this.$location.search()[names.zbuyer.queryparameters.PublisherId],\r\n referrer: this.$location.search()[names.zbuyer.queryparameters.Referrer] || viewModel.referrer,\r\n viewId: storedViewId\r\n };\r\n this.signupService.sendLanding(request).then(function (response) {\r\n _this.$cookies.put(names.zbuyer.cookies.ViewId, response.viewId.toString());\r\n viewModel.signupFailed = false;\r\n }).catch(function (reason) {\r\n _this.notificationService.error(zbuyer.messages.ViewIdError, zbuyer.messages.ApplicationTitle);\r\n viewModel.signupFailed = true;\r\n });\r\n };\r\n /**\r\n * Sets next active sign step in UI and activates relevant area in account view\r\n *\r\n * @param nextStep - signup step to become active\r\n */\r\n SignupController.prototype.setActiveStep = function (nextStep) {\r\n var accountController = this.getAccountController();\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.signupStep = nextStep;\r\n var isTransition = true;\r\n switch (viewModel.signupStep) {\r\n case vme.SignupStep.ContactInfo:\r\n isTransition = false;\r\n this.$scope.validate = false;\r\n break;\r\n case vme.SignupStep.LocationInfo:\r\n this.$scope.validate = false;\r\n break;\r\n case vme.SignupStep.Password:\r\n var newPasswordController = this.getNewPasswordController();\r\n newPasswordController.newPasswordFocus();\r\n accountController.showChangePassword();\r\n break;\r\n case vme.SignupStep.Subscription:\r\n accountController.showAccountSubscription();\r\n break;\r\n }\r\n if (isTransition) {\r\n this.animateNextStep(document.querySelector(SignupStepElement), function () { });\r\n // Ensure view is showing (after allowing animation to start)\r\n this.$timeout(function () {\r\n viewModel.signupProcessing = false;\r\n });\r\n }\r\n else {\r\n viewModel.signupProcessing = false;\r\n }\r\n };\r\n SignupController.prototype.signupEmailDuplicate = function () {\r\n this.startOver();\r\n this.animateNextStep(document.querySelector(SignupStepElement), function () { });\r\n };\r\n SignupController.prototype.startOver = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.signupStep = vme.SignupStep.ContactInfo;\r\n viewModel.signupException = false;\r\n viewModel.signupProcessing = false;\r\n };\r\n SignupController.prototype.updateChatInfo = function () {\r\n var viewModel = this.$scope.viewModel;\r\n };\r\n SignupController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Cookies,\r\n names.angular.Location,\r\n names.angular.Q,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.AppConfiguration,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.AuthenticationService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SignupService,\r\n names.zbuyer.services.SpinWaitService,\r\n names.zbuyer.ui.services.AnimationService\r\n ];\r\n return SignupController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .factory('signupViewModel', function () { return signupViewModel; })\r\n .controller(names.zbuyer.controllers.SignupController, SignupController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/sitefooterdirective.html';\r\n var SiteFooterDirectiveController = /** @class */ (function (_super) {\r\n __extends(SiteFooterDirectiveController, _super);\r\n function SiteFooterDirectiveController($scope, appSettingsService, notificationService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.appSettingsService = appSettingsService;\r\n _this.notificationService = notificationService;\r\n _this.initializeSiteFooterDirective();\r\n return _this;\r\n }\r\n SiteFooterDirectiveController.getDirective = function () {\r\n return {\r\n controller: SiteFooterDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n minimal: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n SiteFooterDirectiveController.prototype.initializeSiteFooterDirective = function () {\r\n var _this = this;\r\n this.$scope.viewModel = {};\r\n this.appSettingsService.getAppSettings().then(function (settings) {\r\n _this.$scope.viewModel = settings;\r\n }).catch(function (err) {\r\n console.debug(err);\r\n _this.notificationService.error(zbuyer.messages.AppSettingsError, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n SiteFooterDirectiveController.prototype.getCopyrightYear = function () {\r\n var date = new Date();\r\n return date.getFullYear().toString();\r\n };\r\n SiteFooterDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.zbuyer.services.AppSettingsService,\r\n names.zbuyer.services.NotificationService\r\n ];\r\n return SiteFooterDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.SiteFooter, SiteFooterDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/subscriptiondirective.html';\r\n var SubscriptionDirectiveController = /** @class */ (function (_super) {\r\n __extends(SubscriptionDirectiveController, _super);\r\n function SubscriptionDirectiveController($scope, $sce, $window, appSettingsService, checkoutService, notificationService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$sce = $sce;\r\n _this.$window = $window;\r\n _this.appSettingsService = appSettingsService;\r\n _this.checkoutService = checkoutService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.initializeSubscriptionDirectiveController();\r\n return _this;\r\n }\r\n SubscriptionDirectiveController.getDirective = function () {\r\n return {\r\n controller: SubscriptionDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n SubscriptionDirectiveController.prototype.initializeSubscriptionDirectiveController = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.paymentViewModel = {};\r\n this.setAppSettings();\r\n this.setSubscriptionDetails();\r\n };\r\n SubscriptionDirectiveController.prototype.cancelUpdatePayment = function () {\r\n this.resetUpdatePaymentForm();\r\n };\r\n SubscriptionDirectiveController.prototype.resetUpdatePaymentForm = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.editPayment = false;\r\n viewModel.updatePaymentErrorMessage = null;\r\n viewModel.paymentForm.$setPristine();\r\n viewModel.paymentViewModel = {};\r\n };\r\n SubscriptionDirectiveController.prototype.setAppSettings = function () {\r\n var _this = this;\r\n this.appSettingsService.getAppSettings().then(function (settings) {\r\n _this.$scope.appSettings = settings;\r\n }).catch(function (response) {\r\n _this.notificationService.error(response.data.message, zbuyer.messages.ApplicationTitle);\r\n });\r\n };\r\n SubscriptionDirectiveController.prototype.setSubscriptionDetails = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n this.checkoutService.getSubscriptionStatusAndLocationsHtml().then(function (result) {\r\n viewModel.locationAreasHtml = _this.$sce.trustAsHtml(result.locationAreasHtml);\r\n viewModel.subscriptionStatusHtml = _this.$sce.trustAsHtml(result.subscriptionStatusHtml);\r\n });\r\n };\r\n SubscriptionDirectiveController.prototype.updatePayment = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.paymentForm.$invalid) {\r\n return;\r\n }\r\n var blockId = 'SubscriptionUpdatePayment';\r\n this.spinWaitService.block(blockId, names.misc.BlockUISpinnerCheckmarkClass, zbuyer.messages.UpdatingPayment);\r\n var request = {\r\n billingCity: viewModel.paymentViewModel.billingCity,\r\n billingState: viewModel.paymentViewModel.billingState.abbreviation,\r\n billingStreet: viewModel.paymentViewModel.billingStreet,\r\n billingZipCode: viewModel.paymentViewModel.billingZipCode,\r\n cardCVV2: viewModel.paymentViewModel.cardCVV2,\r\n cardExpirationMonth: viewModel.paymentViewModel.cardExpirationMonth,\r\n cardExpirationYear: viewModel.paymentViewModel.cardExpirationYear,\r\n cardNumber: viewModel.paymentViewModel.cardNumber.replace(/ /g, '')\r\n };\r\n this.checkoutService.updateCreditCard(request).then(function (result) {\r\n if (result.success) {\r\n _this.notificationService.success(zbuyer.messages.PaymentUpdatedSuccess);\r\n _this.resetUpdatePaymentForm();\r\n _this.setSubscriptionDetails();\r\n }\r\n else {\r\n viewModel.updatePaymentErrorMessage = result.errorMessageToDisplay;\r\n _this.notificationService.error(result.errorMessageToDisplay);\r\n }\r\n }).catch(function (reason) {\r\n viewModel.updatePaymentErrorMessage = zbuyer.messages.ErrorUpdatingPayment;\r\n _this.notificationService.error(zbuyer.messages.ErrorUpdatingPayment);\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(blockId);\r\n });\r\n };\r\n SubscriptionDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Sce,\r\n names.angular.Window,\r\n names.zbuyer.services.AppSettingsService,\r\n names.zbuyer.services.CheckoutService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return SubscriptionDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.Subscription, SubscriptionDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var me = zbuyer.models.enums;\r\n var TemplateUrl = 'staticpages/directives/subscriptioneditdirective.html';\r\n var CartFlashTimeoutMillis = 1000; // Time to block UI with indication on \"cart updated\"\r\n var BuyerLeadsPerPeriodMinimum = 20;\r\n var SubscriptionEditDirectiveController = /** @class */ (function (_super) {\r\n __extends(SubscriptionEditDirectiveController, _super);\r\n function SubscriptionEditDirectiveController($scope, $filter, $location, $q, $timeout, $window, checkoutService, countiesService, countyPackagesService, countyStatisticsService, spinWaitService, statesService, subscriptionService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$filter = $filter;\r\n _this.$location = $location;\r\n _this.$q = $q;\r\n _this.$timeout = $timeout;\r\n _this.$window = $window;\r\n _this.checkoutService = checkoutService;\r\n _this.countiesService = countiesService;\r\n _this.countyPackagesService = countyPackagesService;\r\n _this.countyStatisticsService = countyStatisticsService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.statesService = statesService;\r\n _this.subscriptionService = subscriptionService;\r\n _this.initializeSubscriptionEditDirectiveController();\r\n return _this;\r\n }\r\n SubscriptionEditDirectiveController.getDirective = function () {\r\n return {\r\n controller: SubscriptionEditDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n checkoutCallback: '&onCheckout',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n SubscriptionEditDirectiveController.prototype.initializeSubscriptionEditDirectiveController = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.sellerLeadsPerMonth = 0;\r\n this.$scope.losAngelesSubdivided = { county: 'Los Angeles (Subdivided)', state: 'CA' };\r\n this.showOverlayDuring(function () {\r\n return _this.statesService.getStates().then(function (result) {\r\n viewModel.states = result;\r\n if (!viewModel.account.address) {\r\n return _this.$q.resolve();\r\n }\r\n return _this.selectCountyByZip(viewModel.account.address.zipCode);\r\n });\r\n });\r\n this.setupCart();\r\n var checkoutFlag = this.$location.search()[names.zbuyer.queryparameters.Checkout];\r\n if (checkoutFlag) {\r\n if (checkoutFlag.toLowerCase() === true.toString()) {\r\n // Flag indicates we want to go straight to checkout\r\n this.$timeout(function () { return _this.cartCheckout(); });\r\n }\r\n }\r\n };\r\n SubscriptionEditDirectiveController.prototype.cartCheckout = function () {\r\n this.$scope.checkoutCallback();\r\n };\r\n SubscriptionEditDirectiveController.prototype.cartItemDescription = function (cartItem) {\r\n var memberAreaPending = cartItem.memberAreaPending;\r\n var quantity = '';\r\n var leadType;\r\n var detail;\r\n var plural = '';\r\n var packageSize = this.getPackageSize(memberAreaPending, cartItem.type);\r\n if (packageSize > 0) {\r\n quantity = \"\".concat(packageSize, \" \");\r\n }\r\n if (packageSize > 1 || packageSize === 0) {\r\n // Note: packageSize 0 is valid for a plural since 0 indicates \"no lead(s)\", and no number is shown\r\n // e.g. \"Seller Leads in Contra Costa, CA\"\r\n plural = 's';\r\n }\r\n switch (cartItem.type) {\r\n case me.MemberAreaPendingType.Buyer:\r\n leadType = 'Buyer';\r\n detail = \"in \".concat(memberAreaPending.county, \", \").concat(memberAreaPending.state);\r\n break;\r\n case me.MemberAreaPendingType.ProspectingInstant:\r\n leadType = 'Prospecting';\r\n detail = '(Instant Access)';\r\n break;\r\n case me.MemberAreaPendingType.ProspectingMonthly:\r\n leadType = 'Prospecting';\r\n detail = '(Added Monthly)';\r\n break;\r\n case me.MemberAreaPendingType.Seller:\r\n leadType = 'Seller';\r\n detail = \"in \".concat(memberAreaPending.county, \", \").concat(memberAreaPending.state);\r\n break;\r\n }\r\n // e.g. \"100 Buyer Leads in Greene, MO\" or \"50 Prospecting Leads (Added Monthly)\" or \"Seller Leads in Contra Costa, CA\"\r\n return \"\".concat(quantity).concat(leadType, \" Lead\").concat(plural, \" \").concat(detail);\r\n };\r\n SubscriptionEditDirectiveController.prototype.cartItemPrice = function (memberAreaPending, type) {\r\n var countyPackageData = this.getCountyPackageData(memberAreaPending.state, memberAreaPending.county);\r\n var price;\r\n switch (type) {\r\n case me.MemberAreaPendingType.Buyer:\r\n price = countyPackageData.setDefaultPricePerLeadBuyer * memberAreaPending.packageSizeBuyer;\r\n break;\r\n case me.MemberAreaPendingType.ProspectingInstant:\r\n case me.MemberAreaPendingType.ProspectingMonthly:\r\n price = 0;\r\n break;\r\n case me.MemberAreaPendingType.Seller:\r\n price = countyPackageData.setDefaultPricePerLeadSeller * memberAreaPending.packageSizeSeller;\r\n break;\r\n }\r\n return price;\r\n };\r\n SubscriptionEditDirectiveController.prototype.cartItemPriceText = function (cartItem) {\r\n var price = this.cartItemPrice(cartItem.memberAreaPending, cartItem.type);\r\n if (price === 0) {\r\n return 'FREE';\r\n }\r\n else if (!price) {\r\n // Invalid data used in calculating price\r\n return '';\r\n }\r\n return this.displayPrice(price);\r\n };\r\n SubscriptionEditDirectiveController.prototype.cartTotal = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var total = 0;\r\n viewModel.memberAreasPending.forEach(function (memberAreaPending) {\r\n var buyerLeadsPrice = _this.cartItemPrice(memberAreaPending, me.MemberAreaPendingType.Buyer);\r\n if (buyerLeadsPrice) {\r\n total += buyerLeadsPrice;\r\n }\r\n var sellerLeadsPrice = _this.cartItemPrice(memberAreaPending, me.MemberAreaPendingType.Seller);\r\n if (sellerLeadsPrice) {\r\n total += sellerLeadsPrice;\r\n }\r\n });\r\n return this.displayPrice(total);\r\n };\r\n SubscriptionEditDirectiveController.prototype.checkStatisticsModalShouldBeVisible = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var state = viewModel.selectedState.abbreviation;\r\n var county = viewModel.selectedCountyPackageData.county;\r\n if (!state || !county) {\r\n // County is un-selected\r\n viewModel.statisticModalLinkVisible = false;\r\n return this.$q.resolve();\r\n }\r\n var countyStatisticsFuture = this.countyStatisticsService.getCountyStatisticsForStateAndCounty(state, county);\r\n var countyMapFuture = this.countyStatisticsService.getCountyLeadsCoordinatesForStateAndCounty(state, county);\r\n var cityLeadsFuture = this.countyStatisticsService.getCityLeadCountsForStateAndCounty(state, county);\r\n var results = this.$q.all([countyStatisticsFuture, countyMapFuture, cityLeadsFuture]);\r\n return results.then(function (result) {\r\n // Verify results still match scope values for requested states and counties\r\n if (viewModel.selectedState && viewModel.selectedCountyPackageData) {\r\n if (viewModel.selectedState.abbreviation === state && viewModel.selectedCountyPackageData.county === county) {\r\n var countyStatistics = result[0].countyStatistics;\r\n var countyLeadsCoordinates = result[1].countyLeadsCoordinates;\r\n var cityLeads = result[2].cityLeads;\r\n try {\r\n viewModel.statisticModalLinkVisible = Boolean(countyStatistics.availability) ||\r\n Boolean(countyStatistics.averageHomeValue) ||\r\n Boolean(countyStatistics.averageLeadSharing) ||\r\n Boolean(countyStatistics.maxHomeValue) ||\r\n Boolean(countyStatistics.minHomeValue) ||\r\n Boolean(countyStatistics.needFinancingToBuy) ||\r\n Boolean(countyStatistics.sellersAlsoBuying) ||\r\n Boolean(countyStatistics.willingToDiscount) ||\r\n (Boolean(countyStatistics.leadMapEnabled) && Boolean(countyLeadsCoordinates.coordinates.length > 0)) ||\r\n (Boolean(countyStatistics.cityStatisticsEnabled) && Boolean(cityLeads.length > 0));\r\n }\r\n catch (e) {\r\n // One or more properties is currently undefined, keep from emitting errors\r\n viewModel.statisticModalLinkVisible = false;\r\n }\r\n }\r\n }\r\n }).catch(function (_) {\r\n // Do not display invalid data on error\r\n viewModel.statisticModalLinkVisible = false;\r\n });\r\n };\r\n SubscriptionEditDirectiveController.prototype.countyPackageButtonText = function (type) {\r\n var viewModel = this.$scope.viewModel;\r\n var found = viewModel.memberAreasPending.filter(function (m) { return m.state === viewModel.selectedState.abbreviation && m.county === viewModel.selectedCountyPackageData.county; });\r\n var buttonText = 'Add';\r\n if (found && found.length > 0) {\r\n var packageSize = this.getPackageSize(found[0], type);\r\n if (packageSize && packageSize > 0) {\r\n buttonText = 'Update';\r\n }\r\n }\r\n return buttonText;\r\n };\r\n SubscriptionEditDirectiveController.prototype.countySelected = function (blockUI) {\r\n var _this = this;\r\n if (blockUI === void 0) { blockUI = true; }\r\n if (blockUI) {\r\n return this.showOverlayDuring(function () { return _this.countySelected(false); });\r\n }\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.relatedCounties = null;\r\n if (!viewModel.selectedCountyPackageData) {\r\n return this.$q.resolve(); // Nothing else to do\r\n }\r\n if (viewModel.selectedCountyPackageData.county != this.$scope.losAngelesSubdivided.county) {\r\n this.setupBuyerSelector();\r\n this.setupSellerSelector();\r\n this.setupMemberAreaPendingSelections();\r\n }\r\n return this.$q.all([this.fillRelatedCounties(), this.checkStatisticsModalShouldBeVisible()]).then(function (_) { return; });\r\n };\r\n SubscriptionEditDirectiveController.prototype.deleteCartItem = function (cartItem) {\r\n var _this = this;\r\n switch (cartItem.type) {\r\n case me.MemberAreaPendingType.Buyer:\r\n cartItem.memberAreaPending.packageSizeBuyer = null;\r\n break;\r\n case me.MemberAreaPendingType.Seller:\r\n cartItem.memberAreaPending.packageSizeSeller = null;\r\n break;\r\n case me.MemberAreaPendingType.ProspectingInstant:\r\n case me.MemberAreaPendingType.ProspectingMonthly:\r\n // Prospecting item, not used to update database\r\n return;\r\n }\r\n this.showOverlayDuring(function () {\r\n return _this.subscriptionService.updateMemberAreaPending(cartItem.memberAreaPending).then(function () {\r\n return _this.setupCart();\r\n });\r\n }, 'Updating Cart...').then(function () { return _this.flashUpdatedCartOverlay(); });\r\n };\r\n SubscriptionEditDirectiveController.prototype.displayPrice = function (price) {\r\n return this.$filter(names.zbuyer.filters.Price)(price);\r\n };\r\n SubscriptionEditDirectiveController.prototype.editCartItem = function (cartItem) {\r\n var _this = this;\r\n this.showOverlayDuring(function () { return _this.selectCounty(cartItem.memberAreaPending.county, cartItem.memberAreaPending.state); });\r\n };\r\n SubscriptionEditDirectiveController.prototype.fillCartItems = function (memberAreasPending, prospectingLeadsOnSite, prospectingLeadsPerMonth) {\r\n var viewModel = this.$scope.viewModel;\r\n var cartItems = new Array();\r\n viewModel.memberAreasPending = memberAreasPending;\r\n viewModel.memberAreasPending.forEach(function (memberAreaPending) {\r\n if (memberAreaPending.packageSizeSeller !== null) {\r\n cartItems.push({ type: me.MemberAreaPendingType.Seller, memberAreaPending: memberAreaPending });\r\n }\r\n if (memberAreaPending.packageSizeBuyer !== null) {\r\n cartItems.push({ type: me.MemberAreaPendingType.Buyer, memberAreaPending: memberAreaPending });\r\n }\r\n });\r\n if (prospectingLeadsOnSite) {\r\n var cartItem = {\r\n type: me.MemberAreaPendingType.ProspectingInstant,\r\n memberAreaPending: { packageSizeProspecting: prospectingLeadsOnSite }\r\n };\r\n cartItems.push(cartItem);\r\n }\r\n if (prospectingLeadsPerMonth) {\r\n var cartItem = {\r\n type: me.MemberAreaPendingType.ProspectingMonthly,\r\n memberAreaPending: { packageSizeProspecting: prospectingLeadsPerMonth }\r\n };\r\n cartItems.push(cartItem);\r\n }\r\n viewModel.cartItems = cartItems;\r\n };\r\n SubscriptionEditDirectiveController.prototype.fillCounties = function (stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.countyPackageDataCounties = null; // incoming...\r\n return this.countyPackagesService.getCountyPackageDataForState(stateAbbreviation).then(function (result) {\r\n viewModel.countyPackageDataCounties = result;\r\n if (stateAbbreviation === _this.$scope.losAngelesSubdivided.state) {\r\n viewModel.countyPackageDataCounties.push(_this.$scope.losAngelesSubdivided);\r\n viewModel.countyPackageDataCounties = viewModel.countyPackageDataCounties.sort(function (a, b) { return a.county < b.county ? -1 : a.county > b.county ? 1 : 0; });\r\n }\r\n // Auto-select single choice if only one.\r\n if (viewModel.countyPackageDataCounties.length === 1) {\r\n viewModel.selectedCountyPackageData = viewModel.countyPackageDataCounties[0];\r\n return _this.countySelected(false);\r\n }\r\n return _this.$q.resolve();\r\n });\r\n };\r\n SubscriptionEditDirectiveController.prototype.fillRelatedCounties = function () {\r\n var viewModel = this.$scope.viewModel;\r\n if (!viewModel.selectedCountyPackageData) {\r\n // County was un-selected, no related counties to fill\r\n return this.$q.resolve();\r\n }\r\n return this.countiesService.getRelatedCounties(viewModel.selectedState.abbreviation, viewModel.selectedCountyPackageData.county).then(function (result) {\r\n // Ensure reponse is still relevant to current state of UI\r\n if (viewModel.selectedCountyPackageData && viewModel.selectedState) {\r\n if (viewModel.selectedCountyPackageData.county === result.countyRequested && viewModel.selectedState.abbreviation === result.stateRequested) {\r\n viewModel.relatedCounties = result.counties;\r\n }\r\n }\r\n });\r\n };\r\n SubscriptionEditDirectiveController.prototype.flashUpdatedCartOverlay = function () {\r\n var blockId = 'SubscriptionCart';\r\n this.spinWaitService.block(blockId, names.misc.BlockUISpinnerCheckmarkClass, zbuyer.messages.UpdateCart);\r\n var spinWaitService = this.spinWaitService;\r\n this.$timeout(CartFlashTimeoutMillis).finally(function () {\r\n spinWaitService.unblock(blockId);\r\n });\r\n };\r\n SubscriptionEditDirectiveController.prototype.getCountyPackageData = function (state, county) {\r\n var viewModel = this.$scope.viewModel;\r\n return viewModel.pendingCountyPackageDataCounties.filter(function (cpd) { return cpd.county === county && cpd.state === state; })[0];\r\n };\r\n SubscriptionEditDirectiveController.prototype.getPackageSize = function (memberAreaPending, type) {\r\n var packageSize;\r\n switch (type) {\r\n case me.MemberAreaPendingType.Buyer:\r\n packageSize = memberAreaPending.packageSizeBuyer;\r\n break;\r\n case me.MemberAreaPendingType.ProspectingInstant:\r\n case me.MemberAreaPendingType.ProspectingMonthly:\r\n packageSize = memberAreaPending.packageSizeProspecting;\r\n break;\r\n case me.MemberAreaPendingType.Seller:\r\n packageSize = memberAreaPending.packageSizeSeller;\r\n break;\r\n }\r\n return packageSize;\r\n };\r\n SubscriptionEditDirectiveController.prototype.getSelector = function (value, floor, ceil, disabled, onChange) {\r\n var _this = this;\r\n return {\r\n selectedValue: value,\r\n options: {\r\n autoHideLimitLabels: false,\r\n ceil: ceil,\r\n disabled: disabled,\r\n floor: floor,\r\n hideLimitLabels: false,\r\n onChange: function () {\r\n onChange(_this.$scope);\r\n },\r\n // Render all numeric values (max/min/etc except the central model value since we will render that independently)\r\n translate: function (value, sliderId, label) {\r\n return label == 'model' ? '' : value;\r\n }\r\n }\r\n };\r\n };\r\n SubscriptionEditDirectiveController.prototype.isProspectingCartItem = function (cartItem) {\r\n return (cartItem.type === me.MemberAreaPendingType.ProspectingInstant || cartItem.type === me.MemberAreaPendingType.ProspectingMonthly);\r\n };\r\n SubscriptionEditDirectiveController.prototype.isLosAngelesCounty = function () {\r\n var viewModel = this.$scope.viewModel;\r\n return viewModel.selectedCountyPackageData && viewModel.selectedCountyPackageData.county === this.$scope.losAngelesSubdivided.county;\r\n };\r\n SubscriptionEditDirectiveController.prototype.memberAreaPendingType = function () {\r\n return me.MemberAreaPendingType;\r\n };\r\n SubscriptionEditDirectiveController.prototype.notify = function (type) {\r\n var viewModel = this.$scope.viewModel;\r\n switch (type) {\r\n case me.MemberAreaPendingType.Buyer:\r\n viewModel.buyerLeadsPerMonth = 0;\r\n break;\r\n case me.MemberAreaPendingType.Seller:\r\n viewModel.sellerLeadsPerMonth = 0;\r\n break;\r\n }\r\n this.saveMemberAreaPackage(type);\r\n };\r\n SubscriptionEditDirectiveController.prototype.resetDropdownSelection = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.selectedCountyPackageData = null;\r\n viewModel.selectedState = null;\r\n this.$window.scrollTo({ top: 0 });\r\n };\r\n SubscriptionEditDirectiveController.prototype.saveMemberAreaPackage = function (type) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var search = viewModel.memberAreasPending.filter(function (m) { return m.state === viewModel.selectedState.abbreviation && m.county === viewModel.selectedCountyPackageData.county; });\r\n var memberAreaPending = (search && search.length > 0) ? search[0] : { county: viewModel.selectedCountyPackageData.county, state: viewModel.selectedState.abbreviation };\r\n switch (type) {\r\n case me.MemberAreaPendingType.Buyer:\r\n memberAreaPending.packageSizeBuyer = viewModel.buyerLeadsPerMonth;\r\n break;\r\n case me.MemberAreaPendingType.Seller:\r\n memberAreaPending.packageSizeSeller = viewModel.sellerLeadsPerMonth;\r\n break;\r\n case me.MemberAreaPendingType.ProspectingInstant:\r\n case me.MemberAreaPendingType.ProspectingMonthly:\r\n // Package should not be changed (only for display)\r\n return;\r\n }\r\n this.showOverlayDuring(function () {\r\n if (search && search.length > 0) {\r\n return _this.subscriptionService.updateMemberAreaPending(memberAreaPending).then(function () {\r\n return _this.setupCart();\r\n });\r\n }\r\n else {\r\n return _this.subscriptionService.addMemberAreaPending(memberAreaPending).then(function () {\r\n return _this.setupCart();\r\n });\r\n }\r\n }, 'Updating Cart...').then(function () { return _this.flashUpdatedCartOverlay(); });\r\n };\r\n SubscriptionEditDirectiveController.prototype.selectCounty = function (countyName, stateAbbreviation) {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n if (stateAbbreviation) {\r\n var selectedStateAbbrev = viewModel.selectedState && viewModel.selectedState.abbreviation;\r\n if (selectedStateAbbrev != stateAbbreviation) {\r\n // Need right state first. Bring blocking overlay back up after state load finished\r\n return this.selectState(stateAbbreviation).then(function () { return _this.showOverlayDuring(function () { return _this.selectCounty(countyName); }); });\r\n }\r\n }\r\n var search = viewModel.countyPackageDataCounties.filter(function (c) { return c.county == countyName; });\r\n if (search.length > 0) {\r\n this.$scope.viewModel.selectedCountyPackageData = search[0];\r\n return this.countySelected(false);\r\n }\r\n else {\r\n return this.$q.reject();\r\n }\r\n };\r\n SubscriptionEditDirectiveController.prototype.selectState = function (abbreviation) {\r\n var viewModel = this.$scope.viewModel;\r\n if (viewModel.selectedState && viewModel.selectedState.abbreviation === abbreviation) {\r\n return this.$q.resolve();\r\n }\r\n var search = viewModel.states.filter(function (s) { return s.abbreviation === abbreviation; });\r\n if (search.length > 0) {\r\n viewModel.selectedState = search[0];\r\n return this.stateSelected();\r\n }\r\n return this.$q.resolve();\r\n };\r\n SubscriptionEditDirectiveController.prototype.selectCountyByZip = function (zip) {\r\n var _this = this;\r\n return this.showOverlayDuring(function () {\r\n return _this.countiesService.getCountyForZip(zip).then(function (county) {\r\n if (county) {\r\n _this.selectCounty(county.name, county.stateAbbreviation);\r\n }\r\n });\r\n });\r\n };\r\n SubscriptionEditDirectiveController.prototype.setupBuyerSelector = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var onChange = function (scope) {\r\n scope.viewModel.buyerLeadsPerMonth = scope.buyerLeadsPerMonthSelector.selectedValue;\r\n };\r\n // Determine max leads/month for selector, and constrain the initial value to that max\r\n var ceil = Math.min(viewModel.selectedCountyPackageData.calcMaxPackageSizeBuyer, viewModel.selectedCountyPackageData.setMaxPackageSizeBuyer);\r\n var value = Math.min(ceil, viewModel.selectedCountyPackageData.setStdPackageSizeBuyer);\r\n var floor = ceil == 0 ? 0 : BuyerLeadsPerPeriodMinimum;\r\n viewModel.buyerLeadsPerMonth = value;\r\n // Strictly for display, treat as sold out when data indicates sold out OR allowed leads-per-month value is 0\r\n viewModel.treatBuyerAsSoldOut = (viewModel.selectedCountyPackageData.isSoldOutBuyer === 1 || value === 0);\r\n this.$scope.buyerLeadsPerMonthSelector = this.getSelector(value, floor, ceil, viewModel.treatBuyerAsSoldOut, onChange);\r\n };\r\n SubscriptionEditDirectiveController.prototype.setupCart = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var didCheckCart = this.checkoutService.checkCartIsValid().then(function (cartValidResponse) {\r\n viewModel.cartIsValid = cartValidResponse.cartIsValid;\r\n viewModel.cartErrorMessage = cartValidResponse.cartIsValid ? '' : cartValidResponse.errorMessageToDisplay;\r\n return cartValidResponse;\r\n });\r\n return this.countyPackagesService.getCountyPackageDataPendingForAccount().then(function (result) {\r\n viewModel.pendingCountyPackageDataCounties = result;\r\n return didCheckCart.then(function (cartValidResponse) {\r\n return _this.subscriptionService.getMemberAreasPending().then(function (memberAreasPending) {\r\n _this.fillCartItems(memberAreasPending, cartValidResponse.prospectingLeadsOnSite, cartValidResponse.prospectingLeadsPerMonth);\r\n });\r\n });\r\n });\r\n };\r\n SubscriptionEditDirectiveController.prototype.setupMemberAreaPendingSelections = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n // Default the selected leads per month to existing member area pending sizes if they exist\r\n if (viewModel.memberAreasPending && viewModel.memberAreasPending.length > 0) {\r\n var found = viewModel.memberAreasPending.filter(function (m) { return m.state === viewModel.selectedState.abbreviation && m.county === viewModel.selectedCountyPackageData.county; });\r\n if (found && found.length > 0) {\r\n var memberAreaPending = found[0];\r\n this.$timeout(function () {\r\n if (memberAreaPending.packageSizeBuyer != null && memberAreaPending.packageSizeBuyer > 0) {\r\n viewModel.buyerLeadsPerMonth = memberAreaPending.packageSizeBuyer;\r\n _this.$scope.buyerLeadsPerMonthSelector.selectedValue = memberAreaPending.packageSizeBuyer;\r\n }\r\n if (memberAreaPending.packageSizeSeller != null && memberAreaPending.packageSizeSeller > 0) {\r\n viewModel.sellerLeadsPerMonth = memberAreaPending.packageSizeSeller;\r\n _this.$scope.sellerLeadsPerMonthSelector.selectedValue = memberAreaPending.packageSizeSeller;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n SubscriptionEditDirectiveController.prototype.setupSellerSelector = function () {\r\n var viewModel = this.$scope.viewModel;\r\n var onChange = function (scope) {\r\n scope.viewModel.sellerLeadsPerMonth = scope.sellerLeadsPerMonthSelector.selectedValue;\r\n };\r\n // Determine max leads/month for selector, and constrain the initial value to that max\r\n var ceil = Math.min(viewModel.selectedCountyPackageData.calcMaxPackageSizeSeller, viewModel.selectedCountyPackageData.setMaxPackageSizeSeller);\r\n var value = Math.min(ceil, viewModel.selectedCountyPackageData.setStdPackageSizeSeller);\r\n var floor = ceil == 0 ? 0 : 1;\r\n viewModel.sellerLeadsPerMonth = value;\r\n // Strictly for display, treat as sold out when data indicates sold out OR allowed leads-per-month value is 0\r\n viewModel.treatSellerAsSoldOut = (viewModel.selectedCountyPackageData.isSoldOutSeller === 1 || value === 0);\r\n this.$scope.sellerLeadsPerMonthSelector = this.getSelector(value, floor, ceil, viewModel.treatSellerAsSoldOut, onChange);\r\n };\r\n SubscriptionEditDirectiveController.prototype.shouldStatisticsModalLinkBeVisible = function () {\r\n return this.$scope.viewModel.statisticModalLinkVisible;\r\n };\r\n SubscriptionEditDirectiveController.prototype.showCountyStatisticsModal = function () {\r\n var viewModel = this.$scope.viewModel;\r\n controllers.CountyStatisticsModalController.loadModal(viewModel.selectedState.abbreviation, viewModel.selectedCountyPackageData.county);\r\n };\r\n SubscriptionEditDirectiveController.prototype.showLearnMoreModal = function (track) {\r\n controllers.LearnMoreModalController.loadModal(track);\r\n };\r\n SubscriptionEditDirectiveController.prototype.showOverlay = function (active, message) {\r\n if (active === void 0) { active = true; }\r\n if (message === void 0) { message = null; }\r\n var blockId = 'SubscriptionStateCountyLoading';\r\n if (active) {\r\n this.spinWaitService.block(blockId, 'image logo', message || 'Loading...');\r\n }\r\n else {\r\n this.spinWaitService.unblock(blockId);\r\n }\r\n };\r\n SubscriptionEditDirectiveController.prototype.showOverlayDuring = function (untilFunc, message) {\r\n var _this = this;\r\n if (message === void 0) { message = null; }\r\n try {\r\n this.showOverlay(true, message);\r\n return untilFunc().finally(function () { return _this.showOverlay(false); });\r\n }\r\n catch (error) {\r\n this.showOverlay(false);\r\n return this.$q.reject(error);\r\n }\r\n };\r\n SubscriptionEditDirectiveController.prototype.showPrice = function (cartItem) {\r\n // Show price when package size not zero or null\r\n return !!this.getPackageSize(cartItem.memberAreaPending, cartItem.type);\r\n };\r\n SubscriptionEditDirectiveController.prototype.showZipLookupModal = function () {\r\n var _this = this;\r\n controllers.ZipLookupModalController.loadModal().result.then(function (zip) { return _this.selectCountyByZip(zip); });\r\n };\r\n SubscriptionEditDirectiveController.prototype.stateSelected = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n return this.showOverlayDuring(function () { return _this.fillCounties(viewModel.selectedState.abbreviation); });\r\n };\r\n SubscriptionEditDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.angular.Filter,\r\n names.angular.Location,\r\n names.angular.Q,\r\n names.angular.Timeout,\r\n names.angular.Window,\r\n names.zbuyer.services.CheckoutService,\r\n names.zbuyer.services.CountiesService,\r\n names.zbuyer.services.CountyPackagesService,\r\n names.zbuyer.services.CountyStatisticsService,\r\n names.zbuyer.services.SpinWaitService,\r\n names.zbuyer.services.StatesService,\r\n names.zbuyer.services.SubscriptionService\r\n ];\r\n return SubscriptionEditDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.SubscriptionEdit, SubscriptionEditDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TestNotificationModalController = /** @class */ (function () {\r\n function TestNotificationModalController($scope, $uibModalInstance, modalService, formViewModel) {\r\n this.$scope = $scope;\r\n this.$uibModalInstance = $uibModalInstance;\r\n this.modalService = modalService;\r\n this.modalService.handleCloseActions(this.$scope, this.$uibModalInstance);\r\n $scope.formViewModel = formViewModel;\r\n $scope.controller = this;\r\n formViewModel.submitCallback = this.handleSubmit.bind(this);\r\n }\r\n TestNotificationModalController.prototype.handleSubmit = function (formInputs) {\r\n this.$uibModalInstance.close(formInputs);\r\n };\r\n TestNotificationModalController.prototype.cancel = function () {\r\n this.$uibModalInstance.close(null);\r\n };\r\n TestNotificationModalController.loadModal = function (formInputs) {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var modalInstance = $uibModal.open({\r\n controller: names.zbuyer.controllers.TestNotificationModalController,\r\n backdrop: true,\r\n backdropClass: 'test-lead-modal-backdrop',\r\n resolve: {\r\n formViewModel: {\r\n inputFormItems: formInputs,\r\n submitButtonText: \"Send\",\r\n title: \"Test Lead\"\r\n }\r\n },\r\n size: 'sm',\r\n templateUrl: TestNotificationModalController.TemplateUrl,\r\n windowClass: 'test-lead-modal'\r\n });\r\n return modalInstance.result;\r\n };\r\n TestNotificationModalController.TemplateUrl = 'staticpages/modals/TestNotificationModal.html';\r\n TestNotificationModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.ModalService,\r\n 'formViewModel'\r\n ];\r\n return TestNotificationModalController;\r\n }());\r\n controllers.TestNotificationModalController = TestNotificationModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.TestNotificationModalController, TestNotificationModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/directives/transactionsdirective.html';\r\n var DefaultSort = 'date';\r\n var SearchInputElement = '.search-input';\r\n var TransactionsDirectiveController = /** @class */ (function (_super) {\r\n __extends(TransactionsDirectiveController, _super);\r\n function TransactionsDirectiveController($scope, accountService, notificationService, spinWaitService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.accountService = accountService;\r\n _this.notificationService = notificationService;\r\n _this.spinWaitService = spinWaitService;\r\n _this.itemsPerPage = 10;\r\n _this.sortByDirections = {\r\n creditCardCharge: false,\r\n date: false,\r\n descrption: false\r\n };\r\n _this.initializeTransactionsDirectiveController();\r\n return _this;\r\n }\r\n TransactionsDirectiveController.getDirective = function () {\r\n return {\r\n controller: TransactionsDirectiveController,\r\n restrict: 'E',\r\n scope: {\r\n backCallback: '&onBack',\r\n viewModel: '='\r\n },\r\n templateUrl: TemplateUrl\r\n };\r\n };\r\n TransactionsDirectiveController.prototype.initializeTransactionsDirectiveController = function () {\r\n this.getTransactionsDefault();\r\n };\r\n TransactionsDirectiveController.prototype.clearSearch = function () {\r\n this.$scope.viewModel.search = null;\r\n this.getTransactionsDefault();\r\n };\r\n TransactionsDirectiveController.prototype.getPageSize = function () {\r\n return this.itemsPerPage;\r\n };\r\n TransactionsDirectiveController.prototype.getTransactions = function () {\r\n var _this = this;\r\n var viewModel = this.$scope.viewModel;\r\n var blockUiString = 'LoadingTransactions';\r\n this.spinWaitService.block(blockUiString);\r\n this.accountService.getTransactions({\r\n itemsPerPage: this.itemsPerPage,\r\n page: viewModel.page,\r\n search: viewModel.search,\r\n sortAscending: this.sortByDirections[this.sortByProperty],\r\n sortBy: this.sortByProperty\r\n }).then(function (result) {\r\n viewModel.pages = result.pages;\r\n viewModel.total = result.total;\r\n viewModel.transactions = result.transactions;\r\n }).catch(function (reason) {\r\n _this.notificationService.error(zbuyer.messages.TransactionsError, 'Error');\r\n }).finally(function () {\r\n _this.spinWaitService.unblock(blockUiString);\r\n });\r\n };\r\n TransactionsDirectiveController.prototype.getTransactionsDefault = function () {\r\n this.sortByProperty = DefaultSort;\r\n this.sortByDirections[DefaultSort] = false;\r\n this.getTransactions();\r\n };\r\n TransactionsDirectiveController.prototype.sortTransactions = function (property) {\r\n this.sortByProperty = property;\r\n this.sortByDirections[property] = !this.sortByDirections[property];\r\n this.getTransactions();\r\n };\r\n TransactionsDirectiveController.prototype.toggleSearchPanel = function () {\r\n var viewModel = this.$scope.viewModel;\r\n viewModel.searchOpen = !viewModel.searchOpen;\r\n var inputElement = angular.element(SearchInputElement);\r\n inputElement.focus();\r\n };\r\n TransactionsDirectiveController.$inject = [\r\n names.angular.Scope,\r\n names.zbuyer.services.AccountService,\r\n names.zbuyer.services.NotificationService,\r\n names.zbuyer.services.SpinWaitService\r\n ];\r\n return TransactionsDirectiveController;\r\n }(controllers.ControllerBase));\r\n angular.module(names.zbuyer.Application)\r\n .directive(names.zbuyer.directives.Transactions, TransactionsDirectiveController.getDirective);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\n/// \r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/yesnomodal.html';\r\n var YesNoModalResults;\r\n (function (YesNoModalResults) {\r\n YesNoModalResults[YesNoModalResults[\"Cancel\"] = 0] = \"Cancel\";\r\n YesNoModalResults[YesNoModalResults[\"No\"] = 1] = \"No\";\r\n YesNoModalResults[YesNoModalResults[\"Yes\"] = 2] = \"Yes\";\r\n })(YesNoModalResults = controllers.YesNoModalResults || (controllers.YesNoModalResults = {}));\r\n var YesNoModalOptions = /** @class */ (function () {\r\n function YesNoModalOptions() {\r\n }\r\n return YesNoModalOptions;\r\n }());\r\n controllers.YesNoModalOptions = YesNoModalOptions;\r\n var YesNoModalComponent = /** @class */ (function () {\r\n function YesNoModalComponent() {\r\n }\r\n YesNoModalComponent.getController = function () {\r\n return {\r\n controller: YesNoModalComponent,\r\n bindings: {\r\n $uibModalInstance: \"\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar zbuyer;\r\n(function (zbuyer) {\r\n var controllers;\r\n (function (controllers) {\r\n var TemplateUrl = 'staticpages/modals/ziplookupmodal.html';\r\n var ZipLookupModalController = /** @class */ (function (_super) {\r\n __extends(ZipLookupModalController, _super);\r\n function ZipLookupModalController($scope, $uibModalInstance, modalService) {\r\n var _this = _super.call(this, $scope) || this;\r\n _this.$scope = $scope;\r\n _this.$uibModalInstance = $uibModalInstance;\r\n _this.modalService = modalService;\r\n modalService.handleCloseActions($scope, $uibModalInstance);\r\n return _this;\r\n }\r\n ZipLookupModalController.loadModal = function () {\r\n var $injector = angular.element('html').injector();\r\n var $uibModal = $injector.get(names.angular.UiBootstrapModal);\r\n var modal = $uibModal.open({\r\n controller: names.zbuyer.controllers.ZipLookupModalController,\r\n size: 'sm',\r\n templateUrl: TemplateUrl,\r\n windowClass: 'zip-lookup-modal'\r\n });\r\n return modal;\r\n };\r\n ZipLookupModalController.prototype.close = function () {\r\n this.$uibModalInstance.close(this.$scope.viewModel ? this.$scope.viewModel.zipCode : null);\r\n };\r\n ZipLookupModalController.$inject = [\r\n names.angular.Scope,\r\n names.angular.UiBootstrapModalInstance,\r\n names.zbuyer.services.ModalService\r\n ];\r\n return ZipLookupModalController;\r\n }(controllers.ControllerBase));\r\n controllers.ZipLookupModalController = ZipLookupModalController;\r\n angular.module(names.zbuyer.Application)\r\n .controller(names.zbuyer.controllers.ZipLookupModalController, ZipLookupModalController);\r\n })(controllers = zbuyer.controllers || (zbuyer.controllers = {}));\r\n})(zbuyer || (zbuyer = {}));\r\n\r\n//# sourceMappingURL=app-controllers.js.map\r\n"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","zbuyer","controllers","vme","viewmodels","enums","AccountDirectiveElement","_super","EmailRegExp","UrlRegExp","ImageFileSignatures","R0lGODdh","R0lGODlh","iVBORw0KGgo","/9j/","Qk02U","AccountDirectiveController","ControllerBase","getDirective","controller","restrict","scope","logoutCallback","signup","viewModel","templateUrl","initializeNotifications","reinitialize","testLeadInitialize","crmInitialize","showAccountHome","$scope","isEditingEnabled","toggleEditMode","setActiveSection","AccountSectionType","Home","showAccountNotifications","Notifications","showMemberProfile","MemberProfile","showPublicProfile","publicProfileEdit","angular","copy","publicProfile","PublicProfile","showAccountSubscription","Subscription","showAccountTransactions","Transactions","showChangePassword","ChangePassword","isDemoAccount","notificationService","info","messages","DemoAccountReadOnly","updateNotificationSettings","updateNotificationSettingsRequest","_this","emailAlerts","account","smsPhone","fullNumber","smsNumber","textAlerts","accountService","catch","response","error","data","exceptionMessage","message","checkOut","checkoutViewModel","isCheckoutActive","$window","scrollTo","fillInvestorNotificationEmails","getInvestorNotificationEmails","then","result","investorNotificationEmails","ApplicationTitle","goBack","handleLegacyServiceError","errorMessageToDisplay","console","investorNotificationEmailAdd","addingInvestorNotificationEmail","$timeout","element","focus","investorNotificationEmailCancel","resetEmailForm","investorNotificationEmailDelete","investorNotificationEmail","deleteInvestorNotificationEmail","emailId","success","AccountInfoSaveSuccess","investorNotificationEmailSave","addInvestorLeadNotification","newInvestorNotificationEmail","investorNotificationEmailUpdate","request","email","optedIn","updateInvestorNotificationEmail","AccountInfoSaveError","demoAccountIds","filter","id","length","crmAvailableTypes","crmConnections","crmService","getTypes","crmConnectionTypes","debug","err","getAll","crmDelete","crmConnection","connectionsAsSaved","item","delete","crmConnectionId","concat","displayName","crmToggleEnabled","promiseState","pending","isEnabled","setEnabled","verb","finally","crmShowAddConnection","AddCrmModalController","loadModal","crmSelectedType","newConnection","push","resetForm","accountTemp","validate","saveMemberProfile","memberProfileForm","$invalid","accountInfo","updateAccountInfo","loginRequired","savePublicProfile","publicProfileForm","profileEdit","displayCompany","displayPhone","websiteURL","phoneIsMobile","headshotPhoto_BASE64","updatePublicProfile","getPublicProfile","warning","PublicProfileError","PublicProfileSaveSuccess","PublicProfileSaveError","loadProfilePhoto","file","reader","FileReader","$applyAsync","onloadend","loadEvent","loaded","_a","split","base64Data","readAsDataURL","getProfileImageLink","sig","mimeType","startsWith","sectionType","activeAccountSection","testLeadFormInputs","testNotificationService","getTestNotificationOptions","inputFormItems","testLeadSendNotification","TestNotificationModalController","formValues","sendTestNotification","smsPhoneBlurred","editingSmsPhone","textNotificationForm","phone","smsPhoneChanged","smsPhoneFocused","revertChanges","toggleTextAlerts","$inject","names","Scope","Q","Timeout","Window","services","AccountService","AppSettingsService","CrmService","NotificationService","NotificationTestService","$q","appSettingsService","$watch","publicProfileImageLink","emailRegExp","urlRegExp","getAppSettings","settings","appSettings","demoAccountSubscribedId","demoAccountUnsubscribedId","module","Application","directive","directives","Account","$sce","$uibModalInstance","modalService","handleCloseActions","crmConnectionType","showConnectButton","formViewModel","submitCallback","addCrmConnection","injector","get","UiBootstrapModal","open","resolve","submitButtonText","showSubmitButton","title","backdropClass","size","backdrop","TemplateUrl","windowClass","cancel","close","trustHtml","html","trustAsHtml","add","crmConnectionTypeId","Sce","UiBootstrapModalInstance","ModalService","AdvancedPackageSliderController","$$postDigest","$broadcast","$onInit","sliderOptions","ceil","maxLeads","disabled","sliderDisabled","hidePointerLabels","onChange","getOnMoveCallback","onEnd","getFinishedMovingCallback","sliderId","modelValue","highValue","pointerType","valueUpdatedCallback","newValue","sliderMovedCallback","getController","bindings","currentValue","pricePerLead","component","components","AdvancedPackageSliderComponent","BlockId","AdvancedSubscriptionEditDirectiveController","preCheckoutService","spinWaitService","pristine","lastPackageResponse","errorToDisplay","initialPackageResponse","setLoading","refreshAdvancedPackage","setNotLoading","processPackageResponseData","findByCountyAndState","countyName","stateCode","countyPackages","find","county","getBuyerFinalizeCallback","onBuyerUpdate","getSellerFinalizeCallback","onSellerUpdate","nonBindingBuyerUpdate","callback","oldEntry","selectedBuyers","nonBindingSellerUpdate","selectedSellers","getNonBindingBuyerUpdate","getNonBindingSellerUpdate","handleError","log","onBlurSellerLeadsInput","countyPackage","Math","max","min","maxSellers","updateLeadsCount","buyerLeadsCount","sellerLeadsCount","onBlurBuyerLeadsInput","maxBuyers","openCountyModal","alreadySelectedCounties","map","name","stateAbbreviation","SelectCountyModalController","selectedCounty","addCountyToWorkingArea","openLearnMoreModal","track","LearnMoreModalController","openMetroModal","SelectMetroModalController","selectedMetroArea","addMetroAreaToWorkingArea","openStatisticsModal","sellerIsSoldOut","CountyStatisticsModalController","preferSellersBuyers","preferSellers","preferBuyers","userConfirmed","setLeadTypePreference","YesNoModalComponent","titleText","text","noButtonText","yesButtonText","YesNoModalResults","Yes","getAdvancedPackage","removeCounty","removeCountyFromWorkingArea","specialInfoItemMessage","specialInfoItemUrl","revertToRecommendedSettings","modalText","resetToRecommendedPackage","resetToRecommendedCallback","area","sellersSoldOut","block","unblock","viewCart","packageInfo","validateAdvancedPackageDisplay","totalPriceUSD","packageValid","checkoutCallback","newValues","setAdvancedCountyLeadCounts","loading","CheckoutHelperService","SpinWaitService","AdvancedSubscriptionEdit","BasicSubscriptionEditDirectiveController","activeStep","fitToSliderRange","value","floor","isPendingSetLeadsAmount","isSellerTrack","leadCount","sellerLeadsAmountPending","buyerLeadsAmountPending","setPendingLeadAmount","userEditingLeads","setLeadsForTrack","responsePromise","isRequestValid","amountToSet","sellerLeadCount","buyerLeadCount","setRecomendedPackageSellers","setRecomendedPackageBuyers","recommendedPackage","updateSliders","onFocusLeadsInput","sellerLeadsSliderOptions","buyerLeadsSliderOptions","initializeSliders","selfInvoke","disableAnimation","onStart","configureSlider","buyersSoldOut","currentLeadCount","maxLeadCount","soldOut","sliderMinimum","goToTeamSizeStep","PreCheckoutStep","TeamSize","goToWorkingAreaStep","WorkingArea","goToAdvancedStep","AdvancedEdit","loadRecommendedPackage","getRecommendedPackage","pkg","showCountyBreakdownModal","RecommendedPackageCountyBreakdownController","counties","showLearnMoreModal","BasicSubscriptionEdit","CartBuilderController","$location","checkoutService","countiesService","countyStatisticsService","statesService","losAngelesSubdivided","LeadType","CartLeadType","checkoutFlag","search","queryparameters","Checkout","toLowerCase","toString","cartCheckout","initializeCartBuilderController","zipCode","initDropdowns","getStates","states","selectCountyByZip","allInitDone","all","getCurrentCart","initialized","blockDuring","activateOption","leadOption","pathGroup","affectedSelector","leadOptions","forEach","builder","isActive","selector","forceSliderUpdate","rendering","initializeLeadOption","tabTitle","showLeadOption","itemBuilder","isDefaultTabOfGroup","quantityMax","quantityDefault","quantityMin","getSelector","isSoldOut","showPriceAndQtyBlock","addOrUpdateLeadOption","cartItemBuilder","quantity","selectedValue","state","selectedState","abbreviation","includeCurrentCart","leadType","updateCart","alreadyInCart","addOption","additionalOption","additionalOptionType","Unknown","checkStatisticsModalShouldBeVisible","_b","statisticModalLinkVisible","getCountyStatisticsForStateAndCounty","countyStatistics","availability","averageHomeValue","averageLeadSharing","maxHomeValue","minHomeValue","needFinancingToBuy","sellersAlsoBuying","willingToDiscount","soldWithin1YearText","soldWithin2YearsText","soldWithin3YearsText","soldWithin6MonthsText","leadMapEnabled","getCountyLeadsCoordinatesForStateAndCounty","coordinates","countyLeadsCoordinates","cityStatisticsEnabled","getCityLeadCountsForStateAndCounty","cityLeads","getCartItemBuilder","cartRowItemType","_i","leadPathGroups","_c","cartBuilder","deleteCartItem","cartItem","onSuccess","stateEdit","countyEdit","rowType","CartRowType","CartAdditionalOption","itemType","additionalItem_1","cartAdditionalOptions","opt","CartLeadOption","scrollX","editCartItem","editCart","selectCounty","matchesForCartRow","option","top","fillCounties","getCountiesForState","sort","a","localeCompare","onCountySelected","fillRelatedCounties","getRelatedCounties","countyRequested","stateRequested","relatedCounties","flashUpdatedCartOverlay","blockId","misc","BlockUISpinnerCheckmarkClass","UpdateCart","getBindableHtml","options","autoHideLimitLabels","hideLimitLabels","translate","label","joinWaitingList","showWaitingListOption","addLeadPathGroup","rawPathGroup","isSelling","showPathGroup","itemBuilders","nonExclusiveLeads","exclusiveLeads","o","isSellingPath","blockUI","promises","gotItemOptions","getCartItemOptions","sellingPathGroup","buyingPathGroup","additionalOptions","onStateSelected","resetDropdownSelection","selectState","c","reject","zip","getCountyForZip","s","gettingCart","currentCartResponse","handleUpdatedCart","showCountyStatisticsModal","SellersTrack","BuyersTrack","showZipLookupModal","ZipLookupModalController","updatingCart","currentCart","cart","cartIsEditable","redirectToUrl","location","href","Location","CheckoutService","CountiesService","CountyStatisticsService","StatesService","CartBuilder","CheckoutDirectiveController","complianceService","initializeCheckoutDirectiveController","supportPhone","defineProperty","awaitingFormCertification","cartIsValid","paymentForm","$submitted","enumerable","configurable","applyTrustedFormCertification","compliance","errorMessage","checkoutData","cartCheckoutData","initialChargeAmount","recurringChargeAmount","recurringNextChargeDate","paymentViewModel","checkoutDataLoaded","isKwSignupMode","window","on","resizeTermsColumn","checkout","checkoutRequest","billingZipCode","cardCVV2","cardExpirationMonth","cardExpirationYear","cardNumber","replace","initialChargeAmtShown","recurringChargeAmtShown","performCheckout","checkoutSuccess","showKWCommandPageNext","showKWCommandNotice","continueOnCheckoutSuccess","reason","ErrorProcessingPayment","appConfiguration","baseUrl","setWidth","width","ComplianceService","ClaimedLeadNavigationOption","ClaimedLeadModalController","showModal","modalScope","closeModal","navigation","thrownError","ComplianceAgreementModalComponent","TcpaComplianceAgreement","agreeAndClose","termsHtml","$","setProspectingCompliance","ComplianceAgreement","memberAccount","getComponentOptions","controllerAs","ComplianceReminderModalComponent","ComplianceReminder","ConvertToNumberDirective","link","attrs","ngModel","$parsers","val","parseInt","$formatters","require","ConvertToNumber","CountyStatisticsDirectiveController","currencyFormatter","Intl","NumberFormat","style","currency","maximumFractionDigits","minimumFractionDigits","oldValue","fillCountyStatistics","countyMap","_","assignMapToDOMObject","L","isRetina","Browser","retina","webServiceUrl","retinaUrl","tileLayer","attribution","maxZoom","addTo","markerIcon","icon","iconUrl","iconSize","iconAnchor","markerList","markerLocation","marker","lat","lon","group","featureGroup","resizeMap","invalidateSize","fitBounds","getBounds","pad","shouldShowSellRateStatistics","Boolean","soldWithinIsNationwideAverage","formatCurrency","format","AppConfiguration","CountyStatistics","countyStatisticsModalViewModel","CountyStatisticsPageDirectiveController","countyPackagesService","countyPackageDataCounties","selectedCountyPackageData","showOverlayDuring","queryParameters","countySelected","getCountyPackageDataForState","getCountyPackageData","cpd","isLosAngelesCounty","stateSelected","showOverlay","active","untilFunc","CountyPackagesService","CountyStatisticsPage","DynamicFormController","formController","inputValues","inputItem","checked","itemId","models","InputFormItemType","CheckBox","defaultValue","submit","promise","DynamicForm","transclude","EducationLeadsDirectiveController","initializeEducationLeadsDirectiveController","isModal","self_1","getJSON","jsonData","educationLeadsDetail","setupBackgrounds","goToTopic","topic","openExampleImage","imageName","headerText","imagePathToEnlarge","LeadExampleDetailModalController","showDetail","detailId","fillDetail","EducationModalController","showEducationModal","trackDetails","sellers","buyers","detail","backstretch","alignX","alignY","url","EducationLeads","educationLeadsViewModel","initializeEducationModal","rendered","renderHtml","renderHtmlTopic","ModalDialogElement","ModalResizeWindowEvent","FilterModalController","searchLeadsViewModel","priceRangeSelectorMax","priceRangeSelectorMin","priceRangeSelectorSetup","syncPriceRangeSelector","stepsArray","setSelectorSteps","numberToCurrencyShorthand","priceRangeSelector","initializePriceNumberRange","initializeModalResizing","closed","off","showFilterModal","folders","every","folderOption","selected","reasonsSelling","reasonOption","leadTags","tagOption","closeFilters","turnFiltersOn","redrawPriceSelector","defaultMin","priceFilterDefaultBase","defaultMax","priceFilterDefaultCap","setMin","priceRangeMin","setMax","priceRangeMax","setPriceSelectorRange","resetFilters","bathroomsMax","bathroomFilterDefaultCap","bathroomsMin","bathroomFilterDefaultBase","bedroomsMax","bedroomFilterDefaultCap","bedroomsMin","bedroomFilterDefaultBase","resetSelectableItems","f","searchText","toggleFolder","folder","toggleFolders","allSelected","allFoldersSelected","toggleReasons","allReasonsSelected","toggleTags","allTagsSelected","getNearestNumberFromArray","inArray","reduce","previousValue","abs","resizeModalContents","base","windowHeight","height","modalMarginTop","css","slice","modalMarginBottom","bottomMargin","outerHeight","newSize","items","steps","number","ForgotPasswordController","generalApiService","vcRecaptchaService","initialize","forgotPasswordEmail","validateRecaptchaAndSend","deferred","defer","recaptchaKey","recaptchaResponse","RecaptchaIsBlank","RecaptchaError","validating","validateRecaptcha","sendForgotPasswordEmail","RecaptchaRejected","ApiCommunicationError","sendForgotPasswordEmailRequest","sendingForgotPasswordEmail","ForgotPasswordSuccess","ForgotPasswordFailed","reload","GeneralApiService","VcRecaptchaService","__spreadArray","to","from","pack","arguments","ar","i","l","LocationSearchViewModel","PreviewFilterModalController","leadPreviewService","leadPreviewsViewModel","initializeLocations","asCityInCounty","city","cityLabel","showPreviewFilterModal","countyModels","cityLocations","hasErrors","gotZipModels","getSubscribedLocations","locations","zipLocations","zipLoc","gotRawCityLocations","countyCompare","gotCountyModels","loc","mixedLocations","stateLocationModels","countyModel","cityModelsUnderCounty","cityLoc","apply","stateLocations","selectedLocation","locationCity","locationState","locationZip","locationCounty","locationSearchText","includeUnknownBathrooms","includeUnknownBedrooms","includeUnknownPrice","includeBuyers","includeSellers","searchLocations","isNaN","zipLocation","stateQuery","toUpperCase","stateResults","stateLoc","includes","aStarts","onSelectedLocationChange","_d","LeadPreviewService","GreetingDirectiveController","initializeGreetingDirective","setGreeting","background","greeting","morning","afternoon","evening","hours","Date","getHours","Greeting","HamburgerMenuDirectiveController","authenticationService","initializeViewModel","canProspect","canPreview","showMoreMenuCallback","checkLogin","getAuthenticationHeader","loggedIntoAccount","loginButtonText","logOut","logout","logIn","AuthenticationService","HamburgerMenu","LandingController","messageService","DelayForRedirectOnFail","returnUrlParameter","ReturnUrl","redirectUrl","URL","pathname","getInitialAuthPromise","isAuthenticated","getAccountProfile","subscription","checkNextAccountMessage","AccountInfoError","redirect","searchParams","set","submitResponse","actionButtonText","recordAction","accountMessage","accountMessageId","internalDebugInfo","lastAccountMessageId","absUrl","haveAccountMessage","messageTitle","AccountMessage","haveNewMessage","AccountMessageService","leadExampleDetailViewModel","back","LeadDetailDirectiveController","$compile","leadPhoneNumberService","leadsService","notesUpdatingTimeout","notesUpdatingWaitTime","phoneUnavailable","initializeLeadDetailDirectiveController","fillLeadDetail","printable","initializeWatches","closeLeadCallback","openMoreMenuCallback","prospectingComplianceCallback","googleApiKey","checkProspectingUnlockFlag","isProspecting","contactInfo","isProspectingCompliant","phoneStatus","UnlockPhones","showProspectingAgreement","createGoogleMap","mapElement","mapCenter","google","maps","LatLng","latitude","longitude","mapOptions","center","zoom","fullscreenControl","mapTypeControl","panControl","rotateControl","scaleControl","streetViewControl","zoomControl","Map","addListener","markerTitle","fullAddress","Marker","position","race","createStreetView","streetElement","innerHTML","targetLatLng","panoramaOptions","pov","heading","pitch","addressControl","clickToGo","imageDateControl","linksControl","motionTrackingControl","scrollwheel","streetPanorama","StreetViewPanorama","geometry","spherical","computeHeading","getLocation","latLng","setPov","event","trigger","debounceSaveUpdates","newVal","oldVal","saveUpdates","emailLead","leadDetail","setupActivityActions","longDescriptionHtml","setupMapsPromise","setupMapViews","mapsError","signalEvoPdfConverter","getDirections","address","getLeadPhoneNumber","classPhoneReveal","classFade","classHide","addClass","leadId","removeClass","getLeadPhoneNumbers","showPropectingRobocallWarning","confirmed","primaryPhone","revealedPhone","phoneNumber","secondaryPhoneNumber","secondaryPhone","unwatchNotes","notes","printDate","renderHtmlDescription","addNoteToLead","customHtml","empty","append","evoPdfConverter","startConversion","checkGoogleMapsLoaded","version","addressLine1","getLeadLocation","verified","streetsPromise","mapsPromise","Compile","LeadPhoneNumberService","LeadsService","LeadDetail","LeadFolderModalController","foldersService","lead","folderUpdatingTimeout","folderUpdatingWaitTime","newFolderInputElement","initializeLeadFolderModal","foldersLoading","currentFolderName","loadFolders","folderName","addNewFolder","addingNewFolder","cancelNewFolder","newFolderName","getFolderList","selectedFolder","saveNewFolder","newFolder","addLeadToFolder","viewed","setFolder","folderModel","showLeadFolderModal","FoldersService","LeadMoreMenuController","showLeadMoreMenu","allowShareAndPrint","ratingTypes","high","RatingType","low","neutral","downloadBlob","fileName","blob","navigator","msSaveOrOpenBlob","createObjectURL","tempLink","document","createElement","download","body","appendChild","click","removeChild","getPrintableLead","rateLimitErrorText","spinnermessages","PrintableScreen","rateLimitReached","firstName","lastName","rateLead","rating","addRatingToLead","shareLead","getLeadVCard","LeadPreviewsDirectiveController","lastScrollPosition","searchUpdated","getLeadPreviews","isShowing","wasShowing","handleVisibilityChange","scrollY","leads","setTimeout","leadPreviewSelectedCallback","selectedLeadId","pageChanged","onClickedLeadPreview","leadPreview","getSellingDescription","parts","sellingInfo","beds","baths","estimatedValue","toLocaleString","join","scrollPosition","page","userFiltersApplied","buyer_Baths_MIN","buyer_Baths_MAX","buyer_Baths_InclUnknown","buyer_Beds_MIN","buyer_Beds_MAX","buyer_Beds_InclUnknown","buyer_PriceRange_MIN","buyer_PriceRange_MAX","buyer_PriceRange_InclUnknown","seller_Baths_MIN","seller_Baths_MAX","seller_Baths_InclUnknown","seller_Beds_MIN","seller_Beds_MAX","seller_Beds_InclUnknown","seller_EstimatedValue_MIN","seller_EstimatedValue_MAX","seller_EstimatedValue_InclUnknown","location_State","location_County","location_City","location_Zip","leadsPerPage","pageNum","getLeadsPromise","getLeadPreviewList","leadPreviews","currentPage","totalItems","totalLeads","SearchPreviewLeads","LeadPreviewsList","LeadPreviewDetailDirectiveController","$routeParams","selectedLeadPreview","closeCallback","showClaimedLeadCallback","selectedLeadPreviewIndex","leadPreviewId","fetchDetails","oldLead","handleSelectedLeadPreviewChanged","loadPrevious","loadNext","claimLeadAndShowModal","claimLead","claimed","claimable","updateTokenBalance","balanceUpdated","$new","balanceInfo","allowNavigateNext","canLoadNext","NextLead","ViewClaimed","selectedPreviewLeadId","BackToList","getTokenBalance","balanceResponse","claimLeadButtonText","gotLeadPreview","getLeadPreview","previewed","buyingInfo","gotTokenBalance","newSelectedLead","oldSelectedLead","indexOf","RouteParams","LeadPreview","LeadsDirectiveController","showLeadDetailCallback","pageChangedCallback","prospecting","prospectingCompliant","LeadsList","LeadsSearchDirectiveController","filterButtonClickedCallback","searchButtonClickedCallback","LeadsSearch","PreviewSearchDirectiveController","previewFilterButtonClickedCallback","PreviewSearch","learnMoreViewModel","MobileAppPromoModalController","appUrl","test","userAgent","MoreMenuDirectiveController","openPrivacyPolicy","openTermsOfUse","MoreMenu","NavBarDirectiveController","showLeadsCallback","showMessagesCallback","showProspectingCallback","showSelectListCallback","showAccountCallback","showMoreCallback","NavBar","NavigationController","setAppSettings","AppSettingsError","NewPasswordDirectiveElement","NewPasswordDirectiveController","forgotten","key","invalidPassword","validPassword","content","match","getNewPassword","newPassword","newPasswordFocus","changeAccountPassword","updateAccountPasswordRequest","verifyNewPassword","currentPassword","changePassword","confirmPassword","PasswordChangedSuccess","PasswordChangedError","changeForgottenPassword","resetNewPasswordForm","updateForgottenPasswordRequest","takeToLogin","submitChangePasswordRequest","PasswordChangedRedirectToLogin","Email","NewPassword","NewSignupDirectiveController","initializeNewSignupDirectiveController","analytics","FacebookPixel","NewSignupPixelID","initCrm","getDefaultType","crmMessageBlockHtml","messageBlockHtml","doneLoading","configureCrm","submitted","crmCreated","NewSignup","PaymentDirectiveController","initializePaymentDirectiveController","billingAddressEnabled","Payment","PreCheckoutController","animationService","initializeController","step","setActiveStep","preCheckoutViewModel","processing","workingAreaCounties","workingAreaTitle","teamSizeOptions","authenticated","stepParameter","Step","setActiveStepFromParameter","determineNextStep","$on","newUrl","newLocation","newStep","continueToNextStep","questionStatuses","answeredLeadType","validateWorkingAreaDisplay","answeredAreas","setTeamSize","teamSize","answeredTeamSize","BasicEdit","finalRecommendedPackage","recommendedPackageViewModel","validateRequest","validateRecommendedPackageDisplay","isTransition","getQuestionStatuses","goToBasicEdit","nextStep","fullName","readyForStep","getCurrentWorkingArea","areaTitle","getTeamSize","teamSizeInfo","currentTeamSize","advancedModeRequired","advancedPackageData","animate","stepElement","querySelector","animateElement","continueWithLeadTypes","indexToRemove","splice","showCountySelectModal","showMetroSelectModal","newCounties","metroCounty","some","ui","AnimationService","factory","modalClose","$injector","$uibModel","RecommendedPackageCountyBreakdownComponent","selectCountiesViewModel","countiesAlreadySelected","$uibModal","selectCountyViewModel","previouslySelectedCounties","State","usStates","selectedCountyAlreadyAdded","countiesForState","alert","metroArea","selectedMetro","fillMetroAreas","getMetroAreasForState","metros","metro","metrosForState","SignupStepElement","SignupController","$cookies","signupService","initializeSignupController","SignupStep","signupStep","ContactInfo","LocationInfo","signupViewModel","signupProcessing","initializeAccountViewModel","determineActiveStep","animateNextStep","continueSignup","getAccountController","contactInfoForm","firstSpaceIndex","accountViewModel","locationInfoForm","Password","createAccount","password","blockUiName","newPasswordController","getNewPasswordController","createAccountRequest","campaignNumber","CampaignNumber","companyName","company","memberType","viewId","cookies","ViewId","newSignup","isNewAccount","canLogin","loginWithUserNameAndPassword","token","error_description","LoginFailed","remove","scrollToTop","signupException","SignupError","accountCreated","FirstName","LastName","Phone","Zip","hideEmail","trim","sendLandingToApi","displaySignupException","accountDirectiveElement","getControllerFromSourceElement","newPasswordDirectiveElement","subscriptionViewModel","subscriptionEditViewModel","cartBuilderViewModel","memberTypes","getMemberTypes","redirectToLogin","storedViewId","authCode","AuthCode","clickTrackId","ClickTrackId","publisherId","PublisherId","referrer","Referrer","sendLanding","put","signupFailed","ViewIdError","accountController","signupEmailDuplicate","startOver","updateChatInfo","Cookies","SignupService","SiteFooterDirectiveController","initializeSiteFooterDirective","minimal","getCopyrightYear","getFullYear","SiteFooter","SubscriptionDirectiveController","initializeSubscriptionDirectiveController","setSubscriptionDetails","cancelUpdatePayment","resetUpdatePaymentForm","editPayment","updatePaymentErrorMessage","$setPristine","getSubscriptionStatusAndLocationsHtml","locationAreasHtml","subscriptionStatusHtml","updatePayment","UpdatingPayment","billingCity","billingState","billingStreet","updateCreditCard","PaymentUpdatedSuccess","ErrorUpdatingPayment","me","SubscriptionEditDirectiveController","$filter","subscriptionService","initializeSubscriptionEditDirectiveController","sellerLeadsPerMonth","setupCart","cartItemDescription","memberAreaPending","plural","packageSize","getPackageSize","type","MemberAreaPendingType","Buyer","ProspectingInstant","ProspectingMonthly","Seller","cartItemPrice","price","countyPackageData","setDefaultPricePerLeadBuyer","packageSizeBuyer","setDefaultPricePerLeadSeller","packageSizeSeller","cartItemPriceText","displayPrice","cartTotal","total","memberAreasPending","buyerLeadsPrice","sellerLeadsPrice","countyStatisticsFuture","countyMapFuture","cityLeadsFuture","e","countyPackageButtonText","found","m","buttonText","setupBuyerSelector","setupSellerSelector","setupMemberAreaPendingSelections","updateMemberAreaPending","filters","Price","fillCartItems","prospectingLeadsOnSite","prospectingLeadsPerMonth","cartItems","packageSizeProspecting","pendingCountyPackageDataCounties","isProspectingCartItem","memberAreaPendingType","notify","buyerLeadsPerMonth","saveMemberAreaPackage","addMemberAreaPending","calcMaxPackageSizeBuyer","setMaxPackageSizeBuyer","setStdPackageSizeBuyer","treatBuyerAsSoldOut","isSoldOutBuyer","buyerLeadsPerMonthSelector","didCheckCart","checkCartIsValid","cartValidResponse","cartErrorMessage","getCountyPackageDataPendingForAccount","getMemberAreasPending","sellerLeadsPerMonthSelector","calcMaxPackageSizeSeller","setMaxPackageSizeSeller","setStdPackageSizeSeller","treatSellerAsSoldOut","isSoldOutSeller","shouldStatisticsModalLinkBeVisible","showPrice","Filter","SubscriptionService","SubscriptionEdit","handleSubmit","bind","formInputs","TransactionsDirectiveController","itemsPerPage","sortByDirections","creditCardCharge","date","descrption","initializeTransactionsDirectiveController","backCallback","getTransactionsDefault","clearSearch","getPageSize","getTransactions","blockUiString","sortAscending","sortByProperty","sortBy","pages","transactions","TransactionsError","sortTransactions","property","toggleSearchPanel","searchOpen","YesNoModalOptions","cancelModalClose","Cancel","noModalClose","No","yesModalClose"],"mappings":"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"}