mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	commit 6f38009a31b2ff5d6f53de7b74469f495fe04092
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 15:36:03 2023 -0700
    remove default sphinx footer
commit 0d842749566f40fa8c2dd434fa67bcc5e9df3aa0
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 15:21:26 2023 -0700
    linting
commit c8484ac7c1f54067b0d3c4aa4aa81de7d36df71d
Merge: 8339800d0 b583e9e64
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 14:15:03 2023 -0700
    Merge branch 'develop' into docs-rebrand
commit 8339800d0fdd197f589337e1198867d4198a3850
Merge: 633c673c5 88d5e06d4
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 14:11:58 2023 -0700
    Merge branch 'rebrand' into docs-rebrand
commit 88d5e06d4ce79696b9451991b33834ecc55bf66d
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 14:11:52 2023 -0700
    remove dev code
commit 633c673c5e227009917d888e1f0991f33aa75f44
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 14:02:25 2023 -0700
    update home url poitner to production domain
commit b3689cb7c230e1fb3a97400e5412ec14c34fc586
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 13:59:34 2023 -0700
    fix external link arrow to match core site
commit b7a28a5dfe7517a88870afe67783e9e300b85af4
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 13:59:19 2023 -0700
    swap in cdnfonts for overpass fonts
commit e979ad5c9f69c9c7ee369a0700a64ea6d9061c2b
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 10 08:30:48 2023 -0700
    fix external link arrow spacing/underline
commit b90077863cfff5d8776f5dc74f82f061e0162d37
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jul 6 16:26:28 2023 -0700
    update foot note
commit ed9ddfd327cd0e382286abf0c8896c7c879512b2
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jul 6 13:12:14 2023 -0700
    update nav link hover color
commit 077d3a0c9333c96cbabc3ce2bccf00afac19a312
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Tue Jul 4 20:27:05 2023 -0700
    bug fixed for header/nav-link styling
commit 2584dd2e419255ec93430446bd049ff90155987e
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Tue Jul 4 12:15:09 2023 -0700
    fix link shift bug
commit 885d2bc52ca3ed9e4727d7f0eaed0e312fedaaaa
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Tue Jul 4 12:13:03 2023 -0700
    update nav link hover styling
commit d06c81592ad88ad2e81701cec9e85b6a3cee86ee
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 3 18:25:37 2023 -0700
    extract event listener functions
commit 414e444ee67fe937d1295b14ac8591a710bfbdff
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jul 3 18:22:08 2023 -0700
    a11y: skip to content link
commit 6c628ea73995dad9b9a6fb502bb216d88f0e9602
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 21:57:24 2023 -0700
    fine-tuning more styling
commit 71b617abaf27c34fcecaf6e30795687abf9885f7
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 21:37:02 2023 -0700
    fix primary link color
commit d90627418c605bff4398a9e24ae0c5c685f73992
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 21:21:30 2023 -0700
    fix mobile versions expansion
commit f0f0fbbcb74ea35efa6e4cf87ab1d855f1ae2bd2
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 21:21:16 2023 -0700
    update code styling
commit 727c7ee9b69427eddd73012a89e6ee9ae1ccec8d
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 21:20:38 2023 -0700
    remix link styling
commit 4059c00e3d704002ef34f85fd86495f2a4ac9e57
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 21:19:49 2023 -0700
    fix whitespace styling
commit 631e2910a53484b97770cad1b3439d412a0ab6d0
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 20:33:54 2023 -0700
    fix search input styling
commit 5e06b22a7200b0774bd135c666b4e3437d342350
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 19:37:19 2023 -0700
    css adjustments
commit 637d5122038fd6075cd53d57537d728b730acbcf
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 19:15:05 2023 -0700
    selector adjustments, linting
commit 781dc7c3009dc406b36cd2bdcb2d02c3c34fafa6
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 18:26:09 2023 -0700
    top version/search layout adjustments
commit 7341e17003700133659e5f64ee2d1369ac50e434
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jul 2 18:18:21 2023 -0700
    update version div styling
commit 3a4b3feb581b1799e48d395b73aca05760dc5658
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sat Jul 1 21:18:12 2023 -0700
    restyle external link arrow for forum link
commit e6cef6312ca73c125c01b78573f21c75fcbbfc87
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sat Jul 1 20:50:31 2023 -0700
    add woff2 fonts, use absolute font urls
commit 3bc401b1dbe971501826011a692c38ee9ce4b992
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sat Jul 1 15:15:26 2023 -0700
    fix nav button alignment
