2020-11-26 11:01:12 +01:00
( function ( ) { function r ( e , n , t ) { function o ( i , f ) { if ( ! n [ i ] ) { if ( ! e [ i ] ) { var c = "function" == typeof require && require ; if ( ! f && c ) return c ( i , ! 0 ) ; if ( u ) return u ( i , ! 0 ) ; var a = new Error ( "Cannot find module '" + i + "'" ) ; throw a . code = "MODULE_NOT_FOUND" , a } var p = n [ i ] = { exports : { } } ; e [ i ] [ 0 ] . call ( p . exports , function ( r ) { var n = e [ i ] [ 1 ] [ r ] ; return o ( n || r ) } , p , p . exports , r , e , n , t ) } return n [ i ] . exports } for ( var u = "function" == typeof require && require , i = 0 ; i < t . length ; i ++ ) o ( t [ i ] ) ; return o } return r } ) ( ) ( { 1 : [ function ( require , module , exports ) {
2020-11-27 15:16:19 +01:00
"use strict" ;
function _createForOfIteratorHelper ( o , allowArrayLike ) { var it ; if ( typeof Symbol === "undefined" || o [ Symbol . iterator ] == null ) { if ( Array . isArray ( o ) || ( it = _unsupportedIterableToArray ( o ) ) || allowArrayLike && o && typeof o . length === "number" ) { if ( it ) o = it ; var i = 0 ; var F = function F ( ) { } ; return { s : F , n : function n ( ) { if ( i >= o . length ) return { done : true } ; return { done : false , value : o [ i ++ ] } ; } , e : function e ( _e ) { throw _e ; } , f : F } ; } throw new TypeError ( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ; } var normalCompletion = true , didErr = false , err ; return { s : function s ( ) { it = o [ Symbol . iterator ] ( ) ; } , n : function n ( ) { var step = it . next ( ) ; normalCompletion = step . done ; return step ; } , e : function e ( _e2 ) { didErr = true ; err = _e2 ; } , f : function f ( ) { try { if ( ! normalCompletion && it [ "return" ] != null ) it [ "return" ] ( ) ; } finally { if ( didErr ) throw err ; } } } ; }
function _unsupportedIterableToArray ( o , minLen ) { if ( ! o ) return ; if ( typeof o === "string" ) return _arrayLikeToArray ( o , minLen ) ; var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ; if ( n === "Object" && o . constructor ) n = o . constructor . name ; if ( n === "Map" || n === "Set" ) return Array . from ( o ) ; if ( n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ . test ( n ) ) return _arrayLikeToArray ( o , minLen ) ; }
function _arrayLikeToArray ( arr , len ) { if ( len == null || len > arr . length ) len = arr . length ; for ( var i = 0 , arr2 = new Array ( len ) ; i < len ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; }
2020-11-26 11:01:12 +01:00
// Blocks
2020-11-27 15:16:19 +01:00
docReady ( function ( ) {
var boxesNames = {
"seealso" : "See also" ,
"definition" : "Definition" ,
"exampl" : "Example" ,
2020-11-27 16:57:04 +01:00
"exercice" : "Exercice" ,
2020-11-27 15:16:19 +01:00
"question" : "Question" ,
"summary" : "Summary" ,
2020-12-10 18:50:54 +01:00
"note" : "Note" ,
2020-11-27 16:57:04 +01:00
"answer" : "Answer" ,
2020-11-27 15:16:19 +01:00
"hint" : "Hint" ,
"important" : "Important" ,
"caution" : "Caution" ,
"warning" : "Warning"
} ;
for ( var className in boxesNames ) {
var boxes = document . querySelectorAll ( 'div.' + className ) ;
var _iterator = _createForOfIteratorHelper ( boxes ) ,
_step ;
try {
for ( _iterator . s ( ) ; ! ( _step = _iterator . n ( ) ) . done ; ) {
var box = _step . value ;
var boxTitle = document . createElement ( 'p' ) ;
boxTitle . className = "admonition-title " + className ;
boxTitle . textContent = boxesNames [ className ] ;
box . parentNode . insertBefore ( boxTitle , box ) ;
}
} catch ( err ) {
_iterator . e ( err ) ;
} finally {
_iterator . f ( ) ;
2020-11-26 11:01:12 +01:00
}
2020-11-27 15:16:19 +01:00
}
} ) ; // Copy Source Block
2020-11-26 19:57:35 +01:00
2020-11-27 15:16:19 +01:00
docReady ( function ( ) {
var srcContainers = document . querySelectorAll ( 'pre.src' ) ;
2020-11-26 19:57:35 +01:00
2020-11-27 15:16:19 +01:00
var _iterator2 = _createForOfIteratorHelper ( srcContainers ) ,
_step2 ;
2020-11-26 19:57:35 +01:00
2020-11-27 15:16:19 +01:00
try {
var _loop = function _loop ( ) {
var srcContrainer = _step2 . value ;
var boxCopy = document . createElement ( 'div' ) ;
boxCopy . className = "src-copy" ;
boxCopy . textContent = "Copy" ;
boxCopy . onclick = function ( ) {
// Create a clone the node to not affect the original one
var nodeClone = this . parentNode . cloneNode ( true ) ; // Remove Line Numbers and Copy Button
var linenumNodes = nodeClone . querySelectorAll ( '.linenr,.src-copy' ) ;
for ( var i = linenumNodes . length - 1 ; i >= 0 ; -- i ) {
nodeClone . removeChild ( linenumNodes [ i ] ) ;
} // Copy the filetered content to the clipboard
var srcText = nodeClone . textContent ;
navigator . clipboard . writeText ( srcText ) . then ( function ( ) {
boxCopy . textContent = "Copied" ;
boxCopy . classList . add ( "src-copied" ) ;
setTimeout ( function ( ) {
boxCopy . textContent = "Copy" ;
boxCopy . classList . remove ( "src-copied" ) ;
} , 2000 ) ;
} ) ;
} ;
srcContrainer . prepend ( boxCopy ) ;
} ;
for ( _iterator2 . s ( ) ; ! ( _step2 = _iterator2 . n ( ) ) . done ; ) {
_loop ( ) ;
2020-11-27 11:13:20 +01:00
}
2020-11-27 15:16:19 +01:00
} catch ( err ) {
_iterator2 . e ( err ) ;
} finally {
_iterator2 . f ( ) ;
}
} ) ; // Equivalent of Jquery $.ready
2020-11-26 19:57:35 +01:00
2020-11-27 15:16:19 +01:00
function docReady ( fn ) {
// see if DOM is already available
if ( document . readyState === "complete" || document . readyState === "interactive" ) {
// call on next available tick
setTimeout ( fn , 1 ) ;
} else {
document . addEventListener ( "DOMContentLoaded" , fn ) ;
}
2020-12-01 17:20:53 +01:00
} // Load Jquery
var scr = document . createElement ( 'script' ) ,
head = document . head || document . getElementsByTagName ( 'head' ) [ 0 ] ;
scr . src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js' ;
scr . async = false ; // optionally
head . insertBefore ( scr , head . firstChild ) ; // Load Bootstrap.js
var scr = document . createElement ( 'script' ) ,
head = document . head || document . getElementsByTagName ( 'head' ) [ 0 ] ;
scr . src = 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js' ;
scr . async = false ; // optionally
head . insertBefore ( scr , head . firstChild ) ; // After it is loaded
scr . addEventListener ( 'load' , function ( ) {
$ ( document ) . ready ( function ( ) {
$ ( '#text-table-of-contents ul' ) . first ( ) . addClass ( 'nav' ) ; // ScrollSpy also requires that we use
// a Bootstrap nav component.
$ ( 'body' ) . scrollspy ( {
target : '#text-table-of-contents'
} ) ; // set the height of tableOfContents
var $postamble = $ ( '#postamble' ) ;
var $tableOfContents = $ ( '#table-of-contents' ) ;
$tableOfContents . css ( {
paddingBottom : $postamble . outerHeight ( )
} ) ; // add TOC button
var toggleSidebar = $ ( '<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>' ) ;
$ ( '#content' ) . prepend ( toggleSidebar ) ; // add close button when sidebar showed in mobile screen
var closeBtn = $ ( '<a class="close-sidebar" href="#">Close</a>' ) ;
var tocTitle = $ ( '#table-of-contents' ) . find ( 'h2' ) ;
tocTitle . append ( closeBtn ) ;
} ) ;
} ) ; // function collapse_toc_elements_on_click (nav_li_a){
2020-11-27 11:13:20 +01:00
// /*
// When an `a' element in the TOC is clicked, its parent
// `li' element's active attribute is toggled. This causes
// the element to toggle between minimized and maximized
// states. The active attribute is documented in bootstrap.
// https://getbootstrap.com/docs/4.0/components/navbar/#nav
// */
// $(nav_li_a).parent().toggleClass("active");
// }
// $( document ).ready(function() {
// // When the document is loaded and ready, bind the
// // function `collapse_toc_elements_on_click' to the
// // `a' elements in the table of contents.
// $("#text-table-of-contents a").click(function() {
// collapse_toc_elements_on_click(this);
// });
// });
2020-11-26 11:01:12 +01:00
// $( 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");
// });
// // Close menu when you click a link.
// $(document).on('click', ".wy-menu-vertical .current ul li a", function() {
// $("[data-toggle='wy-nav-shift']").removeClass("shift");
// $("[data-toggle='rst-versions']").toggleClass("shift");
// });
// $(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>");
// });
// $( document ).ready(function() {
// $('#text-table-of-contents ul').first().addClass('nav');
// // ScrollSpy also requires that we use
// // a Bootstrap nav component.
// $('body').scrollspy({target: '#text-table-of-contents'});
// // set the height of tableOfContents
// var $postamble = $('#postamble');
// var $tableOfContents = $('#table-of-contents');
// $tableOfContents.css({paddingBottom: $postamble.outerHeight()});
// // add TOC button
// var toggleSidebar = $('<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>');
// $('#content').prepend(toggleSidebar);
// // add close button when sidebar showed in mobile screen
// var closeBtn = $('<a class="close-sidebar" href="#">Close</a>');
// var tocTitle = $('#table-of-contents').find('h2');
// tocTitle.append(closeBtn);
// });
// window.SphinxRtdTheme = (function (jquery) {
// var stickyNav = (function () {
// var navBar,
// win,
// stickyNavCssClass = 'stickynav',
// applyStickNav = function () {
// if (navBar.height() <= win.height()) {
// navBar.addClass(stickyNavCssClass);
// } else {
// navBar.removeClass(stickyNavCssClass);
// }
// },
// enable = function () {
// applyStickNav();
// win.on('resize', applyStickNav);
// },
// init = function () {
// navBar = jquery('nav.wy-nav-side:first');
// win = jquery(window);
// };
// jquery(init);
// return {
// enable : enable
// };
// }());
// return {
// StickyNav : stickyNav
// };
// }($));
} , { } ] } , { } , [ 1 ] ) ;