/
doc_nb_js.js
67 lines (67 loc) · 2.45 KB
/
doc_nb_js.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
(function(root) {
var docs_json = {{ docs_json }};
var render_items = {{ render_items }};
var docs = Object.values(docs_json)
if (!docs) {
return
}
const py_version = docs[0].version.replace('rc', '-rc.').replace('.dev', '-dev.')
async function embed_document(root) {
var Bokeh = get_bokeh(root)
await Bokeh.embed.embed_items_notebook(docs_json, render_items);
for (const render_item of render_items) {
for (const root_id of render_item.root_ids) {
const id_el = document.getElementById(root_id)
if (id_el.children.length && id_el.children[0].hasAttribute('data-root-id')) {
const root_el = id_el.children[0]
root_el.id = root_el.id + '-rendered'
for (const child of root_el.children) {
// Ensure JupyterLab does not capture keyboard shortcuts
// see: https://jupyterlab.readthedocs.io/en/4.1.x/extension/notebook.html#keyboard-interaction-model
child.setAttribute('data-lm-suppress-shortcuts', 'true')
}
}
}
}
}
function get_bokeh(root) {
if (root.Bokeh === undefined) {
return null
} else if (root.Bokeh.version !== py_version) {
if (root.Bokeh.versions === undefined || !root.Bokeh.versions.has(py_version)) {
return null
}
return root.Bokeh.versions.get(py_version);
} else if (root.Bokeh.version === py_version) {
return root.Bokeh
}
return null
}
function is_loaded(root) {
var Bokeh = get_bokeh(root)
return (Bokeh != null && Bokeh.Panel !== undefined{% for reqs in requirements %} && ({% for req in reqs %}{% if loop.index0 > 0 %}||{% endif %} root.{{ req }} !== undefined{% endfor %}){% endfor %}{% if ipywidget %}&& Bokeh.Models._known_models.has("ipywidgets_bokeh.widget.IPyWidget") {% endif %})
}
if (is_loaded(root)) {
embed_document(root);
} else {
var attempts = 0;
var timer = setInterval(function(root) {
if (is_loaded(root)) {
clearInterval(timer);
embed_document(root);
} else if (document.readyState == "complete") {
attempts++;
if (attempts > 200) {
clearInterval(timer);
var Bokeh = get_bokeh(root)
if (Bokeh == null || Bokeh.Panel == null) {
console.warn("Panel: ERROR: Unable to run Panel code because Bokeh or Panel library is missing");
} else {
console.warn("Panel: WARNING: Attempting to render but not all required libraries could be resolved.")
embed_document(root)
}
}
}
}, 25, root)
}
})(window);