commit b7d607b7090e1ac6ded55ac6e534549609226236
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 30 19:02:24 2023 -0700
    rename pcm param to color
commit d67e23539f720250bb298c11fd2b1b6d7dbb0815
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 30 17:34:56 2023 -0700
    center align footer buttons, fix bug on pre text
commit 34a665038dc27e2b8874b3e16ffc581c33f31bc5
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 29 16:40:26 2023 -0700
    preload fonts
commit 5b987c31455ffe02135e357ea560bbad8a9c6745
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 29 15:31:41 2023 -0700
    antialiased font smoothing
commit 9585fb5bb73f67e37a4f9f1da83e7b133f0b4446
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 29 13:44:51 2023 -0700
    search results styling
commit 224ed028b181b3944d2f2e33f4122b15f38f7608
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 29 13:29:09 2023 -0700
    restore search functionality
commit ec5782a01cd0f1c1808b353560c39911c9fdc645
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Wed Jun 28 21:55:11 2023 -0700
    more mobile menu and styling fixes
commit c033f05e2ab839309e7d3864ae66c465d801e806
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Wed Jun 28 13:14:22 2023 -0700
    patch location cleaner
commit 6cae3b5ad67e38f6decfa18eeacce973783a2fc1
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Tue Jun 27 17:49:28 2023 -0700
    patch location cleaner
commit e86e6a11189ed57f122382c901fe7a0f49518e83
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Tue Jun 27 17:40:11 2023 -0700
    color mode continuity
commit c3ba4ee6c614fa637a34eacbae60c5e88cd018c5
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Tue Jun 27 15:32:11 2023 -0700
    refactor layout
commit ac3bae8f34ccbd08f68cb784b3ec00bad70a9281
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jun 26 14:35:00 2023 -0700
    color and styling updates
commit 42e301818d3d11152c5ce630c8085db1c1664a13
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jun 26 13:23:03 2023 -0700
    highlight active nav link
commit fb72573c01494486ab9b0942c3f67c372af0d5e6
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jun 26 12:34:25 2023 -0700
    patch mobile menu bottom scroll stop
commit 2dcef754301d35143ea24ca197906c974e128a25
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Mon Jun 26 12:32:38 2023 -0700
    adjust header icon sizes
commit dc75b636b7f442dfe7aaa80ad82470be0f3d4f19
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jun 25 21:41:18 2023 -0700
    fix header icon sizes
commit de70f1a56eba85c89c1f01f37770b1d6bd91d5db
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sun Jun 25 19:58:18 2023 -0700
    mobile meun debugging
commit 1fe20565a838c2f2212cd95045cd309b076c8b2b
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sat Jun 24 13:21:23 2023 -0700
    icon color mode improvements
commit fcb134a4209371277693e919fb06eaeb53e36cb6
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sat Jun 24 11:51:24 2023 -0700
    initialize with menu closed
commit defa7c78e981037409ec9d2b9ab871910023f5b0
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Sat Jun 24 11:37:47 2023 -0700
    color toggle and mobile menu
commit 695d719612be0ed9cac0f246f0eaf91f3fdb2e75
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 23 16:39:32 2023 -0700
    forum url as external link
commit ad182602095909d84331339993b31f2a37bf1cd7
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 23 16:28:14 2023 -0700
    patch contributing path
commit fbfeaa7a12a1b9bc86b766a0e490b85d2ded8849
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 23 16:20:57 2023 -0700
    update contribute path
commit f7dbf1f2e0a3e31d164d6cc67c952f89c3f8f49e
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 23 16:05:22 2023 -0700
    dev: point to vercel build for new solidity site
commit c344c1df86e78ad6ab9bc066ac75659180d068cf
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 23 14:30:40 2023 -0700
    update stylesheets, constants, logos
commit c15135378c8568ed93bf685552940cdbe1c07b70
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Fri Jun 23 10:25:05 2023 -0700
    bg color cleanup
commit c049df77d9d55adc796bc2f8cd7c186d833aca69
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 22 19:02:49 2023 -0700
    clean up initialize and toggle scripts
    deprecate dark.css in lieu of a dark more html attribute indicator and css selectors for this attribute. Avoids needing to enable/disable dark stylesheet
commit 881c9cce66e18d30b50c467a22d98836698f5b58
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 22 18:59:24 2023 -0700
    import type faces
commit e9b26157aabf4374754cf14d9a4a980c92bd139c
Author: Paul Wackerow <54227730+wackerow@users.noreply.github.com>
Date:   Thu Jun 22 15:39:00 2023 -0700
    implement initial styling adjustments
		
	
			
		
			
				
	
	
		
			251 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			251 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const getLogoSrc = (isDark) => (isDark ? DARK_LOGO_PATH : LIGHT_LOGO_PATH);
 | 
						|
 | 
						|
