{"version":3,"sources":["JavaScript/InitializeLocatorSearchResults.js"],"names":["initializeLocatorSearchResults","$","window","Engage","Locator","Messaging","getScrollOffsetInPx","SearchResults","initialize","moduleId","element","messaging","servicesFramework","ServicesFramework","tabId","getTabId","antiForgeryValue","getAntiForgeryValue","serviceRoot","getServiceRoot","options","baseUrl","concat","headers","ModuleId","toString","TabId","RequestVerificationToken","localization","localResources","attributeDefinitions","AttributeDefinitions","queryString","QueryString","showNearMe","location","protocol","Boolean","navigator","geolocation","Settings","ShowNearMeButton","settings","uniqueId","regions","countries","initialAddress","addLocationUrl","elmApp","Elm","Main","init","node","flags","ports","out","subscribe","payload","type","toUpperCase","publish","messageTypes","newLocations","data","trackEvent","showLoading","$map","$searchResults","length","scrollTo","offset","top","constructor","call","apply","thirdPartyOffset","parseInt","isNaN","scrollTop","animate","scrollToMapOrResults","EditLocation","locationUpdate","messageType","_ref","latitude","longitude","sub","send","resetSearchFrom","newQueryFilters","_ref2","filters","boundingBoxUpdate","messagesThatTriggerSearch","validateZipCode","locatorMessagePrefix","indexOf","messagesThatMarkSearchAsComplete","zipCodeValidationResult","refreshLocation","_ref3","locationKey","setTimeout","jQuery"],"mappings":"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","file":"JavaScript\\InitializeLocatorSearchResults.min.js","sourcesContent":["/* global Engage, jQuery, Elm */\r\n\r\n/**\r\n * @function initializeLocatorSearchResults\r\n * @description Initializes the core search results module for the Engage Locator.\r\n * @param {jQuery} $ - A reference to the global jQuery namespace.\r\n */\r\nvoid (function initializeLocatorSearchResults($) {\r\n\t'use strict';\r\n\r\n\twindow.Engage = window.Engage || {};\r\n\tEngage.Locator = Engage.Locator || {};\r\n\r\n\tif (!Engage.Locator.Messaging) {\r\n\t\tconst retryDelay = 20;\r\n\t\tsetTimeout(() => initializeLocatorSearchResults($), retryDelay);\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * @private\r\n\t * @const {number} defaultScrollOffest - Defines the default scroll offset for the scroll animation.\r\n\t * @memberof Window.Engage.Locator.SearchResults\r\n\t */\r\n\r\n\tconst defaultScrollOffest = -50;\r\n\r\n\t/**\r\n\t * @function getScrollOffsetInPx\r\n\t * @memberof Window.Engage.Locator\r\n\t * @description Gets the scroll offset in pixels to apply to the scroll animation when scrolling the page.\r\n\t * @returns {number} - A number in pixels that represents the offset to be applied when scrolling tha page.\r\n\t */\r\n\tEngage.Locator.getScrollOffsetInPx = () => defaultScrollOffest;\r\n\r\n\t/**\r\n\t * @namespace Window.Engage.Locator.SearchResults\r\n\t */\r\n\tEngage.Locator.SearchResults = Engage.Locator.SearchResults || {};\r\n\r\n\t/**\r\n\t * @function initialize\r\n\t * @memberof Window.Engage.Locator.SearchResults\r\n\t * @description Initializes and embeds the Engage Locator Search Results module.\r\n\t * @example\r\n\t * Engage.Locator.SearchResults.initialize(\r\n\t * <%: this.ModuleId %>,\r\n\t * document.getElementById('<%: this.LocatorSearchResults.ClientID%>'));\r\n\t * @param {number} moduleId - The module Id of the search module.\r\n\t * @param {element} element - The document element to embed the ELM search application into.\r\n\t */\r\n\tEngage.Locator.SearchResults.initialize = (moduleId, element) => {\r\n\t\tconst messaging = Engage.Locator.Messaging;\r\n\t\tconst servicesFramework = $.ServicesFramework(moduleId); // eslint-disable-line new-cap\r\n\t\tconst tabId = servicesFramework.getTabId();\r\n\t\tconst antiForgeryValue = servicesFramework.getAntiForgeryValue();\r\n\t\tconst serviceRoot = servicesFramework.getServiceRoot('Engage/Locator');\r\n\t\tconst options = {\r\n\t\t\tbaseUrl: `${serviceRoot}Locations/`,\r\n\t\t\theaders: {\r\n\t\t\t\tModuleId: moduleId.toString(),\r\n\t\t\t\tTabId: tabId,\r\n\t\t\t\tRequestVerificationToken: antiForgeryValue,\r\n\t\t\t},\r\n\t\t\tlocalization: Engage.Locator.localResources,\r\n\t\t\tattributeDefinitions: Engage.Locator.AttributeDefinitions || [],\r\n\t\t\tqueryString: Engage.Locator.QueryString || [],\r\n\t\t\tshowNearMe:\r\n\t\t\t\twindow.location.protocol === 'https:' &&\r\n\t\t\t\tBoolean(navigator && navigator.geolocation) &&\r\n\t\t\t\tBoolean(Engage.Locator.Settings.ShowNearMeButton),\r\n\t\t\tsettings: Engage.Locator.Settings,\r\n\t\t\tuniqueId: `${moduleId}-${tabId}`,\r\n\t\t\tregions: Engage.Locator.regions || [],\r\n\t\t\tcountries: Engage.Locator.countries || [],\r\n\t\t\tinitialAddress: Engage.Locator.initialAddress,\r\n\t\t\taddLocationUrl: Engage.Locator.addLocationUrl,\r\n\t\t};\r\n\t\tconst elmApp = Elm.Engage.SearchResults.Main.init({\r\n\t\t\tnode: element,\r\n\t\t\tflags: options,\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @function scrollToMapOrResults\r\n\t\t * @description Scroll the page using the offset from {Window.Engage.Locator.getScrollOffsetInPx}.\r\n\t\t */\r\n\t\tfunction scrollToMapOrResults() {\r\n\t\t\tconst $map = $('.nfda-locator__map');\r\n\t\t\tconst $searchResults = $('.nfda-locator__search-results');\r\n\t\t\tif ($searchResults.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet scrollTo = $searchResults.offset().top;\r\n\t\t\tif ($map.length !== 0) {\r\n\t\t\t\tscrollTo = $map.offset().top;\r\n\t\t\t}\r\n\r\n\t\t\tlet offset = defaultScrollOffest;\r\n\t\t\tif (\r\n\t\t\t\tEngage.Locator.getScrollOffsetInPx &&\r\n\t\t\t\tEngage.Locator.getScrollOffsetInPx.constructor &&\r\n\t\t\t\tEngage.Locator.getScrollOffsetInPx.call &&\r\n\t\t\t\tEngage.Locator.getScrollOffsetInPx.apply\r\n\t\t\t) {\r\n\t\t\t\tconst radix = 10;\r\n\t\t\t\tconst thirdPartyOffset = parseInt(\r\n\t\t\t\t\tEngage.Locator.getScrollOffsetInPx(),\r\n\t\t\t\t\tradix,\r\n\t\t\t\t);\r\n\t\t\t\tif (!isNaN(thirdPartyOffset)) {\r\n\t\t\t\t\toffset = thirdPartyOffset;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst scrollTop = scrollTo + offset;\r\n\t\t\tif (isNaN(scrollTop)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$('html, body').animate({ scrollTop }, 'fast');\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * @global\r\n\t\t * @description Defines the structure of the callback for all outgoing port message from elm.\r\n\t\t * @callback elmPortCallback\r\n\t\t * @param {Object} payload - The encoded JSON payload sent from ELM.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name elmOutboundPortCallback\r\n\t\t * @typedef elmPortCallback\r\n\t\t * @description Handles all outgoing messages from the Engage Locator Search Results ELM application.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {Object} payload - The JSON payload sent from ELM.\r\n\t\t */\r\n\t\telmApp.ports.out.subscribe((payload) => {\r\n\t\t\tif (!payload || !payload.type) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tswitch (payload.type.toUpperCase()) {\r\n\t\t\t\tcase 'SENDNEWLOCATIONS':\r\n\t\t\t\t\tmessaging.publish(\r\n\t\t\t\t\t\tmessaging.messageTypes.newLocations,\r\n\t\t\t\t\t\tpayload.data,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'TRACKEVENT':\r\n\t\t\t\t\tmessaging.publish(\r\n\t\t\t\t\t\tmessaging.messageTypes.trackEvent,\r\n\t\t\t\t\t\tpayload.data,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'SHOWLOADINGREQUEST':\r\n\t\t\t\t\tmessaging.publish(messaging.messageTypes.showLoading);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'SENDSCROLLREQUEST':\r\n\t\t\t\t\tscrollToMapOrResults();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'ADDLOCATION':\r\n\t\t\t\t\twindow.Engage.Locator.EditLocation.init(\r\n\t\t\t\t\t\tEngage.Locator.tabId,\r\n\t\t\t\t\t\tEngage.Locator.moduleId,\r\n\t\t\t\t\t\tnull,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name locationUpdateSubscriptionCallback\r\n\t\t * @typedef subscriptionCallback\r\n\t\t * @description Handles all {Window.Engage.Locator.Messaging.messageTypes.locationUpdate} messages.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {string} messageType - The type of message requesting publish.\r\n\t\t * @param {Object} payload - The object payload for the message requesting publish.\r\n\t\t */\r\n\t\tmessaging.subscribe(\r\n\t\t\tmessaging.messageTypes.locationUpdate,\r\n\t\t\t(messageType, { latitude, longitude }) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tmessageType !== messaging.messageTypes.locationUpdate ||\r\n\t\t\t\t\t!latitude ||\r\n\t\t\t\t\t!longitude\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telmApp.ports.sub.send({\r\n\t\t\t\t\ttype: 'LocationUpdateResult',\r\n\t\t\t\t\tdata: { latitude, longitude },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name resetSearchFormSubscriptionCallback\r\n\t\t * @typedef subscriptionCallback\r\n\t\t * @description Handles all {Window.Engage.Locator.Messaging.messageTypes.resetSearchFrom} messages.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {string} messageType - The type of message requesting publish.\r\n\t\t * @param {Object} payload - The object payload for the message requesting publish.\r\n\t\t */\r\n\t\tmessaging.subscribe(\r\n\t\t\tmessaging.messageTypes.resetSearchFrom,\r\n\t\t\t(messageType) => {\r\n\t\t\t\tif (messageType !== messaging.messageTypes.resetSearchFrom) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telmApp.ports.sub.send({\r\n\t\t\t\t\ttype: 'ResetSearch',\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name newQueryFiltersSubscriptionCallback\r\n\t\t * @typedef subscriptionCallback\r\n\t\t * @description Handles all {Window.Engage.Locator.Messaging.messageTypes.newQueryFilters} messages.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {string} messageType - The type of message requesting publish.\r\n\t\t * @param {Object} payload - The object payload for the message requesting publish.\r\n\t\t */\r\n\t\tmessaging.subscribe(\r\n\t\t\tmessaging.messageTypes.newQueryFilters,\r\n\t\t\t(messageType, { filters }) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tmessageType !== messaging.messageTypes.newQueryFilters ||\r\n\t\t\t\t\t!filters\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telmApp.ports.sub.send({\r\n\t\t\t\t\ttype: 'NewQueryFiltersResult',\r\n\t\t\t\t\tdata: filters,\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name boundingBoxUpdateSubscriptionCallback\r\n\t\t * @typedef subscriptionCallback\r\n\t\t * @description Handles all {Window.Engage.Locator.Messaging.messageTypes.boundingBoxUpdate} messages.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {string} messageType - The type of message requesting publish.\r\n\t\t * @param {Object} payload - The object payload for the message requesting publish.\r\n\t\t */\r\n\t\tmessaging.subscribe(\r\n\t\t\tmessaging.messageTypes.boundingBoxUpdate,\r\n\t\t\t(messageType, data) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tmessageType !== messaging.messageTypes.boundingBoxUpdate ||\r\n\t\t\t\t\t!data\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telmApp.ports.sub.send({\r\n\t\t\t\t\ttype: 'BoundingBoxResult',\r\n\t\t\t\t\tdata,\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @const {string[]} messagesThatTriggerSearch - An array of all messages types that mark a search\r\n\t\t * action has been completed.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t */\r\n\t\tconst messagesThatTriggerSearch = [\r\n\t\t\tmessaging.messageTypes.validateZipCode,\r\n\t\t\tmessaging.messageTypes.locationUpdate,\r\n\t\t\tmessaging.messageTypes.newQueryFilters,\r\n\t\t\tmessaging.messageTypes.resetSearchFrom,\r\n\t\t\tmessaging.messageTypes.boundingBoxUpdate,\r\n\t\t\tmessaging.messageTypes.showLoading,\r\n\t\t];\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name messagesThatTriggerSearchSubscriptionCallback\r\n\t\t * @typedef subscriptionCallback\r\n\t\t * @description Subscribe to all messages in the Engage Locator, only handle messages\r\n\t\t * that exist in the {messagesThatTriggerSearch} member.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {string} messageType - The type of message requesting publish.\r\n\t\t * @param {Object} payload - The object payload for the message requesting publish.\r\n\t\t */\r\n\t\tmessaging.subscribe(messaging.locatorMessagePrefix, (messageType) => {\r\n\t\t\tif (messagesThatTriggerSearch.indexOf(messageType) === -1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\telmApp.ports.sub.send({\r\n\t\t\t\ttype: 'PerformSearchResult',\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @const {string[]} messagesThatMarkSearchAsComplete - An array of all messages types that mark a search\r\n\t\t * action has been completed.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t */\r\n\t\tconst messagesThatMarkSearchAsComplete = [\r\n\t\t\tmessaging.messageTypes.zipCodeValidationResult,\r\n\t\t\tmessaging.messageTypes.newLocations,\r\n\t\t];\r\n\r\n\t\t/**\r\n\t\t * @private\r\n\t\t * @name SubscriptionCallback\r\n\t\t * @typedef messagesThatMarkSearchAsCompleteSubscriptionCallback\r\n\t\t * @description Subscribe to all messages in the Engage Locator, only handle messages\r\n\t\t * that exist in the {messagesThatMarkSearchAsComplete} member.\r\n\t\t * @memberof Window.Engage.Locator.SearchResults\r\n\t\t * @param {string} messageType - The type of message requesting publish.\r\n\t\t * @param {Object} payload - The object payload for the message requesting publish.\r\n\t\t */\r\n\t\tmessaging.subscribe(messaging.locatorMessagePrefix, (messageType) => {\r\n\t\t\tif (messagesThatMarkSearchAsComplete.indexOf(messageType) === -1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\telmApp.ports.sub.send({\r\n\t\t\t\ttype: 'SearchCompletedResult',\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tmessaging.subscribe(\r\n\t\t\tmessaging.messageTypes.refreshLocation,\r\n\t\t\t(messageType, { locationKey }) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tmessageType !== messaging.messageTypes.refreshLocation ||\r\n\t\t\t\t\t!locationKey\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\telmApp.ports.sub.send({\r\n\t\t\t\t\ttype: 'RefreshLocation',\r\n\t\t\t\t\tdata: { locationKey },\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t);\r\n\t};\r\n})(jQuery);\r\n"]}