{
  "version": 3,
  "sources": ["../../assets/js/components/collapse-menu.js", "../../assets/js/components/external-links.js", "../../assets/js/components/gallery-dialog.js", "../../assets/js/components/general-functions.js", "../../assets/js/components/svg-sprite.js", "../../assets/js/jp.js"],
  "sourcesContent": ["export function collapseMenu() {\n  // collapse menu on click\n  const navLinks = document.querySelectorAll('.nav-link')\n  const menuToggle = document.getElementById('offcanvasMenu')\n  const bsOffcanvas = new bootstrap.Offcanvas(menuToggle)\n  navLinks.forEach((l) => {\n    l.addEventListener('click', () => { bsOffcanvas.hide() })\n  })\n}\n", "export function externalLinks() {\n  const container = document.querySelector('#content')\n  var anchors = container.querySelectorAll('a');\n  var i;\n  for (i = 0; i < anchors.length; i++) {\n    if (anchors[i].hostname !== window.location.hostname) {\n      anchors[i].setAttribute('target', '_blank');\n      anchors[i].setAttribute('rel', 'noreferrer');\n    }\n  }\n}\n", "// Lightbox for image galleries.\n// Every `.gallery` section is paired with the `.gallery-dialog` that follows it,\n// so a page may carry several independent galleries.\n\n// Walk back from the dialog to the gallery it belongs to.\nfunction galleryFor(dialog) {\n  let el = dialog.previousElementSibling\n  while (el && !el.classList.contains('gallery')) {\n    el = el.previousElementSibling\n  }\n  return el\n}\n\nfunction setupDialog(dialog) {\n  const section = galleryFor(dialog)\n  if (!section) return\n\n  const links = Array.from(section.querySelectorAll('a'))\n  if (!links.length) return\n\n  const closeBtn = dialog.querySelector('.gallery-dialog__close')\n  const prevBtn = dialog.querySelector('.gallery-dialog__nav--prev')\n  const nextBtn = dialog.querySelector('.gallery-dialog__nav--next')\n  const imageContainer = dialog.querySelector('.gallery-dialog__image-container')\n  const captionEl = dialog.querySelector('.gallery-dialog__caption')\n  if (!closeBtn || !prevBtn || !nextBtn || !imageContainer || !captionEl) return\n\n  const image = document.createElement('img')\n  image.className = 'gallery-dialog__image'\n  imageContainer.append(image)\n\n  let currentIndex = 0\n\n  function show(index) {\n    currentIndex = index\n    const link = links[index]\n\n    image.src = link.getAttribute('href')\n    image.alt = link.getAttribute('aria-label') || ''\n    captionEl.textContent = link.dataset.caption || ''\n\n    prevBtn.hidden = index === 0\n    nextBtn.hidden = index === links.length - 1\n  }\n\n  function step(offset) {\n    const index = currentIndex + offset\n    if (index >= 0 && index < links.length) show(index)\n  }\n\n  links.forEach((link, index) => {\n    link.addEventListener('click', (event) => {\n      event.preventDefault()\n      show(index)\n      dialog.showModal()\n    })\n  })\n\n  closeBtn.addEventListener('click', () => dialog.close())\n  prevBtn.addEventListener('click', () => step(-1))\n  nextBtn.addEventListener('click', () => step(1))\n\n  // Clicks that land on the dialog itself are backdrop clicks.\n  dialog.addEventListener('click', (event) => {\n    if (event.target === dialog) dialog.close()\n  })\n\n  // Escape is handled natively by <dialog>.\n  dialog.addEventListener('keydown', (event) => {\n    if (event.key === 'ArrowLeft') step(-1)\n    if (event.key === 'ArrowRight') step(1)\n  })\n}\n\nexport function galleryDialog() {\n  const dialogs = document.querySelectorAll('.gallery-dialog')\n  if (!dialogs.length) return\n\n  dialogs.forEach(setupDialog)\n}\n", "export function generalFunctions() {\n  document.documentElement.classList.remove('no-js');\n  document.documentElement.classList.add('js');\n}\n", "// serve svg sprite\nexport function svgSprite() {\n  const xhr = new XMLHttpRequest();\n  xhr.open('get', '/static/img/icons-sprite.svg', true);\n  xhr.onreadystatechange = () => {\n    if (xhr.readyState !== 4) return;\n    let svg = xhr.responseXML.documentElement;\n    svg = document.importNode(svg, true);\n    document.body.appendChild(svg);\n  };\n  xhr.send();\n}\n", "import { collapseMenu } from \"./components/collapse-menu\";\nimport { externalLinks } from \"./components/external-links\";\nimport { galleryDialog } from \"./components/gallery-dialog\";\nimport { generalFunctions } from \"./components/general-functions\";\nimport { svgSprite } from './components/svg-sprite';\n\ngeneralFunctions();\nsvgSprite();\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  /* eslint-disable no-new, no-restricted-syntax */\n  collapseMenu();\n  externalLinks();\n  galleryDialog();\n});\n"],
  "mappings": "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",
  "names": ["collapseMenu", "navLinks", "menuToggle", "bsOffcanvas", "l", "externalLinks", "anchors", "i", "galleryFor", "dialog", "el", "setupDialog", "section", "links", "closeBtn", "prevBtn", "nextBtn", "imageContainer", "captionEl", "image", "currentIndex", "show", "index", "link", "step", "offset", "event", "galleryDialog", "dialogs", "generalFunctions", "svgSprite", "xhr", "svg", "generalFunctions", "svgSprite", "collapseMenu", "externalLinks", "galleryDialog"]
}
