{"version":3,"sources":["webpack:///./src/components/shared/mixins/baseSearchMap.js","webpack:///./src/components/shared/physicianSearch/SearchResults.css?2904","webpack:///./src/components/shared/mixins/basePresenterMixin.js","webpack:///./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack:///./src/components/shared/mixins/baseResultMixin.js","webpack:///./src/components/shared/mixins/searchBoxMixin.js","webpack:///./src/components/shared/mixins/planPricesMixin.js"],"names":["baseSearchMapMixin","data","google","map","markers","pointOfRef","widgetReady","computed","mapGetters","watch","searchCriteria","newValue","this","loadCoordinates","paginatedResults","initMarkers","methods","baseInit","initMap","addBusEvents","continueInit","$nextTick","maps","Map","$refs","zoom","scrollwheel","zoomControl","GoogleMapsLoader","KEY","LIBRARIES","VERSION","self","load","centerMap","latitude","longitude","setPointOfReference","center","LatLng","setCenter","setMap","Marker","draggable","position","title","getCustomMarker","color","strokeColor","path","fillColor","fillOpacity","strokeWeight","scale","$bus","$on","$AcEvents","LOCATE_IN_MAP","locateInMap","highlightMarker","i","length","current","markerMatch","$","grep","element","originalLatitude","originalLongitude","point","marker","name","icon","push","event","addListener","target","elem","coordinates","$emit","HIGHLIGHT_COORDINATES_IN_LIST","bounce","currentMarker","setOpacity","setAnimation","Animation","BOUNCE","setTimeout","basePresenterMixin","ITEMS_PER_PAGE","currentPage","listView","mapCounter","providerCoordinates","showInOfficePlans","showVirtualPlans","searchResultsClass","searchResultClass","showPrevButton","showNextButton","currentTotal","searchResults","paginatorInfo","startOfPage","endOfPage","Math","min","mapKey","distance","x","sort","a","b","$store","dispatch","switchToListView","loadPhysicians","highlightSubscription","mapData","coordinateClass","replace","not","animate","opacity","firstMatch","first","scrollTop","offset","top","loadPreviousPhysicians","window","loadNextPhysicians","$export","S","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","baseResultMixin","props","baseData","type","Object","required","additionalData","mixins","planPricesMixin","coordinatesClass","errorMessage","standardPlan","vm","profilePicture","notes","viewProfile","Error","viewInMap","detailsUrl","singleRequest","getRequest","ajax","global","url","fullDetails","prices","getPrices","plansCost","setMaxAndMinAge","designation","common","filterProfDesignations","generateImageLink","profilePictureId","IMAGE_SIZE","MEDIUM","id","cheapestPlan","_","minBy","otherServices","responseText","maxAge","minAge","forEach","plan","max","searchBoxMixin","radiusId","Number","addressId","zipCode","designationId","onlyAcceptingNewPatients","physicianName","addressName","networkId","searchRadiusOptions","professionalDesignations","availableNetworks","autocomplete","hasSearchCriteria","baseLoad","setCurrentCriteria","createAddressAutocomplete","baseUrl","generateBaseUrl","searchPhysiciansRedirect","$route","query","Boolean","params","api","get","addressView","formatter","formatAddress","address1","address2","city","stateCode","places","Autocomplete","autocompleteRef","types","autocompleteCallback","val","place","getPlace","geometry","location","lat","lng","Promise","all","configTables","getSearchRadiusOptions","getProfessionalDesignations","radius","designations","openFaqModal","faqModal","showModal","findMemberPrice","member","price","familyCost","cost","index","consumerId","getAge","dateString","today","Date","birthDate","age","getFullYear","m","getMonth","getDate","inRange","planCost","highest","lowest","isSamePrice","highestCost","lowestCost","highestPlanPrice","lowestPlanPrice","getPlanPriceRange","tier"],"mappings":"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","file":"js/pssearchBox~searchBox.3aee809a.js","sourcesContent":["import GoogleMapsLoader from \"google-maps\";\nimport {mapGetters} from \"vuex\";\n\nexport const baseSearchMapMixin = {\n data() {\n return {\n google: null,\n map: null,\n markers: [],\n pointOfRef: null,\n widgetReady: false,\n }\n },\n computed: {\n ...mapGetters([\"searchCriteria\", \"paginatedResults\"])\n },\n watch: {\n searchCriteria(newValue) {\n this.loadCoordinates();\n },\n paginatedResults() {\n this.initMarkers();\n }\n },\n methods: {\n async baseInit() {\n this.initMap();\n this.addBusEvents();\n },\n async continueInit() {\n this.widgetReady = true;\n await this.$nextTick();\n this.map = new this.google.maps.Map(this.$refs.map, {\n zoom: 11,\n scrollwheel: false,\n zoomControl: true\n });\n this.loadCoordinates();\n this.initMarkers();\n },\n initMap() {\n GoogleMapsLoader.KEY = 'AIzaSyBULgN2oWltDQFqUfdnoAFSg76UcLTbvvM';\n GoogleMapsLoader.LIBRARIES = ['places'];\n GoogleMapsLoader.VERSION = '';\n let self = this;\n GoogleMapsLoader.load(function (google) {\n self.google = google;\n self.continueInit();\n });\n },\n loadCoordinates() {\n this.centerMap(this.searchCriteria.latitude, this.searchCriteria.longitude);\n this.setPointOfReference(this.searchCriteria.latitude, this.searchCriteria.longitude);\n },\n centerMap(latitude, longitude) {\n //console.log(\"centering map: latitude:\", latitude, \" longitude:\", longitude);\n let center = new this.google.maps.LatLng(latitude, longitude);\n this.map.setCenter(center);\n },\n setPointOfReference(latitude, longitude) {\n //console.log('setting point of reference, latitude:', latitude, ' longitude:', longitude);\n if (this.pointOfRef != null) {\n this.pointOfRef.setMap(null);\n this.pointOfRef = null;\n }\n this.pointOfRef = new this.google.maps.Marker({\n map: this.map,\n draggable: false,\n position: new this.google.maps.LatLng(latitude, longitude),\n title: \"Current Location\"\n });\n },\n getCustomMarker(color, strokeColor) {\n return {\n path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z',\n fillColor: color,\n fillOpacity: 1,\n strokeColor: strokeColor,\n strokeWeight: 2,\n scale: 1\n };\n },\n addBusEvents() {\n this.$bus.$on(this.$AcEvents.LOCATE_IN_MAP, this.locateInMap);\n },\n locateInMap({latitude, longitude}) {\n this.centerMap(latitude, longitude);\n this.highlightMarker({latitude, longitude}, true);\n },\n initMarkers() {\n //clear all markers\n for (let i = 0; i < this.markers.length; i++) {\n this.markers[i].setMap(null);\n }\n this.markers = [];\n if (this.paginatedResults.length == 0) {\n return\n }\n this.markers = [];\n let self = this;\n for (let i = 0; i < this.paginatedResults.length; i++) {\n let current = this.paginatedResults[i];\n //Check if we already have this location, multiple providers can have the same address\n let markerMatch = $.grep(this.markers, function (element) {\n return current.latitude === element.originalLatitude &&\n current.longitude === element.originalLongitude;\n });\n //console.log('current: ', current, ' match:', markerMatch);\n if (markerMatch.length == 0) {\n let point = new this.google.maps.LatLng(current.latitude, current.longitude);\n let marker = new this.google.maps.Marker({\n map: self.map,\n draggable: false,\n position: point,\n title: current.name,\n originalLatitude: current.latitude,\n originalLongitude: current.longitude,\n icon: self.getCustomMarker('rgb(0,155,222)', 'rgb(1, 139, 198)')\n });\n this.markers.push(marker);\n this.google.maps.event.addListener(marker, 'click', function (target, elem) {\n let markerthis = this;\n let coordinates = {latitude: markerthis.originalLatitude, longitude: markerthis.originalLongitude};\n self.$bus.$emit(self.$bus.$AcEvents.HIGHLIGHT_COORDINATES_IN_LIST, coordinates);\n //postbox.publish('HIGHLIGHT_COORDINATES_IN_LIST', coordinates);\n self.highlightMarker(coordinates, false);\n });\n } else {\n //console.log('Multiple providers with same latitude and longitude');\n markerMatch[0].title = \"Multiple providers\";\n }\n }\n },\n highlightMarker(data, bounce) {\n let markerMatch = null;\n for (let i = 0; i < this.markers.length; i++) {\n let currentMarker = this.markers[i];\n if (currentMarker.originalLatitude !== data.latitude && currentMarker.originalLongitude !== data.longitude) {\n currentMarker.setOpacity(0.5);\n } else {\n markerMatch = currentMarker;\n }\n }\n if (markerMatch != null) {\n markerMatch.setOpacity(1);\n if (bounce) {\n markerMatch.setAnimation(this.google.maps.Animation.BOUNCE);\n setTimeout(function () {\n markerMatch.setAnimation(null);\n }, 700);\n }\n\n }\n }\n }\n};","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./SearchResults.css?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./SearchResults.css?vue&type=style&index=0&lang=css&\"","import {mapGetters} from \"vuex\";\n\nexport const basePresenterMixin = {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tITEMS_PER_PAGE: 10,\n\t\t\t\tcurrentPage: 1,\n\t\t\t\twidgetReady: false,\n\t\t\t\tlistView: true,\n\t\t\t\tmapCounter: 0,\n\t\t\t\tproviderCoordinates: {}\n\t\t\t};\n\t\t},\n\t\tcomputed: {\n\t\t\t...mapGetters(['searchResults', 'paginatedResults', 'searching']),\n\t\t\t...mapGetters({showInOfficePlans: 'globalSettings/showInOfficePlans', showVirtualPlans: 'globalSettings/showVirtualPlans'}),\n\t\t\tsearchResultsClass() {\n\t\t\t\treturn this.showVirtualPlans ? 'col-lg-12' : 'col-lg-6';\n\t\t\t},\n\t\t\tsearchResultClass() {\n\t\t\t\treturn this.showVirtualPlans ? ['col-xs-12', 'col-sm-6', 'col-md-4', 'col-lg-4'] : [];\n\t\t\t},\n\t\t\tshowPrevButton() {\n\t\t\t\tlet show = this.currentPage > 1;\n\t\t\t\treturn show;\n\t\t\t}\n\t\t\t,\n\t\t\tshowNextButton() {\n\t\t\t\tlet currentTotal = this.currentPage * this.ITEMS_PER_PAGE;\n\t\t\t\tlet show = this.searchResults.length > currentTotal;\n\t\t\t\treturn show;\n\t\t\t}\n\t\t\t,\n\t\t\tpaginatorInfo() {\n\t\t\t\tlet startOfPage = ((this.currentPage - 1) * this.ITEMS_PER_PAGE) + 1;\n\t\t\t\tlet endOfPage = Math.min((startOfPage - 1 + this.ITEMS_PER_PAGE), this.searchResults.length);\n\t\t\t\tlet info = `${startOfPage} - ${endOfPage} of ${this.searchResults.length} result(s)`;\n\t\t\t\treturn info;\n\t\t\t},\n\t\t\tmapKey() {\n\t\t\t\treturn `map-component-${this.mapCounter}`;\n\t\t\t},\n\t\t\tdistance(){\n\t\t\t\treturn this.searchResults.map(x => x.distance).sort(function (a, b) {return a > b ? 1 : -1;})[0];\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tasync baseInit() {\n\t\t\t\t//console.log(\"Before widget ready\");\n\t\t\t\tthis.widgetReady = false;\n\t\t\t\tawait this.$store.dispatch(\"SET_CURRENT_PAGE\", this.currentPage);\n\t\t\t\tthis.addBusEvents();\n\t\t\t\tthis.widgetReady = true;\n\t\t\t},\n\t\t\tswitchToListView() {\n\t\t\t\tthis.listView = true;\n\t\t\t},\n\t\t\tasync loadPhysicians() {\n\t\t\t\t//console.log(\"Inside base search presenter, current page:\", this.currentPage);\n\t\t\t\tawait this.$store.dispatch(\"SET_CURRENT_PAGE\", this.currentPage);\n\t\t\t},\n\t\t\taddBusEvents() {\n\t\t\t\tthis.$bus.$on(this.$AcEvents.HIGHLIGHT_COORDINATES_IN_LIST, this.highlightSubscription);\n\t\t\t\tthis.$bus.$on(this.$AcEvents.LOCATE_IN_MAP, this.locateInMap);\n\t\t\t},\n\t\t\tasync locateInMap({latitude, longitude}) {\n\t\t\t\tthis.mapData('providerCoordinates', {latitude, longitude})\n\t\t\t\tthis.mapCounter++;\n\t\t\t\tthis.listView = false;\n\t\t\t},\n\t\t\thighlightSubscription({latitude, longitude}) {\n\t\t\t\tlet coordinateClass = 'coordinate-' + ((latitude + '' + longitude).replace(/\\D/g, ''));\n\t\t\t\t$('.search-result').not('.' + coordinateClass).animate({opacity: 0.5}, 1000);\n\t\t\t\t$('.' + coordinateClass).animate({opacity: 1}, 500);\n\t\t\t\tlet firstMatch = $('.' + coordinateClass).first();\n\t\t\t\t//console.log(\"First match:\", firstMatch);\n\t\t\t\t$('html, body').animate({scrollTop: firstMatch.offset().top - 150}, 500);\n\t\t\t},\n\t\t\tloadPreviousPhysicians() {\n\t\t\t\t$(window).scrollTop(0);\n\t\t\t\tthis.currentPage--;\n\t\t\t\tthis.loadPhysicians();\n\t\t\t},\n\t\t\tloadNextPhysicians() {\n\t\t\t\t$(window).scrollTop(0);\n\t\t\t\tthis.currentPage++;\n\t\t\t\tthis.loadPhysicians();\n\t\t\t}\n\t\t}\n\t}\n;","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","import {common} from \"../../../global/common.js\";\nimport _ from 'lodash';\nimport {singleRequest} from \"../../../global/singleRequest.js\";\nimport {mapGetters} from \"vuex\";\nimport {planPricesMixin} from \"./planPricesMixin.js\";\n\nexport const baseResultMixin = {\n\tprops: {baseData: {type: [Object], required: true}, additionalData: {type: [Object], required: true}},\n\tmixins: [planPricesMixin],\n\tdata() {\n\t\treturn {\n\t\t\tcoordinatesClass: 'coordinate-' + ((this.baseData.latitude + '' + this.baseData.longitude).replace(/\\D/g, '')),\n\t\t\terrorMessage: \"\",\n\t\t\tstandardPlan: {},\n\t\t\tvm: {},\n\t\t\tprofilePicture: '',\n\t\t\tnotes: '',\n\t\t\twidgetReady: false\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapGetters({showInOfficePlans: 'globalSettings/showInOfficePlans', showVirtualPlans: 'globalSettings/showVirtualPlans'}),\n\t},\n\tmethods: {\n\t\tviewProfile() {\n\t\t\tthrow new Error('ViewProfile methods needs to be overwritten by child');\n\t\t},\n\t\tviewInMap() {\n\t\t\tthis.$bus.$emit(this.$AcEvents.LOCATE_IN_MAP, this.baseData);\n\t\t},\n\t\tasync baseInit(detailsUrl) {\n\t\t\ttry {\n\t\t\t\t//console.log(\"Loading details, url:\", detailsUrl, \" distance: \", this.distance);\n\t\t\t\tlet fullDetails = await singleRequest.getRequest(detailsUrl, () => {\n\t\t\t\t\treturn $.ajax({type: \"GET\", global: false, url: detailsUrl});\n\t\t\t\t}, true);\n\t\t\t\t//console.log(\"FullDetails: \", {fullDetails: fullDetails})\n\t\t\t\tthis.mapData('vm', fullDetails);\n\t\t\t\tlet self = this;\n\t\t\t\tthis.vm.prices = self.getPrices(this.vm.plansCost);\n\t\t\t\tthis.setMaxAndMinAge();\t\t\t\n\t\t\t\tthis.vm.designation = common.filterProfDesignations(this.vm.designation);\n\t\t\t\tthis.errorMessage = '';\n\t\t\t\tthis.profilePicture = common.generateImageLink(fullDetails.profilePictureId, common.IMAGE_SIZE.MEDIUM.id);\n\t\t\t\tif (fullDetails.plansCost && fullDetails.plansCost.length > 0) {\n\t\t\t\t\tlet cheapestPlan = _.minBy(fullDetails.plansCost, 'adultFee');\n\t\t\t\t\tthis.standardPlan = cheapestPlan;\n\t\t\t\t\tthis.notes = cheapestPlan.otherServices;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tconsole.log(\"search result error:\", err);\n\t\t\t\tthis.errorMessage = `Error loading data for Dr ${this.baseData.name}, error: ${err.responseText}`;\n\t\t\t}\n\t\t\tthis.widgetReady = true;\n\t\t},\n\t\tlocateInMap() {\n\t\t\tthis.$bus.$emit(this.$AcEvents.HIGHLIGHT_COORDINATES_IN_LIST, {latitude: this.baseData.latitude, longitude: this.baseData.longitude});\n\t\t\tthis.$bus.$emit(this.$AcEvents.LOCATE_IN_MAP, {latitude: this.baseData.latitude, longitude: this.baseData.longitude});\n\t\t},\n\t\tsetMaxAndMinAge(){\n\t\t\tlet maxAge = this.vm.plansCost[0].maxAge;\n\t\t\tlet minAge = this.vm.plansCost[0].minAge;\n\n\t\t\tthis.vm.plansCost.forEach(plan =>{\n\t\t\t\tmaxAge = Math.max(maxAge, plan.maxAge);\n\t\t\t\tminAge = Math.min(minAge, plan.minAge);\n\t\t\t})\n\t\t\tthis.vm.maxAge = maxAge;\n\t\t\tthis.vm.minAge = minAge;\t\t\t\n\t\t}\n\t}\n};","import GoogleMapsLoader from 'google-maps';\nimport {mapGetters} from 'vuex';\nimport {configTables} from \"../../../global/configTables.js\";\nimport {api} from \"../../../global/framework/api.js\";\nimport {formatter} from \"../../../global/formatter.js\";\nimport _ from \"lodash\";\n\nexport const searchBoxMixin = {\n\tprops: {radiusId: {type: [Number], required: true}},\n\tdata() {\n\t\treturn {\n\t\t\twidgetReady: false,\n\t\t\t//Note: this will bind to the NEW search criteria, store will contain the CURRENT one\n\t\t\tsearchCriteria: {\n\t\t\t\tradiusId: this.radiusId,\n\t\t\t\taddressId: 0,\n\t\t\t\tzipCode: '',\n\t\t\t\tlatitude: 0,\n\t\t\t\tlongitude: 0,\n\t\t\t\tdesignationId: null,\n\t\t\t\tonlyAcceptingNewPatients: false,\n\t\t\t\tphysicianName: \"\",\n\t\t\t\taddressName: \"\",\n\t\t\t\tnetworkId: null\n\t\t\t},\n\t\t\tsearchRadiusOptions: [],\n\t\t\tprofessionalDesignations: [],\n\t\t\tavailableNetworks: [],\n\t\t\tautocomplete: null,\n\t\t\thasSearchCriteria: false\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapGetters([\"searchResults\", \"distance\"]),\n\t\t...mapGetters({showInOfficePlans: 'globalSettings/showInOfficePlans', showVirtualPlans: 'globalSettings/showVirtualPlans'}),\n\t},\n\tmethods: {\n\t\tasync baseInit() {\n\t\t\tthis.baseLoad();\n\t\t\t//Initialize search criteria with properties from the url, if they are not set we will just go with the defaults\n\t\t\tawait this.setCurrentCriteria();\n\t\t\t//console.log(\"distance\", this.distance);\n\t\t\tthis.createAddressAutocomplete();\n\t\t\tif (this.hasSearchCriteria) {\n\t\t\t\t//console.log(\"Initializing search box mixin, criteria:\", this.searchCriteria);\n\t\t\t\tawait this.$store.dispatch(\"SEARCH_PHYSICIANS\", {\n\t\t\t\t\tsearchCriteria: this.searchCriteria,\n\t\t\t\t\tbaseUrl: this.generateBaseUrl()\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tsearchPhysiciansRedirect() {\n\t\t\tthrow new Error(\"physician search redirect needs to be overwritten by child\");\n\t\t},\n\t\tgenerateBaseUrl() {\n\t\t\tthrow new Error(\"generate base url needs to be overwritten by child\");\n\t\t},\n\t\tasync setCurrentCriteria() {\n\t\t\t//Read parameters from url if any\n\t\t\tthis.searchCriteria.physicianName = this.$route.query.physicianName || '';\n\t\t\tthis.searchCriteria.addressId = Boolean(this.$route.params.addressId) ? Number(this.$route.params.addressId) : 0;\n\t\t\tif (this.searchCriteria.addressId) {\n\t\t\t\tlet addressView = await api.get('Address', this.searchCriteria.addressId, 'GetView');\n\t\t\t\tthis.searchCriteria.addressName = formatter.formatAddress(addressView.address1,\n\t\t\t\t\taddressView.address2,\n\t\t\t\t\taddressView.city,\n\t\t\t\t\taddressView.stateCode,\n\t\t\t\t\taddressView.zipCode);\n\t\t\t\tthis.searchCriteria.latitude = addressView.latitude;\n\t\t\t\tthis.searchCriteria.longitude = addressView.longitude;\n\t\t\t\tthis.hasSearchCriteria = true;\n\t\t\t} else if (Boolean(this.$route.params.latitude) && Boolean(this.$route.params.longitude)) {\n\t\t\t\tthis.searchCriteria.addressName = this.$route.query.addressName || '';\n\t\t\t\tthis.searchCriteria.latitude = this.$route.params.latitude;\n\t\t\t\tthis.searchCriteria.longitude = this.$route.params.longitude;\n\t\t\t\tthis.hasSearchCriteria = true;\n\t\t\t}\n\t\t\tif (!this.searchCriteria.radiusId) {\n\t\t\t\tif (this.showVirtualPlans) {\n\t\t\t\t\tthis.searchCriteria.radiusId = 7;//Default value for virtual plans: Unlimited\n\t\t\t\t} else {\n\t\t\t\t\tthis.searchCriteria.radiusId = 4;//Default value for in-office plans\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.searchCriteria.designationId = this.$route.query.designationId || null;\n\t\t\tthis.searchCriteria.onlyAcceptingNewPatients = Boolean(Number(this.$route.query.onlyAcceptingNewPatients | \"0\"));\n\t\t\tthis.searchCriteria.networkId = this.$route.query.networkId || null;\n\t\t},\n\t\tcreateAddressAutocomplete() {\n\t\t\tGoogleMapsLoader.KEY = 'AIzaSyBULgN2oWltDQFqUfdnoAFSg76UcLTbvvM';\n\t\t\tGoogleMapsLoader.LIBRARIES = ['places'];\n\t\t\tGoogleMapsLoader.VERSION = '';\n\t\t\tlet self = this;\n\t\t\tGoogleMapsLoader.load(function (google) {\n\t\t\t\tself.widgetReady = true;\n\t\t\t\tself.$nextTick(function () {\n\t\t\t\t\t//console.log('self.$refs:', self.$refs, 'autocomplete:', self.$refs.autocompleteRef);\n\t\t\t\t\tself.autocomplete = new google.maps.places.Autocomplete(\n\t\t\t\t\t\tself.$refs.autocompleteRef,\n\t\t\t\t\t\t{types: ['geocode']}\n\t\t\t\t\t);\n\t\t\t\t\tself.autocomplete.addListener('place_changed', self.autocompleteCallback);\n\t\t\t\t\t$(self.$refs.autocompleteRef).val(self.searchCriteria.addressName || '');\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tautocompleteCallback() {\n\t\t\tlet place = this.autocomplete.getPlace();\n\t\t\tthis.searchCriteria.latitude = place.geometry.location.lat();\n\t\t\tthis.searchCriteria.longitude = place.geometry.location.lng();\n\t\t\tthis.searchCriteria.addressName = $(this.$refs.autocompleteRef).val();\n\t\t},\n\t\tasync baseLoad() {\n\t\t\tlet [radius, designations] = await Promise.all([configTables.getSearchRadiusOptions(),\n\t\t\t\tconfigTables.getProfessionalDesignations()\n\t\t\t]);\n\t\t\tthis.searchRadiusOptions = radius;\n\t\t\tthis.professionalDesignations = designations;\n\t\t},\n\t\topenFaqModal() {\n\t\t\tthis.$refs.faqModal.showModal();\n\t\t}\n\t}\n};","import {formatter} from \"../../../global/formatter.js\";\n\nexport const planPricesMixin = {\n\tmethods: {\n\t\tfindMemberPrice(member) {\n\t\t\tlet price = null;\n\t\t\t\n\t\t\tthis.plan.familyCost.forEach(function (cost, index) {\n\t\t\t\tif (cost.consumerId == member.consumerId) {\n\t\t\t\t\tprice = cost.price;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn price\n\t\t},\n\t\tgetAge(dateString) {\n\t\t\tlet today = new Date();\n\t\t\tlet birthDate = new Date(dateString);\n\t\t\tlet age = today.getFullYear() - birthDate.getFullYear();\n\t\t\tlet m = today.getMonth() - birthDate.getMonth();\n\t\t\tif (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\n\t\t\t\tage--;\n\t\t\t}\n\t\t\treturn age;\n\t\t},\n\t\tinRange(x, min, max) {\n\t\t\treturn x >= min && x <= max;\n\t\t},\n\t\tgetPrices(planCost) {\n\t\t\tlet highest = Number.MIN_SAFE_INTEGER;\n\t\t\tlet lowest = Number.MAX_SAFE_INTEGER;\n\t\t\tlet isSamePrice = false;\n\t\t\tplanCost.forEach(function (plan, index) {\n\t\t\t\tif (plan.highestCost > highest) {\n\t\t\t\t\thighest = plan.highestCost;\n\t\t\t\t}\n\t\t\t\tif (plan.lowestCost < lowest) {\n\t\t\t\t\tlowest = plan.lowestCost;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (highest == lowest) {\n\t\t\t\tisSamePrice = true;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\thighestPlanPrice: highest,\n\t\t\t\tlowestPlanPrice: lowest,\n\t\t\t\tisSamePrice: isSamePrice\n\t\t\t}\n\t\t},\n\t\tgetPlanPriceRange(planCost) {\n\t\t\tlet highest = Number.MIN_SAFE_INTEGER;\n\t\t\tlet lowest = Number.MAX_SAFE_INTEGER;\n\t\t\tlet isSamePrice = false;\n\t\t\tplanCost.forEach(function (tier, index) {\n\t\t\t\tif (tier.price > highest) {\n\t\t\t\t\thighest = tier.price;\n\t\t\t\t}\n\t\t\t\tif (tier.price < lowest) {\n\t\t\t\t\tlowest = tier.price;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (highest == lowest) {\n\t\t\t\tisSamePrice = true;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\thighestPlanPrice: highest,\n\t\t\t\tlowestPlanPrice: lowest,\n\t\t\t\tisSamePrice: isSamePrice\n\t\t\t}\n\t\t}\n\t}\n};"],"sourceRoot":""}