{"version":3,"sources":["OpenContent/Templates/Memorial-Tiles/js/main.js"],"names":["jQuery","document","ready","$","click","this","attr","removeClass","parent","toggleClass","addClass","each","term","nav","initGlossaryFilter","attributes","getElementsByClassName","gArray","Array","from","forEach","length","letter","item","terms","innerText","value","charAt","termJJ","toUpperCase","newLetterLink","sort","letters","i","foundOne","j","nextChar","concat","resizeGridItem","insertBefore","resizeAllGridItems","rowHeight","allItems","x","rowSpan","rowGap","parseInt","gridRowEnd","window","getComputedStyle","grid","getPropertyValue","Math","ceil","getBoundingClientRect","height","style","a","b","text","appendTo","onload","addEventListener","html","replace"],"mappings":"AACAA,OAAOC,UAAUC,MAAM,SAAAC,gBAiEtBA,EAAE,WAhBEA,EAAAA,oBAAEC,MAAA,WACFD,IAAAA,EAAEA,EAAAE,MAAAC,KAAA,YAyBN,OAtBGH,EAAA,wBAEDI,YAAA,UAnBAJ,EAAEE,MAAMG,SAASC,YAAY,UAsB5BN,EAAA,wBAAAO,SAAA,YAGDP,EA9BD,wBAAAQ,KAAA,WAiCD,IAAAC,EAAAT,EAAAE,MAAAC,KAAA,aApBOO,IAAQD,GACXT,EAAEE,MAAME,YAAY,YAqBvBO,MAAAA,IADDX,EAAA,wBAAAO,SAAA,UAhBIP,EAAE,wBAAwBO,SAAS,UAoBvCP,EAAA,wBAAAI,YAAoC,YACnCJ,EAAA,wBAAoBY,YAAW,eAKRC,aAAlBC,EAAAA,MAAShB,KAAAA,mBAmBZ,IAAAgB,EAAAhB,SAAAe,uBAAA,uBACAE,MAAAC,KAAAF,GAGFG,QATA,SAA0BC,GACzB,IAAAC,EAAWC,EAAGC,WAASC,aAAvBC,MAAAC,SACAxB,EAAAoB,GAAMK,KAAAA,YAAeC,KAUrB,IAFD,IAAAL,EAAIM,EAAAA,0CAAJC,OACAC,EAAY,6BACXC,EAAA,EAAAA,EAAAD,EAAAX,OAAAY,IAAA,CAOA9B,IANA2B,IAAAA,EAAaE,EAAAL,OAAAM,GAdVC,GAiBU,IAGZC,EAAA,EAAAA,EAAAX,EAAAH,OAAAc,IAhBD,GAqBDX,EAAAW,GAAAV,UAtBsBI,cACVF,OAAO,KAAOS,EAAU,CAsBpCjC,EAAEgC,EAEH,MAGC,IAAAL,OAAA,GAdc,MALVI,EAEHJ,EAAa,oEAAAO,OAAuED,EAAvE,gBAsBdN,EAAQZ,4GAAAA,OAARkB,EAAQlB,6BAAAA,OAARkB,EAAQlB,eAEPoB,EAAAA,iCAAAA,OAAAF,EAAAE,OAAAC,aACAf,EAAAU,KAKF/B,EAAE,kBAAeQ,OAAKmB,GAVtB,SAASU,IAGR,IAFA,IAtHsBxB,EAGhByB,EAiBFA,EAkGEC,EAAWzC,SAASe,uBAAuB,uBAC7C2B,EAAIzB,MAAMC,KAAKuB,GACdC,EAAI,EAAGA,EAAID,EAASrB,OAAQsB,IAxHX3B,EAyHN0B,EAASC,GA9GnBC,EAaPC,EAJKJ,EAjBEA,OAAAA,EAAAA,EAAAA,SAAYK,uBAIlB,0BAIA,GASIL,EAAOM,SAzBiBC,OA4B7BC,iBAAAC,GAAAC,iBAAA,kBAlBE,IAmBFN,EAAS/B,SACRkC,OAAAC,iBAAAC,GAAAC,iBAAA,gBACAhD,IAfMyC,EAAUQ,KAAKC,MAmBpBlD,EACAA,cAjBE,sDAEAmD,wBAAwBC,OAqB1BpD,IACCsC,EAAUI,IACVtB,EAAAiC,MAAI3C,WAAJ,QAAAwB,OAAkBO,EAAA,GA4ErBzC,EAAE,wBAAwB4B,KAxH3B,SAAA0B,EAAAC,GAsHE,OAAOvD,EAAEuD,GAAGC,OAASxD,EAAEsD,GAAGE,OAAS,GAAK,IAEDC,SAAS,aASjDZ,OAAOa,OAASrB,IAChBQ,OAAOc,iBAAiB,SAAUtB,GAElCrC,EAAE,eAAeQ,KAAK,WACrBR,EAAEE,MAAM0D,KACP5D,EAAEE,MACA0D,OACAC,QAAQ,WAAY","file":"OpenContent\\Templates\\Memorial-Tiles\\js\\main.min.js","sourcesContent":["/*global jQuery */\r\njQuery(document).ready(($) => {\r\n\t'use strict';\r\n\r\n\t// Masonry Grid JS\r\n\tfunction resizeGridItem(item) {\r\n\t\tconst grid = document.getElementsByClassName(\r\n\t\t\t'glossary-card--listing'\r\n\t\t)[0];\r\n\t\tconst rowHeight = parseInt(\r\n\t\t\twindow.getComputedStyle(grid).getPropertyValue('grid-auto-rows'),\r\n\t\t\t10\r\n\t\t);\r\n\t\tconst rowGap = parseInt(\r\n\t\t\twindow.getComputedStyle(grid).getPropertyValue('grid-row-gap'),\r\n\t\t\t10\r\n\t\t);\r\n\t\tconst rowSpan = Math.ceil(\r\n\t\t\t(item\r\n\t\t\t\t.querySelector(\r\n\t\t\t\t\t'.glossary-card--item:not(.inactive) .card__content'\r\n\t\t\t\t)\r\n\t\t\t\t.getBoundingClientRect().height +\r\n\t\t\t\trowGap) /\r\n\t\t\t\t(rowHeight + rowGap)\r\n\t\t);\r\n\t\titem.style.gridRowEnd = `span ${rowSpan + 1}`;\r\n\t}\r\n\r\n\t// Filter Glossary items\r\n\tfunction initGlossaryFilter() {\r\n\t\t// Filter using navigation\r\n\t\t$('.glossary__nav a').click(function handleGlossaryClick() {\r\n\t\t\tconst nav = $(this).attr('data-nav');\r\n\r\n\t\t\t// Remove & Add active class\r\n\t\t\t$('.glossary__nav__item').removeClass('active');\r\n\t\t\t$(this).parent().toggleClass('active');\r\n\r\n\t\t\t// Hide all the results\r\n\t\t\t$('.glossary-card--item').addClass('inactive');\r\n\r\n\t\t\t// Loop through the row\r\n\t\t\t$('.glossary-card--item').each(function removeInactiveClass() {\r\n\t\t\t\tconst term = $(this).attr('data-term');\r\n\t\t\t\tif (nav === term) {\r\n\t\t\t\t\t$(this).removeClass('inactive');\r\n\t\t\t\t}\r\n\t\t\t\tif (nav === '*') {\r\n\t\t\t\t\t$('.glossary__nav__item').addClass('active');\r\n\t\t\t\t\t$('.glossary-card--item').addClass('active');\r\n\t\t\t\t\t$('.glossary__nav__item').removeClass('inactive');\r\n\t\t\t\t\t$('.glossary-card--item').removeClass('inactive');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Only return false if data-toggle is glossary\r\n\t\t\tif ($(this).attr('data-toggle') === 'glossary') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t});\r\n\t}\r\n\r\n\t// Filter Results from Buttons vvv\r\n\t$(() => {\r\n\t\tinitGlossaryFilter();\r\n\t});\r\n\r\n\tfunction firstLetterSelection(item) {\r\n\t\tconst letter = item.attributes['data-item'].value.charAt();\r\n\t\t$(item).attr('data-term', letter);\r\n\t}\r\n\r\n\t// Add data-term hook for filtering\r\n\tconst gArray = document.getElementsByClassName('glossary-card--item');\r\n\tconst glossary = Array.from(gArray);\r\n\tglossary.forEach(firstLetterSelection);\r\n\r\n\t// Generate Floating Alphabet vvv\r\n\tconst terms = $('div.glossary-card--item h3.card__title').sort();\r\n\r\n\tconst letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n\tfor (let i = 0; i < letters.length; i++) {\r\n\t\tconst nextChar = letters.charAt(i);\r\n\r\n\t\t// Need to find first of each letter\r\n\t\tconst notFound = -999;\r\n\t\tlet foundOne = notFound;\r\n\t\tfor (let j = 0; j < terms.length; j++) {\r\n\t\t\tconst termj = terms[j].innerText;\r\n\t\t\tconst termJJ = termj.toUpperCase();\r\n\t\t\tif (termJJ.charAt(0) === nextChar) {\r\n\t\t\t\tfoundOne = j;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Create links and anchors based on whether something was found\r\n\t\tlet newLetterLink;\r\n\t\tif (foundOne === notFound) {\r\n\t\t\t// Create a new letterLink (with class \"entriesAbsent\")\r\n\t\t\tnewLetterLink = `${nextChar}`;\r\n\t\t} else {\r\n\t\t\t// Create a new letterLink (with class \"entriesPresent\")\r\n\t\t\tnewLetterLink = `${nextChar}`;\r\n\r\n\t\t\t// Create an anchor for the letterLink BEFORE the first glossary term starting with that letter\r\n\t\t\t$(``).insertBefore(\r\n\t\t\t\tterms[foundOne]\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Either way, add the letterLink to the list of letterLinks\r\n\t\t$('div#quicklinks').append(newLetterLink);\r\n\t}\r\n\t// Sort Alphabetically Asc.\r\n\tfunction ascSort(a, b) {\r\n\t\treturn $(b).text() < $(a).text() ? 1 : -1;\r\n\t}\r\n\t$('.glossary-card--item').sort(ascSort).appendTo('#glossary');\r\n\r\n\tfunction resizeAllGridItems() {\r\n\t\tconst allItems = document.getElementsByClassName('glossary-card--item');\r\n\t\tlet x = Array.from(allItems);\r\n\t\tfor (x = 0; x < allItems.length; x++) {\r\n\t\t\tresizeGridItem(allItems[x]);\r\n\t\t}\r\n\t}\r\n\twindow.onload = resizeAllGridItems();\r\n\twindow.addEventListener('resize', resizeAllGridItems);\r\n\r\n\t$('.definition').each(function removeNonBreakingSpaces() {\r\n\t\t$(this).html(\r\n\t\t\t$(this)\r\n\t\t\t\t.html()\r\n\t\t\t\t.replace(/ /gi, ' ')\r\n\t\t);\r\n\t});\r\n});\r\n"]}