170 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			170 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								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"]);
							 |