|
@@ -1,113 +1,153 @@
|
|
|
-function toggleCurrent (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');
|
|
|
-}
|
|
|
+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: null
|
|
|
+ };
|
|
|
+
|
|
|
+ nav.enable = function () {
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ 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>");
|
|
|
|
|
|
-$(document).ready(function() {
|
|
|
- // Shift nav in mobile when clicking the menu.
|
|
|
- $(document).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
|
|
|
- $(document).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
|
|
|
- toggleCurrent(target);
|
|
|
- if (typeof(window.SphinxRtdTheme) != 'undefined') {
|
|
|
- window.SphinxRtdTheme.StickyNav.hashChange();
|
|
|
+ // 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 + '"]');
|
|
|
+ $('.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);
|
|
|
+ }
|
|
|
}
|
|
|
- });
|
|
|
- $(document).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').siblings('a').each(function () {
|
|
|
- var link = $(this);
|
|
|
- expand = $('<span class="toctree-expand"></span>');
|
|
|
- expand.on('click', function (ev) {
|
|
|
- toggleCurrent(link);
|
|
|
- ev.stopPropagation();
|
|
|
- return false;
|
|
|
+ };
|
|
|
+
|
|
|
+ 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;
|
|
|
});
|
|
|
- link.prepend(expand);
|
|
|
- });
|
|
|
-});
|
|
|
-
|
|
|
-// Sphinx theme state
|
|
|
-window.SphinxRtdTheme = (function (jquery) {
|
|
|
- var stickyNav = (function () {
|
|
|
- var navBar,
|
|
|
- win,
|
|
|
- winScroll = false,
|
|
|
- linkScroll = false,
|
|
|
- winPosition = 0,
|
|
|
- enable = function () {
|
|
|
- init();
|
|
|
- reset();
|
|
|
- win.on('hashchange', reset);
|
|
|
-
|
|
|
- // Set scrolling
|
|
|
- win.on('scroll', function () {
|
|
|
- if (!linkScroll) {
|
|
|
- winScroll = true;
|
|
|
- }
|
|
|
- });
|
|
|
- setInterval(function () {
|
|
|
- if (winScroll) {
|
|
|
- winScroll = false;
|
|
|
- var newWinPosition = win.scrollTop(),
|
|
|
- navPosition = navBar.scrollTop(),
|
|
|
- newNavPosition = navPosition + (newWinPosition - winPosition);
|
|
|
- navBar.scrollTop(newNavPosition);
|
|
|
- winPosition = newWinPosition;
|
|
|
- }
|
|
|
- }, 25);
|
|
|
- },
|
|
|
- init = function () {
|
|
|
- navBar = jquery('nav.wy-nav-side:first');
|
|
|
- win = jquery(window);
|
|
|
- },
|
|
|
- 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 + '"]');
|
|
|
- $('.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);
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- hashChange = function () {
|
|
|
- linkScroll = true;
|
|
|
- win.one('hashchange', function () {
|
|
|
- linkScroll = false;
|
|
|
- });
|
|
|
- };
|
|
|
- jquery(init);
|
|
|
- return {
|
|
|
- enable: enable,
|
|
|
- hashChange: hashChange
|
|
|
- };
|
|
|
- }());
|
|
|
- return {
|
|
|
- StickyNav: stickyNav
|
|
|
};
|
|
|
-}($));
|
|
|
+
|
|
|
+ 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"]);
|