CINXE.COM
Dash
<!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Dash</title> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico?m=1732274750.2985997"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootswatch@5.3.3/dist/yeti/bootstrap.min.css"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.3.0/css/all.css"> <link rel="stylesheet" href="/assets/style.css?m=1732274763.0346541"> </head> <body> <!--[if IE]><script> alert("Dash v2.7+ does not support Internet Explorer. Please use a newer browser."); </script><![endif]--> <div id="react-entry-point"> <div class="_dash-loading"> Loading... </div> </div> <footer> <script id="_dash-config" type="application/json">{"url_base_pathname":null,"requests_pathname_prefix":"/","ui":false,"props_check":false,"show_undo_redo":false,"suppress_callback_exceptions":false,"update_title":"Updating...","children_props":{"dash_core_components":{"Checklist":["options[].label"],"Clipboard":[],"ConfirmDialog":[],"ConfirmDialogProvider":[],"DatePickerRange":[],"DatePickerSingle":[],"Download":[],"Dropdown":["options[].label"],"Geolocation":[],"Graph":[],"Input":[],"Interval":[],"Link":[],"Loading":["custom_spinner"],"Location":[],"LogoutButton":[],"Markdown":[],"RadioItems":["options[].label"],"RangeSlider":[],"Slider":[],"Store":[],"Tab":[],"Tabs":[],"Textarea":[],"Tooltip":[],"Upload":[]},"dash_html_components":{"A":[],"Abbr":[],"Acronym":[],"Address":[],"Area":[],"Article":[],"Aside":[],"Audio":[],"B":[],"Base":[],"Basefont":[],"Bdi":[],"Bdo":[],"Big":[],"Blink":[],"Blockquote":[],"Br":[],"Button":[],"Canvas":[],"Caption":[],"Center":[],"Cite":[],"Code":[],"Col":[],"Colgroup":[],"Content":[],"Data":[],"Datalist":[],"Dd":[],"Del":[],"Details":[],"Dfn":[],"Dialog":[],"Div":[],"Dl":[],"Dt":[],"Em":[],"Embed":[],"Fieldset":[],"Figcaption":[],"Figure":[],"Font":[],"Footer":[],"Form":[],"Frame":[],"Frameset":[],"H1":[],"H2":[],"H3":[],"H4":[],"H5":[],"H6":[],"Header":[],"Hgroup":[],"Hr":[],"I":[],"Iframe":[],"Img":[],"Ins":[],"Kbd":[],"Keygen":[],"Label":[],"Legend":[],"Li":[],"Link":[],"Main":[],"MapEl":[],"Mark":[],"Marquee":[],"Meta":[],"Meter":[],"Nav":[],"Nobr":[],"Noscript":[],"ObjectEl":[],"Ol":[],"Optgroup":[],"Option":[],"Output":[],"P":[],"Param":[],"Picture":[],"Plaintext":[],"Pre":[],"Progress":[],"Q":[],"Rb":[],"Rp":[],"Rt":[],"Rtc":[],"Ruby":[],"S":[],"Samp":[],"Script":[],"Section":[],"Select":[],"Shadow":[],"Slot":[],"Small":[],"Source":[],"Spacer":[],"Span":[],"Strike":[],"Strong":[],"Sub":[],"Summary":[],"Sup":[],"Table":[],"Tbody":[],"Td":[],"Template":[],"Textarea":[],"Tfoot":[],"Th":[],"Thead":[],"Time":[],"Title":[],"Tr":[],"Track":[],"U":[],"Ul":[],"Var":[],"Video":[],"Wbr":[],"Xmp":[]},"dash_table":{"DataTable":[]},"dash_bootstrap_components":{"Accordion":[],"AccordionItem":["title"],"Alert":[],"Badge":[],"Breadcrumb":[],"Button":[],"ButtonGroup":[],"Card":[],"CardBody":[],"CardFooter":[],"CardGroup":[],"CardHeader":[],"CardImg":[],"CardImgOverlay":[],"CardLink":[],"Carousel":[],"Collapse":[],"DropdownMenu":["label"],"DropdownMenuItem":[],"Fade":[],"Form":[],"FormFeedback":[],"FormFloating":[],"FormText":[],"Label":[],"Checkbox":["label"],"Checklist":["options[].label"],"Input":[],"InputGroup":[],"InputGroupText":[],"RadioButton":["label"],"RadioItems":["options[].label"],"Select":[],"Switch":["label"],"Textarea":[],"Col":[],"Container":[],"Row":[],"Stack":[],"ListGroup":[],"ListGroupItem":[],"Modal":[],"ModalBody":[],"ModalFooter":[],"ModalHeader":[],"ModalTitle":[],"Nav":[],"NavItem":[],"NavLink":[],"Navbar":[],"NavbarBrand":[],"NavbarSimple":["brand"],"NavbarToggler":[],"Offcanvas":["title"],"Pagination":[],"Placeholder":[],"Popover":[],"PopoverBody":[],"PopoverHeader":[],"Progress":[],"Spinner":[],"Table":[],"Tab":[],"Tabs":[],"Toast":["header"],"Tooltip":[]},"aio":{"ThemeSwitchAIO":null,"ThemeChangerAIO":null}},"serve_locally":true}</script> <script src="/_dash-component-suites/dash/deps/polyfill@7.v2_17_0m1732274482.12.1.min.js"></script> <script src="/_dash-component-suites/dash/deps/react@16.v2_17_0m1732274482.14.0.min.js"></script> <script src="/_dash-component-suites/dash/deps/react-dom@16.v2_17_0m1732274482.14.0.min.js"></script> <script src="/_dash-component-suites/dash/deps/prop-types@15.v2_17_0m1732274482.8.1.min.js"></script> <script src="/_dash-component-suites/dash_bootstrap_components/_components/dash_bootstrap_components.v1_6_0m1732274305.min.js"></script> <script src="/assets/custom-script.js?m=1732274715.2904499"></script> <script src="/_dash-component-suites/dash/dash-renderer/build/dash_renderer.v2_17_0m1732274481.min.js"></script> <script src="/_dash-component-suites/dash/dcc/dash_core_components.v2_14_0m1732274482.js"></script> <script src="/_dash-component-suites/dash/dcc/dash_core_components-shared.v2_14_0m1732274482.js"></script> <script src="/_dash-component-suites/dash/html/dash_html_components.v2_0_18m1732274483.min.js"></script> <script src="/_dash-component-suites/dash/dash_table/bundle.v5_2_11m1732274482.js"></script> <script> (function() { var clientside = window.dash_clientside = window.dash_clientside || {}; var ns = clientside["_dashprivate_clientside_funcs"] = clientside["_dashprivate_clientside_funcs"] || {}; ns["3da8de172aac9cea13dd1a01c16483cd0326b6767a625b147f7b6562d960d22f"] = function (id) { var myID = document.getElementById(id) var myScrollFunc = function() { var y = window.scrollY; if (y >= 400) { myID.style.display = "" } else { myID.style.display = "none" } }; window.addEventListener("scroll", myScrollFunc); return window.dash_clientside.no_update }; })(); </script> <script> (function() { var clientside = window.dash_clientside = window.dash_clientside || {}; var ns = clientside["_dashprivate_clientside_funcs"] = clientside["_dashprivate_clientside_funcs"] || {}; ns["32f08b6bae8ceb7b7bc8672ceb675c61755709aa78d9de4ad0d9aeff02182589"] = function (switchOn, themes, assetsUrlPath) { // function to test if the theme is an external or a local theme const isValidHttpUrl = (theme) => { try { new URL(theme); return true; } catch (error) { return false; } } // if local themes are used, modify the path to the clientside path themes = themes.map(theme => isValidHttpUrl(theme) ? theme : `/${assetsUrlPath}/${theme.split('/').at(-1)}`) // Clean if there are several themes stylesheets applied or create one if no stylesheet is found // Find the stylesheets let stylesheets = [] for (const theme of themes) { stylesheets.push(...document.querySelectorAll(`link[rel='stylesheet'][href*='${theme}']`)) } // keep the first stylesheet let stylesheet = stylesheets[0] // and clean if more than one stylesheet are found for (let i = 1; i < stylesheets.length; i++) { stylesheets[i].remove() } // or create a new one if no stylesheet found if (!stylesheet) { stylesheet = document.createElement("link") stylesheet.rel = "stylesheet" document.head.appendChild(stylesheet) } // Update the theme let newTheme = switchOn ? themes[0] : themes.toReversed()[0] stylesheet.setAttribute('href', newTheme) return window.dash_clientside.no_update } ; })(); </script> <script> (function() { var clientside = window.dash_clientside = window.dash_clientside || {}; var ns = clientside["_dashprivate_clientside_funcs"] = clientside["_dashprivate_clientside_funcs"] || {}; ns["93330d1bf9357dc0434bb50fbfc7a069f1b3f4dad8bc8b7035609bf5cb5daf81"] = function (selected_theme, themes, assetsUrlPath) { // function to test if the theme is an external or a local theme const isValidHttpUrl = (theme) => { try { new URL(theme); return true; } catch (error) { return false; } } // Find the existing theme stylesheets let stylesheets = [] Object.values(themes).forEach( url => stylesheets.push(...document.querySelectorAll(`link[rel='stylesheet'][href*='${url}']`)) ); // Create a new stylesheet link element let newStylesheet = document.createElement("link"); newStylesheet.rel = "stylesheet"; newStylesheet.href = isValidHttpUrl(selected_theme) ? selected_theme : `/${assetsUrlPath}/${selected_theme.split('/').at(-1)}`; // When the new stylesheet is loaded, remove the old ones newStylesheet.onload = function () { stylesheets.forEach(s => s.remove()); } // Append the new stylesheet to the document head document.head.appendChild(newStylesheet); return window.dash_clientside.no_update; } ; })(); </script> <script> (function() { var clientside = window.dash_clientside = window.dash_clientside || {}; var ns = clientside["_dashprivate_clientside_funcs"] = clientside["_dashprivate_clientside_funcs"] || {}; ns["7df082cb484f047dec49fea75979d5f5819541e12a0a6450e9e7184970092e95"] = function(id) { let style = document.createElement('style') style.innerText = ` #theme-switch-label-dark { background-color: black; color: white; width: 100px } #theme-switch-label { background-color: white; color: black; width: 100px } ` document.head.appendChild(style) } ; })(); </script> <script id="_dash-renderer" type="application/javascript">var renderer = new DashRenderer();</script> </footer> </body> </html>