| 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,exports){ |
| 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 doc = $(document), |
| 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"); |
| $("[data-toggle='rst-versions']").toggleClass("shift"); |
| }) |
| |
| // 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"); |
| $("[data-toggle='rst-versions']").toggleClass("shift"); |
| // Handle dynamic display of l3 and l4 nav lists |
| self.toggleCurrent(target); |
| self.hashChange(); |
| }) |
| .on('click', "[data-toggle='rst-current-version']", function() { |
| $("[data-toggle='rst-versions']").toggleClass("shift-up"); |
| }) |
| |
| // Make tables responsive |
| $("table.docutils:not(.field-list)") |
| .wrap("<div class='wy-table-responsive'></div>"); |
| |
| // Add expand links to all parents of nested ul |
| $('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () { |
| var link = $(this); |
| expand = $('<span class="toctree-expand"></span>'); |
| 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) { |
| 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"]); |