summaryrefslogtreecommitdiffstats
path: root/docs/_static/sphinx_design.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /docs/_static/sphinx_design.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/_static/sphinx_design.js')
-rw-r--r--docs/_static/sphinx_design.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/docs/_static/sphinx_design.js b/docs/_static/sphinx_design.js
new file mode 100644
index 0000000000..260460bbcd
--- /dev/null
+++ b/docs/_static/sphinx_design.js
@@ -0,0 +1,72 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+(function () {
+ "use strict";
+
+ var dropdownClassName = "sd-dropdown";
+
+ function getDropdownElement() {
+ var dropdownId = window.location.hash;
+ if (!dropdownId) {
+ return false;
+ }
+
+ var dropdownElement = document.getElementById(dropdownId.substring(1));
+ if (
+ !dropdownElement ||
+ !dropdownElement.classList.contains(dropdownClassName)
+ ) {
+ return false;
+ }
+
+ return dropdownElement;
+ }
+
+ function setupDropdownLink() {
+ var dropdowns = document.getElementsByClassName(dropdownClassName);
+ for (var i = 0; i < dropdowns.length; i++) {
+ for (var j = 0; j < dropdowns[i].classList.length; j++) {
+ if (dropdowns[i].classList[j].startsWith("anchor-id-")) {
+ dropdowns[i].id = dropdowns[i].classList[j].replace("anchor-id-", "");
+ }
+ }
+
+ var aTag = document.createElement("a");
+ aTag.setAttribute("href", "#" + dropdowns[i].id);
+ aTag.classList.add("dropdown-link");
+ aTag.innerHTML = "ΒΆ";
+
+ var summaryElement =
+ dropdowns[i].getElementsByClassName("sd-summary-title")[0];
+ summaryElement.insertBefore(
+ aTag,
+ summaryElement.getElementsByClassName("docutils")[0]
+ );
+ }
+ }
+
+ function scrollToDropdown() {
+ var dropdownElement = getDropdownElement();
+ if (dropdownElement) {
+ dropdownElement.open = true;
+ dropdownElement.scrollIntoView(true);
+ }
+ }
+
+ // Initialize dropdown link
+ window.addEventListener("DOMContentLoaded", () => {
+ if (document.getElementsByClassName(dropdownClassName).length) {
+ setupDropdownLink();
+ window.onhashchange = scrollToDropdown;
+ }
+ });
+
+ // Scroll to and open the dropdown direct links
+ window.onload = () => {
+ if (document.getElementsByClassName(dropdownClassName).length) {
+ scrollToDropdown();
+ }
+ };
+})();