{"version":3,"sources":["NewsArticleListing.js","CategoryCTASwiper.js","NewsHomePageTracking.js","NewsCategoryPageTracking.js","NewsArticlePageTracking.js"],"names":["THF","Interface","$","NewsArticleListing","options","extend","apiConfig","endPoint","pageSize","currentPage","selectors","parentElem","tileRow","btnLoadMore","articleTile","serviceTile","pagination","paginationProgress","currentlyShowing","totalResults","$tileRow","$parentElem","$btnLoadMore","$paginationProgress","$currentlyShowing","$totalResults","catId","data","selector","setErrorState","bool","addClass","html","removeClass","fetchPage","pageNumber","loadMoreButtonClicked","apiUrl","ajax","type","crossDomain","dataType","url","done","response","items","forEach","obj","imgBlock","articleObj","image_lg","image_xs","image_alt","tileMarkup","link","navigationInNewTab","title","description","publishedDate","append","children","delay","fadeIn","loaded","total","css","$serviceTiles","length","each","this","find","click","e","window","dataLayer","push","event","pagePath","attr","$articleTiles","not","loadedMessage","results","fail","jqXHR","textStatus","errorThrown","jQuery","w","CategoryCTASwiper","swiper","detect","prototype","Swiper","direction","loop","spaceBetween","slidesPerView","allowTouchMove","breakpoints","767","navigation","nextEl","prevEl","NewsHomePageTracking","articleTilePrimary","categoriesCtas","categoryTile","articleFeatureTile","articleTilePrimaryButton","categoryTiles","articleFeatureTileButtons","version","NewsCategoryPageTracking","categoryCTAs","NewsArticlePageTracking","console","log","relatedArticles","articleTiles"],"mappings":"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","file":"news-section.min.js","sourcesContent":["\r\nvar THF = THF || {};\r\nTHF.Interface = THF.Interface || {};\r\n(function ($, jQuery) {\r\n 'use strict';\r\n\r\n THF.Interface.NewsArticleListing = function (options) {\r\n\r\n var defaults = {\r\n\r\n apiConfig: {\r\n endPoint: '/api/v1/news/articles/',\r\n pageSize: 6,\r\n },\r\n\r\n currentPage: 0,\r\n selectors: {\r\n //Module Parent\r\n parentElem: '.category-article-list',\r\n tileRow: '.tile-container-row',\r\n btnLoadMore: '.btn-load-more',\r\n\r\n articleTile: '.article-tile-featured',\r\n serviceTile: '.hh-service-tile',\r\n\r\n pagination: '.pagination',\r\n paginationProgress: '.pagination-process-bar .inner',\r\n currentlyShowing: '.pagination .currently-showing',\r\n totalResults: '.pagination .total-results'\r\n },\r\n\r\n };\r\n\r\n options = $.extend(true, {}, defaults, options);\r\n\r\n\r\n /**********************************\r\n // Declare DOM elements\r\n **********************************/\r\n var parentElem = $(options.selectors.parentElem);\r\n var $tileRow = $parentElem(options.selectors.tileRow);\r\n var $btnLoadMore = $parentElem(options.selectors.btnLoadMore);\r\n\r\n var $pagination = $parentElem(options.selectors.pagination);\r\n var $paginationProgress = $parentElem(options.selectors.paginationProgress);\r\n var $currentlyShowing = $parentElem(options.selectors.currentlyShowing);\r\n var $totalResults = $parentElem(options.selectors.totalResults);\r\n\r\n var catId = parentElem.data('category-id');\r\n\r\n\r\n /**********************************\r\n // Helper function to return a jQuery object, which is a child of 'parentElem'\r\n **********************************/\r\n function $parentElem(selector) {\r\n return $(options.selectors.parentElem + ' ' + selector);\r\n }\r\n\r\n /**********************************\r\n // Template Generators\r\n **********************************/\r\n function getArticleTile(articleObj) {\r\n var imgBlock = '';\r\n if (articleObj.image_lg) {\r\n imgBlock =\r\n '
\\n' +\r\n ' \\n' +\r\n ' \\n' +\r\n ' \"'\\n' +\r\n ' \\n' +\r\n '
\\n';\r\n }\r\n\r\n var articleTile =\r\n '
\\n' +\r\n ' \\n' +\r\n imgBlock +\r\n '
\\n' +\r\n '

' + articleObj.title + '

\\n' +\r\n '

' + articleObj.description + '

\\n' +\r\n ' \\n' +\r\n '
\\n' +\r\n '
\\n' +\r\n '
';\r\n\r\n return articleTile;\r\n }\r\n \r\n /**********************************\r\n // State Management\r\n **********************************/\r\n function setErrorState(bool) {\r\n\r\n if (bool === true) {\r\n parentElem.addClass('error-occurred');\r\n $btnLoadMore.html('Try again?');\r\n } else {\r\n parentElem.removeClass('error-occurred');\r\n $btnLoadMore.html('Load More');\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n function updatePagination(loaded, total) {\r\n var percentageLoaded = (loaded / total * 100) + '%';\r\n $paginationProgress.css('width', percentageLoaded);\r\n $currentlyShowing.html(loaded);\r\n $totalResults.html(total);\r\n\r\n if (loaded === total) {\r\n $btnLoadMore.addClass('disabled');\r\n }\r\n }\r\n\r\n\r\n /**********************************\r\n // API methods\r\n **********************************/\r\n function buildApiUrl(catId, pageSize, pageNumber) {\r\n var apiUrl = options.apiConfig.endPoint + catId + '/page?pageSize=' + pageSize + '&page=' + pageNumber;\r\n return apiUrl;\r\n }\r\n\r\n\r\n function fetchPage(pageNumber, loadMoreButtonClicked) {\r\n var apiUrl = buildApiUrl(catId, options.apiConfig.pageSize, pageNumber);\r\n $.ajax({\r\n type: 'GET',\r\n crossDomain: true,\r\n dataType: 'JSON',\r\n url: apiUrl,\r\n })\r\n .done(function (response) {\r\n appendPage(response.items);\r\n setErrorState(false);\r\n updatePagination(response.loaded, response.total);\r\n initCategoryArticleListTracking();\r\n\r\n // Track only when 'Load More' button is clicked\r\n if (loadMoreButtonClicked) {\r\n initLoadMoreTracking(response.loaded, response.total);\r\n }\r\n \r\n })\r\n\r\n .fail(function (jqXHR, textStatus, errorThrown) {\r\n setErrorState(true);\r\n });\r\n }\r\n\r\n /**********************************\r\n // Rendering\r\n **********************************/\r\n function appendPage(pageItems) {\r\n pageItems.forEach(function (obj) {\r\n var tileMarkup = getArticleTile(obj); \r\n\r\n $tileRow\r\n .append(tileMarkup)\r\n .children()\r\n .delay(150)\r\n .fadeIn(350);\r\n\r\n\r\n\r\n });\r\n\r\n //Increase the page count\r\n options.currentPage++;\r\n\r\n }\r\n\r\n /**********************************\r\n // Event binding\r\n **********************************/\r\n function bindEvents() {\r\n $btnLoadMore.click(function (e) {\r\n fetchPage(options.currentPage + 1, true);\r\n });\r\n }\r\n\r\n\r\n /**********************************\r\n // Load More Button Tracking\r\n **********************************/\r\n function initLoadMoreTracking(loaded, total) {\r\n if (total > 0) {\r\n var loadedMessage = loaded + ' of ' + total + ' results';\r\n //console.log(loadedMessage);\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'showMore',\r\n 'results': loadedMessage\r\n });\r\n }\r\n }\r\n\r\n\r\n /**********************************\r\n // Category Article List Tracking\r\n **********************************/\r\n function initCategoryArticleListTracking() {\r\n\r\n // Find service Tile \r\n var $serviceTiles = $('.category-article-list .hh-service-tile');\r\n if ($serviceTiles.length > 0) {\r\n $serviceTiles.each(function () {\r\n var current = $(this);\r\n /* Find Service Tile that has not binded to click event */\r\n var serviceTileButton = current.find('a:not(.bound)');\r\n\r\n /* Add bound class once the click event is binded to it serviceTileButton */\r\n serviceTileButton.addClass('bound').click(function (e) {\r\n //e.preventDefault();\r\n //console.log('Category Landing Page >> Service Tile clicked.');\r\n //console.log($(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'categoryMainCard',\r\n 'type': 'Service',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n });\r\n });\r\n }\r\n\r\n // Find service Tile \r\n var $articleTiles = $('.category-article-list .article-tile-featured');\r\n if ($articleTiles.length > 0) {\r\n $articleTiles.each(function () {\r\n /* Find article tile that has not binded to click event */\r\n var articleTileButton = $(this).not('.bound');\r\n\r\n /* Add bound class once the click event is binded to it serviceTileButton */\r\n articleTileButton.addClass('bound').click(function (e) {\r\n //e.preventDefault();\r\n //console.log('Category Landing Page >> Article Tile clicked.');\r\n //console.log($(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'categoryMainCard',\r\n 'type': 'Article',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n\r\n });\r\n });\r\n }\r\n }\r\n\r\n /**********************************\r\n // Simple constructor\r\n **********************************/\r\n function __construct() {\r\n\r\n // Init\r\n if (parentElem.length > 0) {\r\n fetchPage(1, false);\r\n bindEvents();\r\n }\r\n }\r\n\r\n __construct();\r\n\r\n\r\n //\r\n // Make some events accessible from global scope\r\n //\r\n return {\r\n\r\n };\r\n };\r\n\r\n\r\n})(jQuery, jQuery);\r\n\r\n\r\n","(function($, w, undefined) {\r\n\r\n function CategoryCTASwiper() {\r\n this.swiper;\r\n this.detect();\r\n }\r\n\r\n CategoryCTASwiper.prototype.detect = function() {\r\n this.swiper = new Swiper ('.categories-ctas .swiper-container', {\r\n // Optional parameters\r\n direction: 'horizontal',\r\n loop: false,\r\n spaceBetween: 24,\r\n slidesPerView: 3,\r\n allowTouchMove: false,\r\n\r\n breakpoints: {\r\n 767: {\r\n slidesPerView: 1,\r\n spaceBetween: 14,\r\n allowTouchMove: true\r\n }\r\n },\r\n\r\n // Navigation arrows\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev'\r\n }\r\n })\r\n };\r\n\r\n w.THF = w.THF || {};\r\n w.THF.Interface = w.THF.Interface || {};\r\n w.THF.Interface.CategoryCTASwiper = new CategoryCTASwiper();\r\n})(jQuery, window);","var THF = THF || {};\r\nTHF.Interface = THF.Interface || {};\r\n\r\n(function ($, jQuery) {\r\n 'use strict';\r\n\r\n THF.Interface.NewsHomePageTracking = function (options) {\r\n\r\n var defaults = {\r\n\r\n selectors: {\r\n parentElem: '.news-home',\r\n articleTilePrimary: '.article-tile-primary',\r\n categoriesCtas: '.categories-ctas',\r\n categoryTile: '.category-tile',\r\n articleFeatureTile: '.article-tile-featured' \r\n }\r\n };\r\n\r\n options = $.extend(true, {}, defaults, options);\r\n\r\n\r\n /**********************************\r\n // Declare DOM elements\r\n **********************************/\r\n var parentElem = $(options.selectors.parentElem);\r\n var articleTilePrimary = $parentElem(options.selectors.articleTilePrimary);\r\n var articleTilePrimaryButton = articleTilePrimary.find('a');\r\n\r\n var categoriesCtas = $parentElem(options.selectors.categoriesCtas);\r\n var categoryTiles = categoriesCtas.find(options.selectors.categoryTile);\r\n\r\n var articleFeatureTiles = $parentElem(options.selectors.articleFeatureTile);\r\n var articleFeatureTileButtons = articleFeatureTiles.find('a'); \r\n\r\n /**********************************\r\n // Helper function to return a jQuery object, which is a child of 'parentElem'\r\n **********************************/\r\n function $parentElem(selector) {\r\n return $(options.selectors.parentElem + ' ' + selector);\r\n }\r\n\r\n\r\n /**********************************\r\n // Event binding\r\n **********************************/\r\n function bindEvents() {\r\n\r\n /* Home Page Primary Article Tile */\r\n articleTilePrimaryButton.click(function (e) {\r\n //e.preventDefault();\r\n //console.log('Home Page >> Single Primary Article Tile clicked.');\r\n //console.log('pagePath: ' + $(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'landingMainCard',\r\n 'type': 'Article',\r\n 'version': 'Spotlight',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n });\r\n\r\n /* Home Page >> Feature Article Tile */\r\n articleFeatureTileButtons.each(function () {\r\n var articleFeatureTileButton = $(this);\r\n articleFeatureTileButton.click(function (e) {\r\n //e.preventDefault();\r\n //console.log('Home Page >> Feature Article Tile clicked.');\r\n //console.log('pagePath: ' + $(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'landingMainCard',\r\n 'type': 'Article',\r\n 'version': 'Card',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n });\r\n }); \r\n\r\n\r\n /* Home Page Category Tiles : Browse More Categories */\r\n categoryTiles.each(function () {\r\n var categoryTile = $(this);\r\n var categoryTileBrowseButton = categoryTile.find('a');\r\n categoryTileBrowseButton.click(function (e) {\r\n //e.preventDefault();\r\n //console.log('Home Page >> Browse More Articles >> Category Tile clicked.');\r\n //console.log('pagePath: ' + $(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'LandingBrowseMoreCard',\r\n 'type': 'Category',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**********************************\r\n // Simple constructor\r\n **********************************/\r\n function __construct() {\r\n\r\n // Init\r\n if (parentElem.length > 0) {\r\n bindEvents();\r\n }\r\n }\r\n\r\n __construct();\r\n\r\n\r\n //\r\n // Make some events accessible from global scope\r\n //\r\n return {\r\n\r\n };\r\n };\r\n})(jQuery, jQuery)","var THF = THF || {};\r\nTHF.Interface = THF.Interface || {};\r\n\r\n(function ($, jQuery) {\r\n 'use strict';\r\n\r\n THF.Interface.NewsCategoryPageTracking = function (options) {\r\n\r\n var defaults = {\r\n\r\n selectors: {\r\n parentElem: '.news-category',\r\n categoryCTAs: '.categories-ctas',\r\n categoryTiles: '.category-tile' \r\n }\r\n };\r\n\r\n options = $.extend(true, {}, defaults, options);\r\n\r\n\r\n /**********************************\r\n // Declare DOM elements\r\n **********************************/\r\n var parentElem = $(options.selectors.parentElem);\r\n var categoryCTAs = $parentElem(options.selectors.categoryCTAs);\r\n var categoryTiles = categoryCTAs.find(options.selectors.categoryTiles); \r\n\r\n\r\n\r\n /**********************************\r\n // Helper function to return a jQuery object, which is a child of 'parentElem'\r\n **********************************/\r\n function $parentElem(selector) {\r\n return $(options.selectors.parentElem + ' ' + selector);\r\n }\r\n\r\n\r\n /**********************************\r\n // Event binding\r\n **********************************/\r\n function bindEvents() {\r\n\r\n /* Category Page: Article Tiles in the 'Browser more articles' */\r\n categoryTiles.each(function () {\r\n var categoryTile = $(this);\r\n var categoryTileButton = categoryTile.find('a');\r\n\r\n categoryTileButton.click(function (e) {\r\n // e.preventDefault();\r\n //console.log('Category Page >> Browse More Articles >> Category Tile Clicked.');\r\n //console.log($(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'categoryBrowseMoreCard',\r\n 'type': 'Category',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n });\r\n }); \r\n }\r\n\r\n /**********************************\r\n // Simple constructor\r\n **********************************/\r\n function __construct() {\r\n\r\n // Init\r\n if (parentElem.length > 0) {\r\n bindEvents();\r\n }\r\n }\r\n\r\n __construct();\r\n\r\n\r\n //\r\n // Make some events accessible from global scope\r\n //\r\n return {\r\n\r\n };\r\n };\r\n})(jQuery, jQuery)","var THF = THF || {};\r\nTHF.Interface = THF.Interface || {};\r\n\r\n(function ($, jQuery) {\r\n 'use strict';\r\n\r\n THF.Interface.NewsArticlePageTracking = function (options) {\r\n console.log('article page loaded');\r\n var defaults = {\r\n\r\n selectors: {\r\n parentElem: '.news-article',\r\n relatedArticles: '.related-articles',\r\n articleTiles: '.article-tile-featured' \r\n }\r\n };\r\n\r\n options = $.extend(true, {}, defaults, options);\r\n\r\n\r\n /**********************************\r\n // Declare DOM elements\r\n **********************************/\r\n var parentElem = $(options.selectors.parentElem);\r\n var relatedArticles = $parentElem(options.selectors.relatedArticles);\r\n var articleTiles = relatedArticles.find(options.selectors.articleTiles); \r\n\r\n\r\n /**********************************\r\n // Helper function to return a jQuery object, which is a child of 'parentElem'\r\n **********************************/\r\n function $parentElem(selector) {\r\n return $(options.selectors.parentElem + ' ' + selector);\r\n }\r\n\r\n\r\n /**********************************\r\n // Event binding\r\n **********************************/\r\n function bindEvents() {\r\n\r\n /* Article Page >> Related Articles >> Article Tiles */\r\n if (articleTiles.length > 0) {\r\n articleTiles.each(function () {\r\n var articleTileButton = $(this).find('a');\r\n articleTileButton.click(function (e) {\r\n //e.preventDefault();\r\n //console.log('Article Page >> Related Articles >> Article Tile clicked.');\r\n //console.log($(this).attr('href'));\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'articleRelatedArticleCard',\r\n 'type': 'Article',\r\n 'pagePath': $(this).attr('href')\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n /**********************************\r\n // Simple constructor\r\n **********************************/\r\n function __construct() {\r\n\r\n // Init\r\n if (parentElem.length > 0) {\r\n bindEvents();\r\n }\r\n }\r\n\r\n __construct();\r\n\r\n\r\n //\r\n // Make some events accessible from global scope\r\n //\r\n return {\r\n\r\n };\r\n };\r\n})(jQuery, jQuery)"]}