{"version":3,"sources":["articles.js"],"names":["_createForOfIteratorHelper","r","e","o","a","u","_n","t","Symbol","iterator","s","call","n","next","done","f","return","Array","isArray","_unsupportedIterableToArray","length","F","value","TypeError","_arrayLikeToArray","toString","slice","constructor","name","from","test","categoryArticleList","_target","categoryID","renderingName","renderingTemplateId","pageSize","totalArticles","page","paginate","categoryListTarget","getTarget","this","target","pagination","isMobile","isViewportMobile","api","getApiUrl","categoryListCardGroupBody","querySelector","cardtemplatecard","cardTemplate","cloneNode","innerHTML","_categoryList","prototype","document","data","article","breakpoint","cardtext","newCard","innerText","Title","Byline","createElement","ArticleSummary","summarytext","appendChild","createPagination","window","init","innerWidth","callApi","_this","fetch","method","mode","credentials","headers","Content-Type","then","response","catch","getPage","pageNumber","_obj","_coords","_scrollTo","documentElement","scrollTop","y","offsetHeight","scrollTo","top","left","exploreMoreFeedList","exports","module","exploreMoreFeedTarget","exploreMoreFeedCardGroupBody","firstArticleCardHolder","categoryPageLinkTemplate","getBoundingClientRect","cardImage","_viewportoffset","topoffset","prepend","_exploreMoreFeed","getCardMediaImageTemplate","behavior","cardMediaDiv","className","getElementById","_init","categoryListItem","createCards","concat","restArticleCardHolder","Articles","ArticleImage","URL","height","Height","width","Width","summarytextnode","categoryLink","href","Category","CategoryPageURL","_this2","alt","swapCategory","onCategoryClick","category","categoryId","getAttribute","activeCategory","getElementsByClassName","classList","add","setAttribute","removeAttribute","key","previousFocusedElement","firstElement","activeElement","contains","id","indexOf","focus","parentElement","previousElementSibling","focusedElement","previousSibling","totalCategories","lastElement","code","nextSibling","nextElementSibling","_focusedElement","rendering","exploreMoreFeed","forEach","onclick","preventDefault","currentPanel","selectedPanel","onkeyup","onWindowKeyUp","paginationController","_pagination","currentPage","totalNumberArticles","pages","paginationControl","pageLinkTemplate","addPages","nextLink","onkeydown","isDisabled","buildLink","ariaLabel","endNumber","numberedPages","startDottedPages","endDottedPages","i","maxNumberOfPages","push","_i","getNumberOfPages","_moveToNumbered","p","addPreviousLink","pop","unshift","moveToNumbered","shift","buildDottedLinkMenu","_page","dottedPages","that","_navItem","_navLink","_hiddenMenu","itemIndex","_loop","_hiddenMenuLink","addEventListener","Number","pageObj","linkText","isActive","_arialabel","stopPropagation","remove","viewport","innerHeight","bottom","minspace","validKeys","addPagination","srOnly","click","closeMenuOnClickOutside","closeDotMenus","querySelectorAll","dropdowns","_step","_iterator","closest","err","paginationTarget"],"mappings":"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","file":"articles.min.js","sourcesContent":["\"use strict\";\n\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/* global paginationController */\nvar categoryArticleList = function categoryArticleList() {\n var breakpoint = 992;\n\n // This is a constructor used for building the category list\n function _categoryList(_target, categoryID, renderingName, renderingTemplateId, pageSize, totalArticles, page, paginate) {\n //check for a valid target first\n var categoryListTarget = this.getTarget(_target);\n if (!categoryListTarget) {\n return;\n }\n\n //initial set up and values\n this.target = categoryListTarget;\n this.categoryID = categoryID;\n this.pageSize = pageSize;\n this.totalArticles = totalArticles;\n this.page = page;\n this.paginate = paginate;\n this.pagination = null;\n this.isMobile = this.isViewportMobile();\n this.renderingName = renderingName;\n this.renderingTemplateId = renderingTemplateId;\n this.api = this.getApiUrl();\n\n // find the group body class, clone the first child, and set it to an empty string\n this.categoryListCardGroupBody = this.target.querySelector(\".card-group-body\");\n if (this.categoryListCardGroupBody) {\n var cardtemplatecard = this.categoryListCardGroupBody.querySelector(\"*:first-child\");\n if (cardtemplatecard) {\n this.cardTemplate = cardtemplatecard.cloneNode(true);\n }\n this.categoryListCardGroupBody.innerHTML = '';\n }\n }\n\n //Return a valid target\n _categoryList.prototype.getTarget = function (target) {\n var categoryListTarget = document.getElementById(target);\n\n //First, check to see if the target is either null or undefined\n if (categoryListTarget === null || categoryListTarget === undefined) {\n //If the target is undefined = look for one on the page and use it.\n categoryListTarget = document.querySelector(\"[data-rendering='Category Article List']\");\n\n //Still can't find it - time to bail\n if (categoryListTarget === null || categoryListTarget === undefined) {\n return false;\n }\n }\n return categoryListTarget;\n };\n\n //Create the article cards\n _categoryList.prototype.createCards = function (data) {\n //clear existing cards first\n this.categoryListCardGroupBody.innerHTML = '';\n if (this.cardTemplate) {\n for (var article = 0; article < data.length; article++) {\n var newCard = this.cardTemplate.cloneNode(true);\n\n //article title\n newCard.querySelector(\".card-content a\").href = data[article].ArticleLink;\n\n //article link\n newCard.querySelector(\".card-content a\").innerText = data[article].Title;\n\n //Card Body\n var cardtext = newCard.querySelector(\".card-content .card-text\");\n cardtext.innerHTML = \"\";\n\n //insert byline before article summary\n cardtext.innerHTML = data[article].Byline;\n\n //summary\n var summarytextnode = document.createElement(\"p\");\n var summarytext = data[article].ArticleSummary;\n if (summarytext) {\n summarytextnode.innerHTML = summarytext;\n cardtext.appendChild(summarytextnode);\n }\n\n //append the card to the cardgroup\n this.categoryListCardGroupBody.appendChild(newCard);\n }\n }\n\n //instantiate the pagination object if paging\n this.createPagination();\n };\n\n //Add pagination - create the pagination object for this control\n _categoryList.prototype.createPagination = function () {\n if (this.paginate && this.pagination === null) {\n if (typeof pagination === \"undefined\") {\n window.pagination = new paginationController();\n }\n this.pagination = window.pagination.init(this.target, this.totalArticles, this.pageSize, this.page);\n\n //let the pagination object know what it is controlling (this)\n this.pagination.pageObj = this;\n }\n };\n\n //Build the api url\n _categoryList.prototype.getApiUrl = function () {\n return '/api/article/GetArticlesByCategory/' + this.categoryID + '/' + this.renderingName + '/' + this.renderingTemplateId + '/' + this.pageSize + '/' + this.page;\n };\n _categoryList.prototype.isViewportMobile = function () {\n if (window.innerWidth < breakpoint) {\n return true;\n }\n return false;\n };\n\n // Function to fetch api\n _categoryList.prototype.callApi = function () {\n var _this = this;\n fetch(this.api, {\n method: 'GET',\n mode: 'same-origin',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data) {\n if (data && data.length > 0) {\n _this.createCards(data);\n }\n }).catch(function () {\n //failed request\n });\n return true;\n };\n\n //This is the call back from the pagination\n _categoryList.prototype.getPage = function (pageNumber, _obj) {\n //_obj is the original _categoryList object\n var _coords = _obj.target.getBoundingClientRect();\n var _viewportoffset = document.documentElement.scrollTop;\n var _scrollTo = _viewportoffset + _coords.y;\n var topoffset = document.querySelector(\"header\").offsetHeight;\n _scrollTo = _scrollTo - topoffset;\n if (typeof _scrollTo === \"number\") {\n window.scrollTo({\n top: _scrollTo,\n left: 0,\n behavior: \"smooth\"\n });\n }\n try {\n _obj.page = pageNumber - 1;\n _obj.api = _obj.getApiUrl();\n _obj.callApi();\n } catch (e) {\n //error do nothing\n }\n };\n function _init(target, categoryID, renderingName, renderingTemplateId, pageSize, totalArticles, page, paginate) {\n var categoryListItem = new _categoryList(target, categoryID, renderingName, renderingTemplateId, pageSize, totalArticles, page, paginate);\n\n //call the api and get the data\n categoryListItem.callApi();\n }\n return {\n init: _init\n };\n};\nif (typeof exports !== 'undefined') {\n module.exports = categoryArticleList;\n}\n// JavaScript source code\nvar exploreMoreFeedList = function exploreMoreFeedList() {\n // This is a constructor used for building the category list\n function _exploreMoreFeed(_target, categoryID, renderingName, renderingTemplateId, totalArticles) {\n //check for a valid target first\n var exploreMoreFeedTarget = this.getTarget(_target);\n if (!exploreMoreFeedTarget) {\n return;\n }\n\n //initial set up and values\n this.target = exploreMoreFeedTarget;\n this.categoryID = categoryID;\n this.totalArticles = totalArticles;\n this.renderingName = renderingName;\n this.api = this.getApiUrl();\n this.renderingTemplateId = renderingTemplateId;\n\n // find the group body class, clone the first child, and set it to an empty string\n this.exploreMoreFeedCardGroupBody = this.target.querySelector(\".card-group-body\");\n this.firstArticleCardHolder = this.exploreMoreFeedCardGroupBody.querySelector('.tab-panel:not([hidden]) .emf-first');\n this.cardTemplate = this.firstArticleCardHolder.querySelector(\"*:first-child\");\n this.restArticleCardHolder = this.exploreMoreFeedCardGroupBody.querySelector('.tab-panel:not([hidden]) .emf-rest');\n this.categoryPageLinkTemplate = this.exploreMoreFeedCardGroupBody.querySelector('.tab-panel:not([hidden]) .category-link-content');\n var cardImage = this.cardTemplate.querySelector(\".card-media img\");\n if (!cardImage) {\n cardImage = this.getCardMediaImageTemplate();\n this.cardTemplate.querySelector(\"div.card-body div.row.no-gutters div.col\").prepend(cardImage);\n }\n }\n\n //get card media image template for cases where the first article has no image\n _exploreMoreFeed.prototype.getCardMediaImageTemplate = function () {\n var cardMediaDiv = document.createElement(\"div\");\n cardMediaDiv.className = \"card-media\";\n var cardImage = document.createElement(\"img\");\n cardImage.className = \"card-img img-background\";\n cardMediaDiv.appendChild(cardImage);\n return cardMediaDiv;\n };\n\n //Return a valid target\n _exploreMoreFeed.prototype.getTarget = function (target) {\n var exploreMoreFeedTarget = document.getElementById(target);\n\n //First, check to see if the target is either null or undefined\n if (exploreMoreFeedTarget === null || exploreMoreFeedTarget === undefined) {\n //If the target is undefined = look for one on the page and use it.\n exploreMoreFeedTarget = document.querySelector(\"[data-rendering='Explore More Feed']\");\n\n //Still can't find it - time to bail\n if (exploreMoreFeedTarget === null || exploreMoreFeedTarget === undefined) {\n return false;\n }\n }\n return exploreMoreFeedTarget;\n };\n\n //Create the article cards\n _exploreMoreFeed.prototype.createCards = function (data) {\n //clear existing cards first\n this.firstArticleCardHolder.innerHTML = '';\n this.restArticleCardHolder.innerHTML = '';\n if (this.cardTemplate) {\n //set holders to new tab-panel\n this.firstArticleCardHolder = this.exploreMoreFeedCardGroupBody.querySelector(\"[id='nav-\".concat(this.categoryID, \"-tab'] .emf-first\"));\n this.restArticleCardHolder = this.exploreMoreFeedCardGroupBody.querySelector(\"[id='nav-\".concat(this.categoryID, \"-tab'] .emf-rest\"));\n for (var article = 0; article < data.Articles.length; article++) {\n var newCard = this.cardTemplate.cloneNode(true);\n\n //article image\n var cardImage = newCard.querySelector(\".card-media img\");\n if (data.Articles[article].ArticleImage) {\n cardImage.src = data.Articles[article].ArticleImage.URL;\n cardImage.height = data.Articles[article].ArticleImage.Height;\n cardImage.width = data.Articles[article].ArticleImage.Width;\n cardImage.alt = data.Articles[article].ArticleImage.AltText;\n }\n\n //article title\n newCard.querySelector(\".card-content a\").href = data.Articles[article].ArticleLink;\n\n //article link\n newCard.querySelector(\".card-content a\").innerText = data.Articles[article].Title;\n\n //Card Body\n var cardtext = newCard.querySelector(\".card-content .card-text\");\n cardtext.innerHTML = \"\";\n\n //insert byline before article summary\n cardtext.innerHTML = data.Articles[article].Byline;\n\n //summary\n var summarytextnode = document.createElement(\"p\");\n var summarytext = data.Articles[article].ArticleSummary;\n if (summarytext) {\n summarytextnode.innerHTML = summarytext;\n cardtext.appendChild(summarytextnode);\n }\n\n //append the card to the cardgroup\n if (article === 0) {\n this.firstArticleCardHolder.appendChild(newCard);\n } else {\n this.restArticleCardHolder.appendChild(newCard);\n }\n }\n\n //update explore more category link\n var categoryLink = this.categoryPageLinkTemplate.querySelector(\".card-text a\");\n categoryLink.href = data.Category.CategoryPageURL;\n categoryLink.innerHTML = 'View All ' + data.Category.Title + ' Content';\n this.restArticleCardHolder.appendChild(this.categoryPageLinkTemplate);\n }\n };\n\n //Build the api url\n _exploreMoreFeed.prototype.getApiUrl = function () {\n return '/api/article/GetArticlesAndCategoryByCategory/' + this.categoryID + '/' + this.renderingName + '/' + this.renderingTemplateId + '/' + this.totalArticles;\n };\n\n // Function to fetch api\n _exploreMoreFeed.prototype.callApi = function () {\n var _this2 = this;\n fetch(this.api, {\n method: 'GET',\n mode: 'same-origin',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data) {\n if (data && data.Articles && data.Articles.length > 0) {\n _this2.createCards(data);\n }\n }).catch(function () {\n //failed request\n });\n return true;\n };\n _exploreMoreFeed.prototype.swapCategory = function (categoryID) {\n //create exploreMoreFeedItem with new category\n this.categoryID = categoryID;\n this.api = this.getApiUrl();\n\n //call article service api and create cards\n this.callApi();\n };\n _exploreMoreFeed.prototype.onCategoryClick = function (category) {\n //get category id for category that was clicked\n var categoryId = category.getAttribute(\"data-id\");\n if (this.categoryID !== categoryId) {\n //get new articles and swap with current articles\n this.swapCategory(categoryId);\n\n //get active category\n var activeCategory = document.getElementsByClassName('article-category-link active')[0];\n\n //swap 'active' class to active category\n activeCategory.classList.remove(\"active\");\n category.classList.add(\"active\");\n\n //update aria-selected\n activeCategory.setAttribute('aria-selected', 'false');\n category.setAttribute('aria-selected', 'true');\n\n //swap tab panels\n var currentPanel = document.querySelector('.tab-panel:not([hidden])');\n currentPanel.setAttribute('hidden', 'hidden');\n var selectedPanel = document.getElementById('nav-' + this.categoryID + '-tab');\n selectedPanel.removeAttribute('hidden');\n\n //set tabindex to 0 on active category\n activeCategory.removeAttribute('tabindex');\n category.setAttribute('tabindex', '0');\n }\n };\n _exploreMoreFeed.prototype.onWindowKeyUp = function (key, previousFocusedElement) {\n if (!document.activeElement.classList.contains('article-category-link')) {\n return;\n }\n var activeCategory = document.querySelector('.article-category-link.active');\n if (key.code === 'Tab') {\n var noIndexAt = -1;\n if (!previousFocusedElement.id || previousFocusedElement.id.indexOf('nav-') === noIndexAt) {\n activeCategory.focus();\n } else if (activeCategory.id !== document.activeElement.id) {\n document.querySelector('.emf-first .card-content a').focus();\n }\n } else if (key.code === 'ArrowUp') {\n var previousSibling = activeCategory.parentElement.previousElementSibling;\n if (previousSibling) {\n var focusedElement = previousSibling.querySelector('button');\n this.onCategoryClick(focusedElement);\n focusedElement.focus();\n } else {\n var totalCategories = document.getElementsByClassName('article-category-link');\n var lastElement = totalCategories[totalCategories.length - 1];\n this.onCategoryClick(lastElement);\n lastElement.focus();\n }\n } else if (key.code === 'ArrowDown') {\n var nextSibling = activeCategory.parentElement.nextElementSibling;\n if (nextSibling) {\n var _focusedElement = nextSibling.querySelector('button');\n this.onCategoryClick(_focusedElement);\n _focusedElement.focus();\n } else {\n var firstElement = document.getElementsByClassName('article-category-link')[0];\n this.onCategoryClick(firstElement);\n firstElement.focus();\n }\n }\n };\n function _init(target, categoryID, rendering, renderingTemplateId, totalArticles) {\n var exploreMoreFeed = new _exploreMoreFeed(target, categoryID, rendering, renderingTemplateId, totalArticles);\n Array.from(document.getElementsByClassName(\"article-category-link\")).forEach(function (category) {\n //set onclick event for each category\n category.onclick = function (e) {\n e.preventDefault();\n exploreMoreFeed.onCategoryClick(category);\n };\n var previousFocusedElement = document.activeElement;\n\n //prevent arrow key page scrolling if on a category button\n window.onkeydown = function (key) {\n if (document.activeElement.classList.contains('article-category-link') && (key.code === 'ArrowUp' || key.code === 'ArrowDown')) {\n key.preventDefault();\n }\n previousFocusedElement = document.activeElement;\n };\n\n //aria tab focusing logic\n window.onkeyup = function (key) {\n exploreMoreFeed.onWindowKeyUp(key, previousFocusedElement);\n };\n });\n }\n return {\n init: _init\n };\n};\nif (typeof exports !== 'undefined') {\n module.exports = exploreMoreFeedList;\n}\nvar paginationController = function paginationController() {\n var breakpoint = 992;\n var pagePadding = 3;\n var maxNumberOfPages = 6;\n function _pagination(paginationTarget, totalNumberArticles, pageSize, currentPage) {\n //initial set up and values\n this.target = paginationTarget;\n this.totalNumberArticles = totalNumberArticles;\n this.pageSize = pageSize;\n this.currentPage = currentPage + 1;\n this.pages = this.getNumberOfPages();\n this.pageObj = null; // set in object calling pager\n\n // find the group body class, clone the first child, and set it to an empty string\n this.paginationControl = this.target.querySelector(\".pagination\");\n this.pageLinkTemplate = this.paginationControl.querySelector(\"*:first-child\").cloneNode(true);\n this.paginationControl.innerHTML = '';\n this.isMobile = this.isViewportMobile();\n return this;\n }\n\n //add the pagination to the page\n _pagination.prototype.addPagination = function () {\n //clear out old pager if there\n this.paginationControl.innerHTML = '';\n\n //add the navigation buttons/links\n this.addPreviousLink();\n this.addPages();\n this.nextLink();\n this.closeMenuOnClickOutside();\n };\n\n //previous link\n _pagination.prototype.addPreviousLink = function () {\n var linkText = \"Prev\";\n var ariaLabel = \"Previous\";\n var isDisabled = false;\n var isActive = false;\n if (this.currentPage === 1) {\n isDisabled = true;\n }\n this.buildLink(linkText, isDisabled, isActive, ariaLabel);\n };\n\n //add numbered pages and dots\n _pagination.prototype.addPages = function () {\n var ariaLabel = \"\";\n var isDisabled = false;\n var startNumber = 2;\n var endNumber = this.pages;\n var numberedPages = [];\n var startDottedPages = [];\n var endDottedPages = [];\n if (this.isMobile) {\n for (var i = startNumber; i < endNumber; i++) {\n if (i === this.currentPage) {\n // pagenumber, label\n numberedPages.push(i);\n } else {\n endDottedPages.push(i);\n }\n }\n } else {\n for (var _i = startNumber; _i < endNumber; _i++) {\n if (_i < this.currentPage - pagePadding) {\n //not a numbered page\n startDottedPages.push(_i);\n } else if (_i > this.currentPage + pagePadding) {\n //not a numbered page\n endDottedPages.push(_i);\n } else if (_i === this.currentPage) {\n // pagenumber, label\n numberedPages.push(_i);\n } else {\n //it's a numbered page\n numberedPages.push(_i);\n }\n }\n\n //add upto maxNumberOfPages numberded links\n for (var p = numberedPages.length; p < maxNumberOfPages; p++) {\n if (startDottedPages.length > 0) {\n var itemIndex = startDottedPages.length - 1;\n var moveToNumbered = startDottedPages[itemIndex];\n startDottedPages.pop();\n numberedPages.unshift(moveToNumbered);\n }\n if (numberedPages.length < maxNumberOfPages && endDottedPages.length > 0) {\n var _moveToNumbered = endDottedPages[0];\n endDottedPages.shift();\n numberedPages.push(_moveToNumbered);\n }\n }\n }\n\n //this is the first link - page 1\n this.buildLink(\"1\", isDisabled, this.currentPage === 1, ariaLabel);\n\n //first set of ...\n if (startDottedPages.length > 0) {\n this.buildDottedLinkMenu(startDottedPages);\n }\n //links for numbered nav items\n for (var _page in numberedPages) {\n this.buildLink(numberedPages[_page], isDisabled, numberedPages[_page] === this.currentPage, ariaLabel);\n }\n\n //last set of ...\n if (endDottedPages.length > 0) {\n this.buildDottedLinkMenu(endDottedPages);\n }\n\n //last page link\n if (endNumber > 1) {\n this.buildLink(endNumber, isDisabled, this.currentPage === endNumber, ariaLabel);\n }\n };\n\n //next link\n _pagination.prototype.nextLink = function () {\n //next link\n var linkText = \"Next\";\n var ariaLabel = \"Next\";\n var isDisabled = false;\n var isActive = false;\n if (this.currentPage >= this.pages) {\n isDisabled = true;\n }\n this.buildLink(linkText, isDisabled, isActive, ariaLabel);\n };\n\n //build the ... link and the hidden menu behind it\n _pagination.prototype.buildDottedLinkMenu = function (dottedPages) {\n //build Navigation Link\n var that = this;\n var _navItem = this.pageLinkTemplate.cloneNode(true);\n _navItem.classList.add(\"dropdown\");\n var _navLink = _navItem.querySelector(\"a\");\n _navLink.innerText = \"...\";\n var _arialabel = \"Additional navigation options are available once clicked\";\n\n //create the hidden nav list\n var _hiddenMenu = document.createElement(\"div\");\n _hiddenMenu.classList.add(\"dropdown-menu\");\n _navLink.setAttribute(\"aria-label\", _arialabel);\n _navLink.setAttribute(\"aria-haspopup\", \"true\");\n _navLink.setAttribute(\"aria-expanded\", \"false\");\n var _loop = function _loop(_page) {\n //create the link for the hidden page\n var _hiddenMenuLink = document.createElement(\"a\");\n _hiddenMenuLink.innerText = dottedPages[_page];\n _hiddenMenuLink.href = \"#\";\n _hiddenMenuLink.classList.add(\"dropdown-item\");\n\n //add the link to the menu\n _hiddenMenu.appendChild(_hiddenMenuLink);\n\n //add click event (paging) to hidden menu link\n _hiddenMenuLink.addEventListener(\"click\", function (e) {\n e.preventDefault();\n\n //add 1 to the current page the\n that.currentPage = Number(dottedPages[_page]);\n\n //call the getPage function for the pageObj, send the object so it has the correct context\n if (that.pageObj !== null) {\n that.pageObj.getPage(that.currentPage, that.pageObj);\n }\n\n //update pagination\n that.addPagination();\n });\n };\n for (var _page in dottedPages) {\n _loop(_page);\n }\n\n //add hidden menu to the pagination nav item\n _navItem.appendChild(_hiddenMenu);\n\n //add the nav item to the pagination control\n this.paginationControl.appendChild(_navItem);\n\n //add the click event for the \"...\" to show/hide the dropdown menu\n _navLink.addEventListener(\"click\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n if (_navLink.classList.contains(\"show\")) {\n _navLink.classList.remove(\"show\");\n _hiddenMenu.classList.remove(\"show\");\n _navItem.classList.remove(\"dropup\");\n _navLink.setAttribute(\"aria-expanded\", \"false\");\n } else {\n _navLink.classList.add(\"show\");\n _hiddenMenu.classList.add(\"show\");\n var viewport = _hiddenMenu.getBoundingClientRect();\n var minspace = window.innerHeight - 1;\n if (viewport.bottom > minspace) {\n _navItem.classList.add(\"dropup\");\n }\n _navLink.setAttribute(\"aria-expanded\", \"true\");\n }\n });\n _navLink.addEventListener('keydown', function (e) {\n var validKeys = ['Spacebar', 'Space', ' ', 'Enter'];\n if (validKeys.indexOf(e.key) >= 0 || validKeys.indexOf(e.code) >= 0) {\n e.preventDefault();\n _navLink.click();\n }\n });\n };\n\n //build links (but not the ... links)\n _pagination.prototype.buildLink = function (linkText, isDisabled, isActive, ariaLabel) {\n //build Navigation Link\n var _navItem = this.pageLinkTemplate.cloneNode(true);\n var _navLink = _navItem.querySelector(\"a\");\n _navLink.innerText = linkText;\n\n //make sure we can access the correct (pagination) object\n var that = this;\n if (isDisabled) {\n _navItem.classList.add(\"disabled\");\n _navLink.setAttribute(\"tabindex\", \"-1\");\n _navLink.setAttribute(\"aria-disabled\", \"true\");\n }\n if (isActive) {\n _navItem.classList.add(\"active\");\n _navLink.setAttribute(\"tabindex\", \"-1\");\n _navLink.setAttribute(\"aria-current\", \"page\");\n var srOnly = document.createElement(\"span\");\n srOnly.classList.add(\"sr-only\");\n srOnly.innerText = \"(current)\";\n _navLink.appendChild(srOnly);\n }\n if (ariaLabel) {\n _navLink.setAttribute(\"aria-label\", ariaLabel);\n }\n if (linkText === \"Next\" && !isDisabled) {\n _navLink.addEventListener(\"click\", function (e) {\n e.preventDefault();\n\n // the api page starts with 0, not 1. So subtract 1 to get the page we want\n //that.currentPage--;\n\n //add 1 to the current page the\n that.currentPage++;\n\n //call the getPage function for the pageObj, send the object so it has the correct context\n if (that.pageObj !== null) {\n that.pageObj.getPage(that.currentPage, that.pageObj);\n }\n\n //update pagination\n that.addPagination();\n });\n } else if (linkText === \"Prev\" && !isDisabled) {\n _navLink.addEventListener(\"click\", function (e) {\n e.preventDefault();\n\n //add 1 to the current page the\n that.currentPage--;\n\n //call the getPage function for the pageObj, send the object so it has the correct context\n if (that.pageObj !== null) {\n that.pageObj.getPage(that.currentPage, that.pageObj);\n }\n\n //update pagination\n that.addPagination();\n });\n } else {\n _navLink.addEventListener(\"click\", function (e) {\n e.preventDefault();\n\n //add 1 to the current page the\n that.currentPage = Number(linkText);\n\n //call the getPage function for the pageObj, send the object so it has the correct context\n if (that.pageObj !== null) {\n that.pageObj.getPage(that.currentPage, that.pageObj);\n }\n\n //update pagination\n that.addPagination();\n });\n }\n _navLink.addEventListener(\"focus\", function () {\n that.closeDotMenus();\n });\n this.paginationControl.appendChild(_navItem);\n };\n\n //close the ... drop down menu when open, if open, when the menu is not clicked\n _pagination.prototype.closeMenuOnClickOutside = function () {\n var that = this;\n document.addEventListener('click', function () {\n that.closeDotMenus();\n });\n };\n\n //Close the dropdown menu we call the close menu from a few places so created a function for it.\n _pagination.prototype.closeDotMenus = function () {\n var dropdowns = this.paginationControl.querySelectorAll('.dropdown-menu.show');\n if (dropdowns) {\n var _iterator = _createForOfIteratorHelper(dropdowns),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _hiddenMenu = _step.value;\n var _navItem = _hiddenMenu.closest(\"li.page-item\");\n var _navLink = _navItem.querySelector(\"a.page-link\");\n _navLink.classList.remove(\"show\");\n _hiddenMenu.classList.remove(\"show\");\n _navItem.classList.remove(\"dropup\");\n _navLink.setAttribute(\"aria-expanded\", \"false\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n };\n\n //calculate the number of pages based on the total number of articles and the number of articles on each page\n _pagination.prototype.getNumberOfPages = function () {\n if (this.totalNumberArticles === 0 || this.pageSize === 0) {\n return 0;\n }\n return Math.ceil(this.totalNumberArticles / this.pageSize);\n };\n\n //used to se isMobile\n _pagination.prototype.isViewportMobile = function () {\n if (window.innerWidth < breakpoint) {\n return true;\n }\n return false;\n };\n\n //init function\n function _init(paginationTarget, totalNumberArticles, pageSize, currentPage, api) {\n var pagination = new _pagination(paginationTarget, totalNumberArticles, pageSize, currentPage, api);\n if (pagination.getNumberOfPages() <= 1) {\n //No pagination needed remove pagination\n pagination.target.querySelector(\".card-group-footer\").remove();\n } else {\n pagination.addPagination();\n }\n return pagination;\n }\n return {\n init: _init\n };\n};\nif (typeof exports !== 'undefined') {\n module.exports = paginationController;\n}"]}