{"version":3,"sources":["ui.js"],"names":["document","addEventListener","querySelectorAll","forEach","link","e","preventDefault","gallery","buttons","activators","Array","from","concat","images","_loop","i","length","observer","window","PhotoSwipeInterop","attemptReload","_ref","_asyncToGenerator","regeneratorRuntime","mark","_callee","wrap","_context","prev","next","fetch","sent","location","reload","stop","this","apply","arguments","disconnect","setInterval","MutationObserver","observe","body","childList","subtree","galleries","src","w","ref","classList","remove","h","itemId","items","figures","querySelector","item","href","parseInt","dataset","width","height","pid","uid","caption","title","innerHTML","push","pswpElement","PhotoSwipe","PhotoSwipeUI_Default","galleryUID","id","galleryPIDs","init","goTo","dotNet","stats","zxcvbn","value","invokeMethodAsync","score","feedback","warning","suggestions"],"mappings":"wTAWEA,SAAAC,iBAAA,mBAAA,WACAD,SAAAE,iBAAA,6BAAAC,QAAA,SAAAC,GAAA,OAAAA,EAAAH,iBAAA,QAAA,SAAAI,GACAA,EAAAC,qBAGIN,SAAAA,iBAASE,mBAAiBC,QAAA,SAAAI,GAA1B,IAA+D,IAAAC,EAAaP,EAAAA,iBAAL,UACnEI,EAAEC,EAAAA,iBAAF,kBAD2DG,EAAAC,MAAAC,KAAAH,GAAAI,OAAAF,MAAAC,KAAAE,IAA/DC,EAAA,SAAAC,GAIAf,EAASE,GAAAA,iBAAiB,QAAmBC,SAAQE,GAC7CG,EAAAA,iBACAK,OAASN,kBAAQL,KAAAA,EAAiBa,MAN1CA,EAAA,EAAAA,EAAAN,EAAAO,OAAAD,IASID,EATJC,KAWYV,IAAAA,iBAAEC,SAAAA,EAAFW,GACAC,GAAAA,SAAAA,cAAOC,oCAAP,CAAA,IARoDC,GAQpDC,EAAAC,kBAAAC,mBAAAC,KARoD,SAAAC,IAAA,OAAAF,mBAAAG,KAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EAiBnCC,MAAM,IAjB6B,KAAA,EAIvD,MAJuDH,EAAAI,KAIxCtB,QACpBuB,SAAAC,SAL4D,KAAA,EAAA,IAAA,MAAA,OAAAN,EAAAO,SAAAT,EAAAU,SAQpD,WAAA,OAAAd,EAAAe,MAAAD,KAAAE,aARZpB,EAAAqB,aAsBIlB,IATJmB,YAAIC,EAAiB,KALT,IAAAnB,IAORoB,QAAAzC,SAAA0C,KAAA,CAAAC,WAAA,EAAAC,SAAA,MAuDV1B,OAAAC,kBAAA,WACA,IAAA0B,EAAA,GA8CgBC,MAAAA,CACAC,KA7ChB,SAAAC,GACAA,EAAAC,UAAAC,OAAA,mBA6CgBC,KA1ChB,SAAAH,EAAAI,GAIA,IAHA,IAAAC,EAAA,GACAC,EAAAN,EAAA9C,iBAAA,UAEAa,EAAA,EAAAA,EAAAuC,EAAAtC,OAAAD,IAAA,CACA,IAAAX,EAAAkD,EAAAvC,GAAAwC,cAAA,KACAC,EAAA,CACAV,IAAA1C,EAAAqD,KACAV,EAAAW,SAAAtD,EAAAuD,QAAAC,MAAA,IACAT,EAAAO,SAAAtD,EAAAuD,QAAAE,OAAA,IACAC,IAAA1D,EAAAuD,QAAAI,KAEAC,EAAAV,EAAAvC,GAAAwC,cAAA,cAkCgBS,IAhChBR,EAAAS,MAAAD,EAAAE,WAGAb,EAAAc,KAAAX,GAoCQ,IAAIY,EAAcpE,SAASuD,cAAc,SAhCjDhD,EAAA,IAAA8D,WAAAD,EAAAE,qBAAAjB,EAAA,CACAkB,WAAAvB,EAAAwB,GACAC,aAAA,IAmCQlE,EAAQmE,OAhCTvD,IAAAA,IAAAA,EAAAA,EAAPJ,EAA4BR,EAAA8C,MAAMrC,OAAAD,IACxB8B,GAAAA,EAANQ,MAAAtC,GAAA+C,KAAAV,EAAA,CAkCY7C,EAAQoE,KAAK5D,GAhChB2D,MAoCL7B,EAAUG,EAAIwB,IAAMjE,GAtBZuD,QARR,SAAIR,GAkCAT,EAAUG,EAAIwB,KAhClB3B,EAAAG,EAAgBjC,IAAIuC,YA5C5B,GAsDgBE,OAAAA,cASJiB,CAFmEC,KA4BjE,SAAU1B,EAAK4B,GAhCjBvB,EAAAA,iBAAWG,QAAX,WACH,IAAAqB,EAAAC,OAAA9B,EAAA+B,OAkCHH,EAAOI,kBAAkB,eAAgBH,EAAMI,MAAOJ,EAAMK,SAAWL,EAAMK,SAASC,QAAU,KAAMN,EAAMK,SAAWL,EAAMK,SAASE,YAAc","file":"ui.min.js","sourcesContent":["(() => {\r\n 'use strict';\r\n\r\n //if ('serviceWorker' in navigator) {\r\n // window.addEventListener('load', function () {\r\n // navigator.serviceWorker.register('/sw.js').then(function (registration) {\r\n // // Registration was successful\r\n // console.log('ServiceWorker registration successful with scope: ', registration.scope);\r\n // }, function (err) {\r\n // // registration failed :(\r\n // console.log('ServiceWorker registration failed: ', err);\r\n // });\r\n // });\r\n //}\r\n\r\n document.addEventListener('DOMContentLoaded', function () {\r\n document.querySelectorAll('.nav-link.dropdown-toggle').forEach(link => link.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n }));\r\n\r\n document.querySelectorAll('.gallery-static').forEach(gallery => {\r\n let buttons = gallery.querySelectorAll('button');\r\n let images = gallery.querySelectorAll('.gallery-image');\r\n let activators = Array.from(buttons).concat(Array.from(images));\r\n for (let i = 0; i < activators.length; i++)\r\n {\r\n activators[i].addEventListener('click', function (e) {\r\n e.preventDefault();\r\n window.PhotoSwipeInterop.open(gallery, i);\r\n });\r\n }\r\n });\r\n\r\n new MutationObserver((mutations, observer) => {\r\n if (document.querySelector('#components-reconnect-modal h5 a')) {\r\n // Now every 10 seconds, see if the server appears to be back, and if so, reload\r\n async function attemptReload() {\r\n let response = await fetch(''); // Check the server really is back\r\n if (200 === response.status)\r\n location.reload();\r\n }\r\n observer.disconnect();\r\n attemptReload();\r\n setInterval(attemptReload, 10000);\r\n }\r\n }).observe(document.body, { childList: true, subtree: true });\r\n });\r\n})();\r\n\r\n//window.LazyLoadInterop = (() => {\r\n// const observer = new IntersectionObserver(lazyLoad, {\r\n// threshold: 1.0\r\n// });\r\n\r\n// function isVisible(ref) {\r\n// const bounding = ref.getBoundingClientRect();\r\n// return (0 < bounding.top && bounding.top < (window.innerHeight || document.documentElement.clientHeight)) ||\r\n// (0 < bounding.bottom && bounding.bottom < (window.innerHeight || document.documentElement.clientHeight));\r\n// }\r\n\r\n// // Stop observing this image and load its source\r\n// function lazyLoad(elements) {\r\n// for (let i = 0; i < elements.length; i++) {\r\n// let item = elements[i];\r\n\r\n// if (item.intersectionRatio > 0) {\r\n// observer.unobserve(item.target);\r\n// loadImage(item.target);\r\n// };\r\n// }\r\n// };\r\n\r\n// // Update the image source on elements in the picture element\r\n// function loadImage(img) {\r\n// const picture = img.closest('picture');\r\n// const sources = picture ? picture.children : [img];\r\n// for (let i = 0; i < sources.length; i++) {\r\n// let source = sources[i];\r\n\r\n// // update the src or srcset urls\r\n// if (source.dataset.srcset)\r\n// source.srcset = source.dataset.srcset;\r\n\r\n// if (source.dataset.src)\r\n// source.src = source.dataset.src;\r\n\r\n// // remove the lazy-initial class when the full image is loaded to unblur\r\n// source.addEventListener('load', image => {\r\n// image.target.classList.remove('lazy');\r\n// }, false);\r\n// }\r\n// }\r\n\r\n// function startObserving(ref) {\r\n// // If the browser supports lazy loading, we can safely assign the src\r\n// // attributes without instantly triggering an eager image load.\r\n// //if (\"loading\" in HTMLImageElement.prototype || isVisible(ref)) {\r\n// if (isVisible(ref)) {\r\n// const picture = ref.closest('picture');\r\n// const sources = picture ? picture.children : [ref];\r\n// for (let i = 0; i < sources.length; i++) {\r\n// sources[i].style.transition = 'none';\r\n// }\r\n// ref.classList.remove('lazy');\r\n// loadImage(ref);\r\n// }\r\n// else {\r\n// observer.observe(ref);\r\n// }\r\n// }\r\n\r\n// document.addEventListener(\"DOMContentLoaded\", () => {\r\n// const images = document.querySelectorAll('img.lazy');\r\n// for (let i = 0; i < images.length; i++) {\r\n// startObserving(images[i]);\r\n// }\r\n// });\r\n\r\n// return {\r\n// observe: startObserving\r\n// }\r\n//})();\r\n\r\nwindow.PhotoSwipeInterop = (() => {\r\n const galleries = {};\r\n\r\n function init(ref) {\r\n ref.classList.remove('gallery-static');\r\n }\r\n\r\n function open(ref, itemId) {\r\n let items = [];\r\n let figures = ref.querySelectorAll('figure');\r\n\r\n for (let i = 0; i < figures.length; i++) {\r\n let link = figures[i].querySelector('a');\r\n let item = {\r\n src: link.href,\r\n w: parseInt(link.dataset.width, 10),\r\n h: parseInt(link.dataset.height, 10),\r\n pid: link.dataset.uid\r\n };\r\n let caption = figures[i].querySelector('figcaption');\r\n if (caption) {\r\n item.title = caption.innerHTML;\r\n }\r\n\r\n items.push(item);\r\n }\r\n\r\n let pswpElement = document.querySelector('.pswp');\r\n let gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, {\r\n galleryUID: ref.id,\r\n galleryPIDs: true\r\n });\r\n gallery.init();\r\n for (let i = 0; i < gallery.items.length; i++) {\r\n if (gallery.items[i].pid == itemId) {\r\n gallery.goTo(i);\r\n break;\r\n }\r\n }\r\n galleries[ref.id] = gallery;\r\n }\r\n\r\n function destroy(ref) {\r\n if (galleries[ref.id])\r\n galleries[ref.id].destroy();\r\n }\r\n\r\n return {\r\n init: init,\r\n open: open,\r\n destroy: destroy\r\n }\r\n})();\r\n\r\nwindow.ZxcvbnInterop = (() => {\r\n 'use strict';\r\n let _init = function (ref, dotNet) {\r\n ref.addEventListener(\"input\", () => {\r\n let stats = zxcvbn(ref.value);\r\n dotNet.invokeMethodAsync(\"ScoreChanged\", stats.score, stats.feedback ? stats.feedback.warning : null, stats.feedback ? stats.feedback.suggestions : []);\r\n });\r\n };\r\n\r\n return {\r\n init: _init\r\n };\r\n})();"]}