@ -1,15 +1,15 @@
// Generated by Documenter.jl
// Generated by Documenter.jl
requirejs . config ( {
requirejs . config ( {
paths : {
paths : {
'highlight-julia' : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1 /languages/julia.min' ,
'highlight-julia' : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0 /languages/julia.min' ,
'headroom' : 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min' ,
'headroom' : 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min' ,
'jqueryui' : 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1 /jquery-ui.min' ,
'jqueryui' : 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2 /jquery-ui.min' ,
'katex-auto-render' : 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.2 4/contrib/auto-render.min' ,
'katex-auto-render' : 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16. 4/contrib/auto-render.min' ,
'jquery' : 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0 /jquery.min' ,
'jquery' : 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4 /jquery.min' ,
'headroom-jquery' : 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min' ,
'headroom-jquery' : 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min' ,
'katex' : 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.2 4/katex.min' ,
'katex' : 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16. 4/katex.min' ,
'highlight' : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1 /highlight.min' ,
'highlight' : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0 /highlight.min' ,
'highlight-julia-repl' : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1 /languages/julia-repl.min' ,
'highlight-julia-repl' : 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0 /languages/julia-repl.min' ,
} ,
} ,
shim : {
shim : {
"highlight-julia" : {
"highlight-julia" : {
@ -70,13 +70,72 @@ $(document).ready(function() {
hljs . highlightAll ( ) ;
hljs . highlightAll ( ) ;
} )
} )
} )
////////////////////////////////////////////////////////////////////////////////
require ( [ 'jquery' ] , function ( $ ) {
var isExpanded = true ;
$ ( document ) . on ( "click" , ".docstring header" , function ( ) {
let articleToggleTitle = "Expand docstring" ;
if ( $ ( this ) . siblings ( "section" ) . is ( ":visible" ) ) {
$ ( this )
. find ( ".docstring-article-toggle-button" )
. removeClass ( "fa-chevron-down" )
. addClass ( "fa-chevron-right" ) ;
} else {
$ ( this )
. find ( ".docstring-article-toggle-button" )
. removeClass ( "fa-chevron-right" )
. addClass ( "fa-chevron-down" ) ;
articleToggleTitle = "Collapse docstring" ;
}
$ ( this )
. find ( ".docstring-article-toggle-button" )
. prop ( "title" , articleToggleTitle ) ;
$ ( this ) . siblings ( "section" ) . slideToggle ( ) ;
} ) ;
$ ( document ) . on ( "click" , ".docs-article-toggle-button" , function ( ) {
let articleToggleTitle = "Expand docstring" ;
let navArticleToggleTitle = "Expand all docstrings" ;
if ( isExpanded ) {
$ ( this ) . removeClass ( "fa-chevron-up" ) . addClass ( "fa-chevron-down" ) ;
$ ( ".docstring-article-toggle-button" )
. removeClass ( "fa-chevron-down" )
. addClass ( "fa-chevron-right" ) ;
isExpanded = false ;
$ ( ".docstring section" ) . slideUp ( ) ;
} else {
$ ( this ) . removeClass ( "fa-chevron-down" ) . addClass ( "fa-chevron-up" ) ;
$ ( ".docstring-article-toggle-button" )
. removeClass ( "fa-chevron-right" )
. addClass ( "fa-chevron-down" ) ;
isExpanded = true ;
articleToggleTitle = "Collapse docstring" ;
navArticleToggleTitle = "Collapse all docstrings" ;
$ ( ".docstring section" ) . slideDown ( ) ;
}
$ ( this ) . prop ( "title" , navArticleToggleTitle ) ;
$ ( ".docstring-article-toggle-button" ) . prop ( "title" , articleToggleTitle ) ;
} ) ;
} )
} )
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
require ( [ ] , function ( ) {
require ( [ ] , function ( ) {
function addCopyButtonCallbacks ( ) {
function addCopyButtonCallbacks ( ) {
for ( const el of document . getElementsByTagName ( "pre" ) ) {
for ( const el of document . getElementsByTagName ( "pre" ) ) {
const button = document . createElement ( "button" ) ;
const button = document . createElement ( "button" ) ;
button . classList . add ( "copy-button" , "fas" , "fa-copy" ) ;
button . classList . add ( "copy-button" , "fa- solid " , "fa-copy" ) ;
button . setAttribute ( "aria-label" , "Copy this code block" ) ;
button . setAttribute ( "aria-label" , "Copy this code block" ) ;
button . setAttribute ( "title" , "Copy" ) ;
button . setAttribute ( "title" , "Copy" ) ;
@ -88,7 +147,7 @@ function addCopyButtonCallbacks() {
} ;
} ;
const failure = function ( ) {
const failure = function ( ) {
button . classList . add ( "error" , "fa-times " ) ;
button . classList . add ( "error" , "fa-xmark " ) ;
button . classList . remove ( "fa-copy" ) ;
button . classList . remove ( "fa-copy" ) ;
} ;
} ;
@ -97,7 +156,7 @@ function addCopyButtonCallbacks() {
setTimeout ( function ( ) {
setTimeout ( function ( ) {
button . classList . add ( "fa-copy" ) ;
button . classList . add ( "fa-copy" ) ;
button . classList . remove ( "success" , "fa-check" , "fa-times " ) ;
button . classList . remove ( "success" , "fa-check" , "fa-xmark " ) ;
} , 5000 ) ;
} , 5000 ) ;
} ) ;
} ) ;
}
}
@ -141,181 +200,192 @@ require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
// Manages the top navigation bar (hides it when the user starts scrolling down on the
// Manages the top navigation bar (hides it when the user starts scrolling down on the
// mobile).
// mobile).
window . Headroom = Headroom ; // work around buggy module loading?
window . Headroom = Headroom ; // work around buggy module loading?
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
$ ( '#documenter .docs-navbar' ) . headroom ( {
$ ( "#documenter .docs-navbar" ) . headroom ( {
"tolerance" : { "up" : 10 , "down" : 10 } ,
tolerance : { up : 10 , down : 10 } ,
} ) ;
} ) ;
} )
} ) ;
} )
} )
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
require ( [ 'jquery' ] , function ( $ ) {
require ( [ 'jquery' ] , function ( $ ) {
// Modal settings dialog
// Modal settings dialog
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
var settings = $ ( '#documenter-settings' ) ;
var settings = $ ( "#documenter-settings" ) ;
$ ( '#documenter-settings-button' ) . click ( function ( ) {
$ ( "#documenter-settings-button" ) . click ( function ( ) {
settings . toggleClass ( 'is-active' ) ;
settings . toggleClass ( "is-active" ) ;
} ) ;
} ) ;
// Close the dialog if X is clicked
// Close the dialog if X is clicked
$ ( '#documenter-settings button.delete' ) . click ( function ( ) {
$ ( "#documenter-settings button.delete" ) . click ( function ( ) {
settings . removeClass ( 'is-active' ) ;
settings . removeClass ( "is-active" ) ;
} ) ;
} ) ;
// Close dialog if ESC is pressed
// Close dialog if ESC is pressed
$ ( document ) . keyup ( function ( e ) {
$ ( document ) . keyup ( function ( e ) {
if ( e . keyCode == 27 ) settings . removeClass ( 'is-active' ) ;
if ( e . keyCode == 27 ) settings . removeClass ( "is-active" ) ;
} ) ;
} ) ;
} ) ;
} ) ;
} )
////////////////////////////////////////////////////////////////////////////////
require ( [ ] , function ( ) {
let searchbox = document . querySelector ( "#documenter-search-query" ) ;
let sidebar = document . querySelector ( ".docs-sidebar" ) ;
document . addEventListener ( "keydown" , ( event ) => {
if ( ( event . ctrlKey || event . metaKey ) && event . key === "/" ) {
if ( ! sidebar . classList . contains ( "visible" ) ) {
sidebar . classList . add ( "visible" ) ;
}
searchbox . focus ( ) ;
return false ;
} else if ( event . key === "Escape" ) {
if ( sidebar . classList . contains ( "visible" ) ) {
sidebar . classList . remove ( "visible" ) ;
}
searchbox . blur ( ) ;
return false ;
}
} ) ;
} )
} )
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
require ( [ 'jquery' ] , function ( $ ) {
require ( [ 'jquery' ] , function ( $ ) {
// Manages the showing and hiding of the sidebar.
// Manages the showing and hiding of the sidebar.
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
var sidebar = $ ( "#documenter > .docs-sidebar" ) ;
var sidebar = $ ( "#documenter > .docs-sidebar" ) ;
var sidebar _button = $ ( "#documenter-sidebar-button" )
var sidebar _button = $ ( "#documenter-sidebar-button" ) ;
sidebar _button . click ( function ( ev ) {
sidebar _button . click ( function ( ev ) {
ev . preventDefault ( ) ;
ev . preventDefault ( ) ;
sidebar . toggleClass ( 'visible' ) ;
sidebar . toggleClass ( "visible" ) ;
if ( sidebar . hasClass ( 'visible' ) ) {
if ( sidebar . hasClass ( "visible" ) ) {
// Makes sure that the current menu item is visible in the sidebar.
// Makes sure that the current menu item is visible in the sidebar.
$ ( "#documenter .docs-menu a.is-active" ) . focus ( ) ;
$ ( "#documenter .docs-menu a.is-active" ) . focus ( ) ;
}
}
} ) ;
} ) ;
$ ( "#documenter > .docs-main" ) . bind ( 'click' , function ( ev ) {
$ ( "#documenter > .docs-main" ) . bind ( "click" , function ( ev ) {
if ( $ ( ev . target ) . is ( sidebar _button ) ) {
if ( $ ( ev . target ) . is ( sidebar _button ) ) {
return ;
return ;
}
}
if ( sidebar . hasClass ( 'visible' ) ) {
if ( sidebar . hasClass ( "visible" ) ) {
sidebar . removeClass ( 'visible' ) ;
sidebar . removeClass ( "visible" ) ;
}
}
} ) ;
} ) ;
} )
} ) ;
// Resizes the package name / sitename in the sidebar if it is too wide.
// Resizes the package name / sitename in the sidebar if it is too wide.
// Inspired by: https://github.com/davatron5000/FitText.js
// Inspired by: https://github.com/davatron5000/FitText.js
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
e = $ ( "#documenter .docs-autofit" ) ;
e = $ ( "#documenter .docs-autofit" ) ;
function resize ( ) {
function resize ( ) {
var L = parseInt ( e . css ( 'max-width' ) , 10 ) ;
var L = parseInt ( e . css ( "max-width" ) , 10 ) ;
var L0 = e . width ( ) ;
var L0 = e . width ( ) ;
if ( L0 > L ) {
if ( L0 > L ) {
var h0 = parseInt ( e . css ( 'font-size' ) , 10 ) ;
var h0 = parseInt ( e . css ( "font-size" ) , 10 ) ;
e . css ( 'font-size' , L * h0 / L0 ) ;
e . css ( "font-size" , ( L * h0 ) / L0 ) ;
// TODO: make sure it survives resizes?
// TODO: make sure it survives resizes?
}
}
}
}
// call once and then register events
// call once and then register events
resize ( ) ;
resize ( ) ;
$ ( window ) . resize ( resize ) ;
$ ( window ) . resize ( resize ) ;
$ ( window ) . on ( 'orientationchange' , resize ) ;
$ ( window ) . on ( "orientationchange" , resize ) ;
} ) ;
} ) ;
// Scroll the navigation bar to the currently selected menu item
// Scroll the navigation bar to the currently selected menu item
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
var sidebar = $ ( "#documenter .docs-menu" ) . get ( 0 ) ;
var sidebar = $ ( "#documenter .docs-menu" ) . get ( 0 ) ;
var active = $ ( "#documenter .docs-menu .is-active" ) . get ( 0 ) ;
var active = $ ( "#documenter .docs-menu .is-active" ) . get ( 0 ) ;
if ( typeof active !== 'undefined' ) {
if ( typeof active !== "undefined" ) {
sidebar . scrollTop = active . offsetTop - sidebar . offsetTop - 15 ;
sidebar . scrollTop = active . offsetTop - sidebar . offsetTop - 15 ;
}
}
} )
} ) ;
} )
} )
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
require ( [ 'jquery' ] , function ( $ ) {
require ( [ 'jquery' ] , function ( $ ) {
function set _theme ( theme ) {
var active = null ;
var disabled = [ ] ;
for ( var i = 0 ; i < document . styleSheets . length ; i ++ ) {
var ss = document . styleSheets [ i ] ;
var themename = ss . ownerNode . getAttribute ( "data-theme-name" ) ;
if ( themename === null ) continue ; // ignore non-theme stylesheets
// Find the active theme
if ( themename === theme ) active = ss ;
else disabled . push ( ss ) ;
}
if ( active !== null ) {
active . disabled = false ;
if ( active . ownerNode . getAttribute ( "data-theme-primary" ) === null ) {
document . getElementsByTagName ( 'html' ) [ 0 ] . className = "theme--" + theme ;
} else {
document . getElementsByTagName ( 'html' ) [ 0 ] . className = "" ;
}
disabled . forEach ( function ( ss ) {
ss . disabled = true ;
} ) ;
}
// Store the theme in localStorage
if ( typeof ( window . localStorage ) !== "undefined" ) {
window . localStorage . setItem ( "documenter-theme" , theme ) ;
} else {
console . error ( "Browser does not support window.localStorage" ) ;
}
}
// Theme picker setup
// Theme picker setup
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
// onchange callback
// onchange callback
$ ( '#documenter-themepicker' ) . change ( function themepick _callback ( ev ) {
$ ( "#documenter-themepicker" ) . change ( function themepick _callback ( ev ) {
var themename = $ ( '#documenter-themepicker option:selected' ) . attr ( 'value' ) ;
var themename = $ ( "#documenter-themepicker option:selected" ) . attr ( "value" ) ;
set _theme ( themename ) ;
if ( themename === "auto" ) {
// set_theme(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
window . localStorage . removeItem ( "documenter-theme" ) ;
} else {
// set_theme(themename);
window . localStorage . setItem ( "documenter-theme" , themename ) ;
}
// We re-use the global function from themeswap.js to actually do the swapping.
set _theme _from _local _storage ( ) ;
} ) ;
} ) ;
// Make sure that the themepicker displays the correct theme when the theme is retrieved
// Make sure that the themepicker displays the correct theme when the theme is retrieved
// from localStorage
// from localStorage
if ( typeof ( window . localStorage ) !== "undefined" ) {
if ( typeof window . localStorage !== "undefined" ) {
var theme = window . localStorage . getItem ( "documenter-theme" ) ;
var theme = window . localStorage . getItem ( "documenter-theme" ) ;
if ( theme !== null ) {
if ( theme !== null ) {
$ ( '#documenter-themepicker option' ) . each ( function ( i , e ) {
$ ( "#documenter-themepicker option" ) . each ( function ( i , e ) {
e . selected = ( e . value === theme ) ;
e . selected = e . value === theme ;
} )
} ) ;
} else {
$ ( '#documenter-themepicker option' ) . each ( function ( i , e ) {
e . selected = $ ( "html" ) . hasClass ( ` theme-- ${ e . value } ` ) ;
} )
}
}
}
}
} )
} ) ;
} )
} )
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
require ( [ 'jquery' ] , function ( $ ) {
require ( [ 'jquery' ] , function ( $ ) {
// update the version selector with info from the siteinfo.js and ../versions.js files
// update the version selector with info from the siteinfo.js and ../versions.js files
$ ( document ) . ready ( function ( ) {
$ ( document ) . ready ( function ( ) {
// If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the
// If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the
// siteinfo.js file, we just return immediately and not display the version selector.
// siteinfo.js file, we just return immediately and not display the version selector.
if ( typeof DOCUMENTER _VERSION _SELECTOR _DISABLED === 'boolean' && DOCUMENTER _VERSION _SELECTOR _DISABLED ) {
if (
typeof DOCUMENTER _VERSION _SELECTOR _DISABLED === "boolean" &&
DOCUMENTER _VERSION _SELECTOR _DISABLED
) {
return ;
return ;
}
}
var version _selector = $ ( "#documenter .docs-version-selector" ) ;
var version _selector = $ ( "#documenter .docs-version-selector" ) ;
var version _selector _select = $ ( "#documenter .docs-version-selector select" ) ;
var version _selector _select = $ ( "#documenter .docs-version-selector select" ) ;
version _selector _select . change ( function ( x ) {
version _selector _select . change ( function ( x ) {
target _href = version _selector _select . children ( "option:selected" ) . get ( 0 ) . value ;
target _href = version _selector _select
. children ( "option:selected" )
. get ( 0 ) . value ;
window . location . href = target _href ;
window . location . href = target _href ;
} ) ;
} ) ;
// add the current version to the selector based on siteinfo.js, but only if the selector is empty
// add the current version to the selector based on siteinfo.js, but only if the selector is empty
if ( typeof DOCUMENTER _CURRENT _VERSION !== 'undefined' && $ ( '#version-selector > option' ) . length == 0 ) {
if (
var option = $ ( "<option value='#' selected='selected'>" + DOCUMENTER _CURRENT _VERSION + "</option>" ) ;
typeof DOCUMENTER _CURRENT _VERSION !== "undefined" &&
$ ( "#version-selector > option" ) . length == 0
) {
var option = $ (
"<option value='#' selected='selected'>" +
DOCUMENTER _CURRENT _VERSION +
"</option>"
) ;
version _selector _select . append ( option ) ;
version _selector _select . append ( option ) ;
}
}
if ( typeof DOC _VERSIONS !== 'undefined' ) {
if ( typeof DOC _VERSIONS !== "undefined" ) {
var existing _versions = version _selector _select . children ( "option" ) ;
var existing _versions = version _selector _select . children ( "option" ) ;
var existing _versions _texts = existing _versions . map ( function ( i , x ) { return x . text } ) ;
var existing _versions _texts = existing _versions . map ( function ( i , x ) {
DOC _VERSIONS . forEach ( function ( each ) {
return x . text ;
var version _url = documenterBaseURL + "/../" + each ;
} ) ;
DOC _VERSIONS . forEach ( function ( each ) {
var version _url = documenterBaseURL + "/../" + each + "/" ;
var existing _id = $ . inArray ( each , existing _versions _texts ) ;
var existing _id = $ . inArray ( each , existing _versions _texts ) ;
// if not already in the version selector, add it as a new option,
// if not already in the version selector, add it as a new option,
// otherwise update the old option with the URL and enable it
// otherwise update the old option with the URL and enable it
if ( existing _id == - 1 ) {
if ( existing _id == - 1 ) {
var option = $ ( "<option value='" + version _url + "'>" + each + "</option>" ) ;
var option = $ (
"<option value='" + version _url + "'>" + each + "</option>"
) ;
version _selector _select . append ( option ) ;
version _selector _select . append ( option ) ;
} else {
} else {
var option = existing _versions [ existing _id ] ;
var option = existing _versions [ existing _id ] ;
@ -329,6 +399,6 @@ $(document).ready(function() {
if ( version _selector _select . children ( "option" ) . length > 0 ) {
if ( version _selector _select . children ( "option" ) . length > 0 ) {
version _selector . toggleClass ( "visible" ) ;
version _selector . toggleClass ( "visible" ) ;
}
}
} )
} ) ;
} )
} )