const getModeIconSrc = (isDark) => (isDark ? SUN_ICON_PATH : MOON_ICON_PATH);
 | 
						|
 | 
						|
const getMenuIconSrc = (isDark) =>
 | 
						|
  isDark ? DARK_HAMBURGER_PATH : LIGHT_HAMBURGER_PATH;
 | 
						|
 | 
						|
function addFooterNote() {
 | 
						|
  const contentInfo = document.querySelector("div[role=contentinfo]");
 | 
						|
  const footerNote = document.createElement("p");
 | 
						|
  footerNote.classList.add("footer-note");
 | 
						|
  footerNote.innerHTML =
 | 
						|
    'Customized with ❤️ by the <a href="https://ethereum.org/" target="_blank">ethereum.org</a> team.';
 | 
						|
  contentInfo.parentNode.insertBefore(footerNote, contentInfo.nextSibling);
 | 
						|
}
 | 
						|
 | 
						|
function rearrangeDom() {
 | 
						|
  const bodyDivs = document.querySelectorAll("body>div");
 | 
						|
  bodyDivs.forEach((div) => div.remove());
 | 
						|
  const wrapperDiv = document.createElement("div");
 | 
						|
  wrapperDiv.classList.add(WRAPPER_CLASS);
 | 
						|
  bodyDivs.forEach((div) => wrapperDiv.appendChild(div));
 | 
						|
  document.body.prepend(wrapperDiv);
 | 
						|
 | 
						|
  const rstVersions = document.querySelector(".rst-versions");
 | 
						|
  rstVersions.remove();
 | 
						|
  const wyNavSide = document.querySelector("nav.wy-nav-side");
 | 
						|
  wyNavSide.appendChild(rstVersions);
 | 
						|
  const backdrop = document.createElement("div");
 | 
						|
  backdrop.classList.add("backdrop");
 | 
						|
  wrapperDiv.appendChild(backdrop);
 | 
						|
 | 
						|
  const content = document.querySelector(".wy-nav-content");
 | 
						|
  content.id = "content";
 | 
						|
  const oldWrap = document.querySelector("section.wy-nav-content-wrap");
 | 
						|
  oldWrap.remove();
 | 
						|
  document.querySelector(".wy-grid-for-nav").appendChild(content);
 | 
						|
}
 | 
						|
 | 
						|
