{"version":3,"file":"daux.min.js.map","sources":["../../../src/js/theme_daux/utils.js","../../../src/js/theme_daux/code_toggle.js","../../../src/js/theme_daux/menu.js","../../../src/js/theme_daux/hamburger.js","../../../src/js/theme_daux/highlight.js","../../../src/js/theme_daux/dark_mode.js"],"sourcesContent":["/* eslint-disable @swissquote/swissquote/import/prefer-default-export */\n\nexport function ready(fn) {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", fn);\n } else {\n fn();\n }\n}\n\nexport function loadJS(url, callback) {\n const head = document.getElementsByTagName(\"head\")[0],\n script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.async = true;\n script.src = url;\n script.onload = callback;\n head.appendChild(script);\n}\n\nexport function loadCSS(url) {\n const head = document.getElementsByTagName(\"head\")[0],\n link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = url;\n head.appendChild(link);\n}\n","import { ready } from \"./utils\";\n\nconst LOCAL_STORAGE_KEY = \"daux_code_blocks_hidden\";\n\nfunction setCodeBlockStyle(codeBlocks, hidden) {\n for (let a = 0; a < codeBlocks.length; a++) {\n codeBlocks[a].classList.toggle(\"CodeToggler--hidden\", hidden);\n }\n try {\n localStorage.setItem(LOCAL_STORAGE_KEY, hidden);\n } catch (e) {\n // local storage operations can fail with the file:// protocol\n }\n}\n\nfunction enableToggler(toggleCodeSection, codeBlocks) {\n const toggleCodeBlockBtnSet = toggleCodeSection.querySelector(\n \".CodeToggler__button--main\"\n ); // available when floating is disabled\n\n toggleCodeBlockBtnSet.addEventListener(\n \"change\",\n ev => {\n setCodeBlockStyle(codeBlocks, !ev.target.checked);\n },\n false\n );\n\n let hidden = false;\n try {\n hidden = localStorage.getItem(LOCAL_STORAGE_KEY);\n\n if (hidden === \"false\") {\n hidden = false;\n } else if (hidden === \"true\") {\n hidden = true;\n }\n\n if (hidden) {\n setCodeBlockStyle(codeBlocks, true);\n toggleCodeBlockBtnSet.checked = false;\n }\n } catch (e) {\n // local storage operations can fail with the file:// protocol\n }\n}\n\nready(() => {\n const codeBlocks = document.querySelectorAll(\".s-content pre\");\n const toggleCodeSection = document.querySelector(\".CodeToggler\");\n\n if (!toggleCodeSection) {\n return;\n }\n\n if (codeBlocks.length) {\n enableToggler(toggleCodeSection, codeBlocks);\n } else {\n toggleCodeSection.classList.add(\"CodeToggler--hidden\");\n }\n});\n","import { ready } from \"./utils\";\n\n/**\n * After the transition finishes set the height to auto so child\n * menus can expand properly.\n * @param {Element} item\n */\nfunction resetHeightAfterAnimation(item) {\n const setHeightToAuto = ev => {\n if (ev.target.style.height !== \"0px\") {\n ev.target.style.height = \"auto\";\n }\n\n ev.target.removeEventListener(\"transitionend\", setHeightToAuto);\n };\n\n item.addEventListener(\"transitionend\", setHeightToAuto);\n}\n\nfunction findNavItem(start) {\n let elem = start;\n while ((elem = elem.parentNode) && elem.nodeType !== 9) {\n if (elem.nodeType === 1 && elem.classList.contains(\"Nav__item\")) {\n return elem;\n }\n }\n\n throw new Error(\"Could not find a NavItem...\");\n}\n\nfunction toggleSubMenu(ev) {\n const isEvent = ev.preventDefault !== undefined;\n\n if (isEvent) {\n ev.preventDefault();\n }\n\n const parent = findNavItem(ev.target);\n const subNav = parent.querySelector(\"ul.Nav\");\n\n if (isEvent && parent.classList.contains(\"Nav__item--open\")) {\n // Temporarily set the height so the transition can work.\n subNav.style.height = `${subNav.scrollHeight}px`;\n subNav.style.transitionDuration = \"150ms\";\n subNav.style.height = \"0px\";\n parent.classList.remove(\"Nav__item--open\");\n } else {\n if (isEvent) {\n subNav.style.transitionDuration = \"150ms\";\n resetHeightAfterAnimation(subNav);\n subNav.style.height = `${subNav.scrollHeight}px`;\n parent.classList.add(\"Nav__item--open\");\n } else {\n // When running at page load the transitions don't need to fire and\n // the classList doesn't need to be altered.\n subNav.style.height = \"auto\";\n }\n }\n}\n\nready(() => {\n const navItems = document.querySelectorAll(\n \".Nav__item.has-children i.Nav__arrow\"\n );\n\n // Go in reverse here because on page load the child nav items need to be\n // opened first before their parents so the height on the parents can be\n // calculated properly.\n for (let i = navItems.length - 1, target; i >= 0; i--) {\n target = navItems[i];\n target.addEventListener(\"click\", toggleSubMenu);\n\n if (\n target.parentNode.parentNode.classList.contains(\"Nav__item--open\")\n ) {\n toggleSubMenu({ target });\n }\n }\n\n // Some navigations just have sub-pages without having a page by themselves\n const ajNav = document.querySelectorAll(\".Nav__item__link--nopage\");\n for (const navItem of ajNav) {\n navItem.addEventListener(\"click\", toggleSubMenu);\n }\n});\n","import { ready } from \"./utils\";\n\nready(() => {\n const trigger = document.querySelector(\".Collapsible__trigger\");\n\n if (trigger) {\n const content = document.querySelector(\".Collapsible__content\");\n\n trigger.addEventListener(\"click\", ev => {\n if (content.classList.contains(\"Collapsible__content--open\")) {\n content.style.height = 0;\n content.classList.remove(\"Collapsible__content--open\");\n trigger.setAttribute(\"aria-expanded\", \"false\");\n } else {\n trigger.setAttribute(\"aria-expanded\", \"true\");\n content.style.transitionDuration = \"150ms\";\n content.style.height = `${content.scrollHeight}px`;\n content.classList.add(\"Collapsible__content--open\");\n }\n });\n }\n});\n","import { ready, loadJS, loadCSS } from \"./utils\";\n\nready(() => {\n const codeBlocks = document.querySelectorAll(\n \"pre > code:not(.hljs, .katex)\"\n );\n if (codeBlocks.length) {\n loadJS(`${window.base_url}daux_libraries/highlight.pack.js`, () => {\n [].forEach.call(codeBlocks, window.hljs.highlightBlock);\n });\n }\n});\n\nready(() => {\n const codeBlocks = document.querySelectorAll(\"pre > code.katex\");\n if (codeBlocks.length) {\n loadCSS(`${window.base_url}daux_libraries/katex.min.css`);\n\n loadJS(`${window.base_url}daux_libraries/katex.min.js`, () => {\n [].forEach.call(codeBlocks, (/** @type {HTMLElement} */ e) => {\n const content = e.innerHTML;\n const p = document.createElement(\"p\");\n const span = document.createElement(\"span\");\n p.className = \"katex-display\";\n p.appendChild(span);\n\n const pre = e.parentElement;\n pre.parentElement.insertBefore(p, pre);\n pre.parentElement.removeChild(pre);\n\n window.katex.render(content, span, {\n throwOnError: false\n });\n });\n });\n }\n});\n\nready(() => {\n const mermaidBlocks = document.querySelectorAll(\"div.mermaid\");\n if (mermaidBlocks.length) {\n loadJS(`${window.base_url}daux_libraries/mermaid.min.js`, () => {\n window.mermaid.initialize({ startOnLoad: true });\n });\n }\n});\n","const COLOR_MODE_KEY = \"daux-color-mode\";\nconst VALUE_DARK = \"dark\";\nconst VALUE_LIGHT = \"light\";\nconst CLASS_DARK = \"dark\";\nconst BUTTON = \".ColorMode__button\";\n\nfunction getInitialColorMode() {\n const persistedColorPreference = window.localStorage.getItem(\n COLOR_MODE_KEY\n );\n const hasPersistedPreference = typeof persistedColorPreference === \"string\";\n\n // If the user has explicitly chosen light or dark,\n // let's use it. Otherwise, this value will be null.\n if (hasPersistedPreference) {\n return persistedColorPreference;\n }\n\n // If they haven't been explicit, let's check the media\n // query\n const mql = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const hasMediaQueryPreference = typeof mql.matches === \"boolean\";\n if (hasMediaQueryPreference) {\n return mql.matches ? VALUE_DARK : VALUE_LIGHT;\n }\n\n // If they are using a browser/OS that doesn't support\n // color themes, let's default to 'light'.\n return VALUE_LIGHT;\n}\n\nconst colorMode = getInitialColorMode();\n\n// Set the current theme\ndocument.body.classList.toggle(CLASS_DARK, colorMode === VALUE_DARK);\n\nconst toggleCodeBlockBtnSet = document.body.querySelector(BUTTON);\n\nif (toggleCodeBlockBtnSet) {\n // Reflect the current theme on the checkbox\n toggleCodeBlockBtnSet.checked = colorMode === VALUE_DARK;\n\n toggleCodeBlockBtnSet.addEventListener(\n \"change\",\n ev => {\n const checked = ev.target.checked;\n\n document.body.classList.toggle(CLASS_DARK, checked);\n\n window.localStorage.setItem(\n COLOR_MODE_KEY,\n checked ? VALUE_DARK : VALUE_LIGHT\n );\n },\n false\n );\n}\n"],"names":["ready","fn","document","readyState","addEventListener","loadJS","url","callback","head","getElementsByTagName","script","createElement","type","async","src","onload","appendChild","loadCSS","link","rel","href","LOCAL_STORAGE_KEY","setCodeBlockStyle","codeBlocks","hidden","a","length","classList","toggle","localStorage","setItem","e","enableToggler","toggleCodeSection","toggleCodeBlockBtnSet","querySelector","ev","target","checked","getItem","resetHeightAfterAnimation","item","setHeightToAuto","style","height","removeEventListener","findNavItem","start","elem","parentNode","nodeType","contains","Error","toggleSubMenu","isEvent","undefined","preventDefault","parent","subNav","scrollHeight","transitionDuration","remove","add","querySelectorAll","trigger","content","setAttribute","window","base_url","forEach","call","hljs","highlightBlock","innerHTML","p","span","className","pre","parentElement","insertBefore","removeChild","katex","render","throwOnError","mermaidBlocks","mermaid","initialize","startOnLoad","navItems","i","ajNav","navItem","COLOR_MODE_KEY","VALUE_DARK","VALUE_LIGHT","CLASS_DARK","BUTTON","getInitialColorMode","persistedColorPreference","hasPersistedPreference","mql","matchMedia","hasMediaQueryPreference","matches","colorMode","body"],"mappings":"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"}