// overrides the readthedocs theme.js file /* eslint-disable-next-line no-global-assign */ require = (function e(t, n, r) { function s(o, u) { if (!n[o]) { if (!t[o]) { var a = typeof require == 'function' && require; if (!u && a) return a(o, !0); if (i) return i(o, !0); var f = new Error("Cannot find module '" + o + "'"); throw ((f.code = 'MODULE_NOT_FOUND'), f); } var l = (n[o] = { exports: {} }); t[o][0].call( l.exports, function (e) { var n = t[o][1][e]; return s(n ? n : e); }, l, l.exports, e, t, n, r ); } return n[o].exports; } var i = typeof require == 'function' && require; for (var o = 0; o < r.length; o++) s(r[o]); return s; })( { 'sphinx-rtd-theme': [ function (require, module) { var jQuery = typeof window != 'undefined' ? window.jQuery : require('jquery'); // Sphinx theme nav state function ThemeNav() { var nav = { navBar: null, win: null, winScroll: false, winResize: false, linkScroll: false, winPosition: 0, winHeight: null, docHeight: null, isRunning: false, }; nav.enable = function () { var self = this; if (!self.isRunning) { self.isRunning = true; jQuery(function ($) { self.init($); self.reset(); self.win.on('hashchange', self.reset); // Set scroll monitor self.win.on('scroll', function () { if (!self.linkScroll) { self.winScroll = true; } }); setInterval(function () { if (self.winScroll) self.onScroll(); }, 25); // Set resize monitor self.win.on('resize', function () { self.winResize = true; }); setInterval(function () { if (self.winResize) self.onResize(); }, 25); self.onResize(); }); } }; nav.init = function ($) { var self = this; this.navBar = $('div.wy-side-scroll:first'); this.win = $(window); // Set up javascript UX bits $(document) // Shift nav in mobile when clicking the menu. .on('click', "[data-toggle='wy-nav-top']", function () { $("[data-toggle='wy-nav-shift']").toggleClass('shift'); $('body').toggleClass('mobile-subnav-open'); }) // Nav menu link click operations .on('click', '.wy-menu-vertical .current ul li a', function () { var target = $(this); // Close menu when you click a link. $("[data-toggle='wy-nav-shift']").removeClass('shift'); $('body').removeClass('mobile-subnav-open'); // Handle dynamic display of l3 and l4 nav lists self.toggleCurrent(target); self.hashChange(); }); // Make tables responsive $('table.docutils:not(.field-list)').wrap("
"); // Add expand links to all parents of nested ul $('.wy-menu-vertical ul') .not('.simple') .siblings('a') .each(function () { var link = $(this); const expand = $(''); expand.on('click', function (ev) { self.toggleCurrent(link); ev.stopPropagation(); return false; }); link.prepend(expand); }); }; nav.reset = function () { // Get anchor from URL and open up nested nav var anchor = encodeURI(window.location.hash); if (anchor) { try { var link = $('.wy-menu-vertical').find('[href="' + anchor + '"]'); // If we didn't find a link, it may be because we clicked on // something that is not in the sidebar (eg: when using // sphinxcontrib.httpdomain it generates headerlinks but those // aren't picked up and placed in the toctree). So let's find // the closest header in the document and try with that one. if (link.length === 0) { var doc_link = $('.document a[href="' + anchor + '"]'); var closest_section = doc_link.closest('div.section'); // Try again with the closest section entry. link = $('.wy-menu-vertical').find( '[href="#' + closest_section.attr('id') + '"]' ); } $('.wy-menu-vertical li.toctree-l1 li.current').removeClass('current'); link.closest('li.toctree-l2').addClass('current'); link.closest('li.toctree-l3').addClass('current'); link.closest('li.toctree-l4').addClass('current'); } catch (err) { // eslint-disable-next-line no-console console.log('Error expanding nav for anchor', err); } } }; nav.onScroll = function () { this.winScroll = false; var newWinPosition = this.win.scrollTop(), winBottom = newWinPosition + this.winHeight, navPosition = this.navBar.scrollTop(), newNavPosition = navPosition + (newWinPosition - this.winPosition); if (newWinPosition < 0 || winBottom > this.docHeight) { return; } this.navBar.scrollTop(newNavPosition); this.winPosition = newWinPosition; }; nav.onResize = function () { this.winResize = false; this.winHeight = this.win.height(); this.docHeight = $(document).height(); }; nav.hashChange = function () { this.linkScroll = true; this.win.one('hashchange', function () { this.linkScroll = false; }); }; nav.toggleCurrent = function (elem) { var parent_li = elem.closest('li'); parent_li.siblings('li.current').removeClass('current'); parent_li.siblings().find('li.current').removeClass('current'); parent_li.find('> ul li.current').removeClass('current'); parent_li.toggleClass('current'); }; return nav; } module.exports.ThemeNav = ThemeNav(); if (typeof window != 'undefined') { window.SphinxRtdTheme = { StickyNav: module.exports.ThemeNav }; } }, { jquery: 'jquery' }, ], }, {}, ['sphinx-rtd-theme'] );