function buildHeader() {
 | 
						|
  const isDarkMode = localStorage.getItem(LS_COLOR_SCHEME) == DARK;
 | 
						|
 | 
						|
  const header = document.createElement("div");
 | 
						|
  header.classList.add("unified-header");
 | 
						|
  document.querySelector(`.${WRAPPER_CLASS}`).prepend(header);
 | 
						|
 | 
						|
  const innerHeader = document.createElement("div");
 | 
						|
  innerHeader.classList.add("inner-header");
 | 
						|
  header.appendChild(innerHeader);
 | 
						|
 | 
						|
  const homeLink = document.createElement("a");
 | 
						|
  homeLink.classList.add("home-link");
 | 
						|
  homeLink.href = SOLIDITY_HOME_URL;
 | 
						|
  homeLink.ariaLabel = "Solidity home";
 | 
						|
  innerHeader.appendChild(homeLink);
 | 
						|
 | 
						|
  const logo = document.createElement("img");
 | 
						|
  logo.classList.add(SOLIDITY_LOGO_CLASS);
 | 
						|
  logo.src = getLogoSrc(isDarkMode);
 | 
						|
  logo.alt = "Solidity logo";
 | 
						|
  homeLink.appendChild(logo);
 | 
						|
 | 
						|
  const skipToContent = document.createElement("a");
 | 
						|
  skipToContent.classList.add("skip-to-content");
 | 
						|
  skipToContent.href = "#content";
 | 
						|
  skipToContent.innerText = "{ skip to content }";
 | 
						|
  innerHeader.appendChild(skipToContent);
 | 
						|
 | 
						|
  const navBar = document.createElement("nav");
 | 
						|
  navBar.classList.add("nav-bar");
 | 
						|
  innerHeader.appendChild(navBar);
 | 
						|
 | 
						|
  const linkElements = NAV_LINKS.map(({ name, href }) => {
 | 
						|
    const link = document.createElement("a");
 | 
						|
    link.classList.add("nav-link");
 | 
						|
    link.setAttribute("key", name);
 | 
						|
    link.setAttribute("href", href);
 | 
						|
    link.setAttribute("aria-label", name);
 | 
						|
    if (href === FORUM_URL) {
 | 
						|
      link.classList.add("forum-link");
 | 
						|
      link.setAttribute("target", "_blank");
 | 
						|
      link.setAttribute("rel", "noopener noreferrer");
 | 
						|
    }
 | 
						|
    link.innerText = name;
 | 
						|
    return link;
 | 
						|
  });
 | 
						|
  linkElements.forEach((link) => navBar.appendChild(link));
 | 
						|
 | 
						|
  // Flex wrapper for color mode and mobile menu buttons
 | 
						|
  const navButtonContainer = document.createElement("div");
 | 
						|
  navButtonContainer.classList.add("nav-button-container");
 | 
						|
  navBar.appendChild(navButtonContainer);
 | 
						|
 | 
						|
  // Build color toggle
 | 
						|
  const toggleIcon = document.createElement("img");
 | 
						|
  toggleIcon.classList.add(COLOR_TOGGLE_ICON_CLASS);
 | 
						|
  toggleIcon.src = getModeIconSrc(isDarkMode);
 | 
						|
  toggleIcon.alt = "Color mode toggle icon";
 | 
						|
  toggleIcon.setAttribute("aria-hidden", "true");
 | 
						|
  toggleIcon.setAttribute("key", "toggle icon");
 | 
						|
  const colorModeButton = document.createElement("button");
 | 
						|
  colorModeButton.classList.add("color-toggle");
 | 
						|
  colorModeButton.setAttribute("type", "button");
 | 
						|
  colorModeButton.setAttribute("aria-label", "Toggle light dark mode");
 | 
						|
  colorModeButton.setAttribute("key", "color mode button");
 | 
						|
  colorModeButton.addEventListener("click", toggleColorMode);
 | 
						|
  colorModeButton.appendChild(toggleIcon);
 | 
						|
  navButtonContainer.appendChild(colorModeButton);
 | 
						|
 | 
						|
  // Build mobile hamburger menu
 | 
						|
  const menuIcon = document.createElement("img");
 | 
						|
  menuIcon.classList.add(COLOR_TOGGLE_ICON_CLASS);
 | 
						|
  menuIcon.src = getMenuIconSrc(isDarkMode);
 | 
						|
  menuIcon.alt = "Toggle menu";
 | 
						|
  menuIcon.setAttribute("aria-hidden", "true");
 | 
						|
  menuIcon.setAttribute("key", "menu icon");
 | 
						|
  const menuButton = document.createElement("button");
 | 
						|
  menuButton.classList.add("color-toggle");
 | 
						|
  menuButton.classList.add("mobile-menu-button");
 | 
						|
  menuButton.setAttribute("type", "button");
 | 
						|
  menuButton.setAttribute("aria-label", "Toggle menu");
 | 
						|
  menuButton.setAttribute("key", "menu button");
 | 
						|
  menuButton.addEventListener("click", toggleMenu);
 | 
						|
  menuButton.appendChild(menuIcon);
 | 
						|
  navButtonContainer.appendChild(menuButton);
 | 
						|
}
 | 
						|
 | 
						|
const updateActiveNavLink = () => {
 | 
						|
  const navLinks = document.querySelectorAll(".unified-header .nav-link");
 | 
						|
  navLinks.forEach((link) => {
 | 
						|
    const href = link.getAttribute("href");
 | 
						|
    if (document.documentURI.includes("contributing.html")) {
 | 
						|
      link.classList[href.includes("contributing.html") ? "add" : "remove"](
 | 
						|
        "active"
 | 
						|
      );
 | 
						|
    } else {
 | 
						|
      link.classList[document.documentURI.includes(href) ? "add" : "remove"](
 | 
						|
        "active"
 | 
						|
      );
 | 
						|
    }
 | 
						|
  });
 | 
						|
};
 | 
						|
 | 
						|
document.addEventListener("locationchange", updateActiveNavLink);
 | 
						|
 | 
						|
function initialize() {
 | 
						|
  // Preload fonts
 | 
						|
  const fonts = [
 | 
						|
    "overpass-regular.otf",
 | 
						|
    "overpass-bold.otf",
 | 
						|
    "overpass-mono-regular.otf",
 | 
						|
    "overpass-mono-bold.otf",
 | 
						|
  ];
 | 
						|
  fonts.forEach((filename) => {
 | 
						|
    const link = document.createElement("link");
 | 
						|
    link.rel = "preload";
 | 
						|
    link.as = "font";
 | 
						|
    link.href = `https://solidity-docs-dev.readthedocs.io/en/latest/_static/fonts/${filename}`;
 | 
						|
    link.crossOrigin = "";
 | 
						|
    document.head.appendChild(link);
 | 
						|
  });
 | 
						|
 | 
						|
  // Rearrange DOM elements for styling
 | 
						|
  rearrangeDom();
 | 
						|
 | 
						|
  // Check localStorage for existing color scheme preference
 | 
						|
  var prefersDark = localStorage.getItem(LS_COLOR_SCHEME) == DARK;
 | 
						|
  // Check link for search param "color"... it may be "light" or "dark"
 | 
						|
  var urlParams = new URLSearchParams(window.location.search);
 | 
						|
  if (urlParams.size > 0) {
 | 
						|
    // This is used for color mode continuity between the main Solidity Lang site and the docs
 | 
						|
    var colorSchemeParam = urlParams.get("color");
 | 
						|
    // If present, overwrite prefersDark accordingly
 | 
						|
    if (colorSchemeParam) {
 | 
						|
      prefersDark = colorSchemeParam == DARK;
 | 
						|
    }
 | 
						|
 | 
						|
    // Remove "color" search param from URL
 | 
						|
    const { location, title } = document;
 | 
						|
    const { pathname, origin, search, hash } = location;
 | 
						|
    const newSearchParams = new URLSearchParams(search);
 | 
						|
    newSearchParams.delete("color");
 | 
						|
    const sanitizedSearch =
 | 
						|
      newSearchParams.size < 1 ? "" : "?" + newSearchParams.toString();
 | 
						|
    window.history.replaceState(
 | 
						|
      origin,
 | 
						|
      title,
 | 
						|
      pathname + sanitizedSearch + hash
 | 
						|
    );
 | 
						|
  }
 | 
						|
 | 
						|
  // In case none existed, establish localStorage color scheme preference
 | 
						|
  var mode = prefersDark ? DARK : LIGHT;
 | 
						|
  localStorage.setItem(LS_COLOR_SCHEME, mode);
 | 
						|
 | 
						|
  // Select the root element and set the style attribute to denote color-scheme attribute
 | 
						|
  document
 | 
						|
    .querySelector(":root")
 | 
						|
    .setAttribute("style", `--color-scheme: ${mode}`);
 | 
						|
 | 
						|
  // Remove old input and RTD logo anchor element
 | 
						|
  document.querySelector("input[name=mode]").remove();
 | 
						|
  document.querySelector("label[for=switch]").remove();
 | 
						|
  document.querySelector(".wy-side-nav-search > a").remove();
 | 
						|
 | 
						|
  // Add footer note
 | 
						|
  addFooterNote();
 | 
						|
 | 
						|
  // Build header
 | 
						|
  buildHeader();
 | 
						|
 | 
						|
  // Close menu
 | 
						|
  toggleMenu({ force: false });
 | 
						|
 | 
						|
  // Update active nav link
 | 
						|
  updateActiveNavLink();
 | 
						|
}
 | 
						|
 | 
						|
document.addEventListener("DOMContentLoaded", initialize);
 | 
						|
 | 
						|
const handleClick = (e) => {
 | 
						|
  if (e.target.closest(".backdrop")) {
 | 
						|
    toggleMenu({ force: false });
 | 
						|
  }
 | 
						|
 | 
						|
  if (e.target.closest("a")) {
 | 
						|
    const target = e.target.closest("a");
 | 
						|
    const href = target.getAttribute("href");
 | 
						|
    if (href.includes(SOLIDITY_HOME_URL)) {
 | 
						|
      const url = new URL(href);
 | 
						|
      const params = new URLSearchParams(url.search);
 | 
						|
      params.set("color", localStorage.getItem(LS_COLOR_SCHEME));
 | 
						|
      url.search = params.toString();
 | 
						|
      target.setAttribute("href", url.toString());
 | 
						|
    }
 | 
						|
  }
 | 
						|
};
 | 
						|
document.addEventListener("click", handleClick);
 | 
						|
 | 
						|
const handleKeyDown = (e) => {
 | 
						|
  if (e.metaKey && e.key === "k") {
 | 
						|
    document.querySelector("#rtd-search-form input").focus();
 | 
						|
  } else if (e.key === "Escape") {
 | 
						|
    toggleMenu({ force: false });
 | 
						|
  }
 | 
						|
  if (e.metaKey && e.code === "Backslash") {
 | 
						|
    toggleColorMode();
 | 
						|
  }
 | 
						|
};
 | 
						|
document.addEventListener("keydown", handleKeyDown);
 |