jupyter_widgets.html.j2 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. {%- macro jupyter_widgets(widgets_cdn_url, html_manager_semver_range, widget_renderer_url='') -%}
  2. <script>
  3. (function() {
  4. function addWidgetsRenderer() {
  5. var mimeElement = document.querySelector('script[type="application/vnd.jupyter.widget-view+json"]');
  6. var scriptElement = document.createElement('script');
  7. {% if widget_renderer_url %}
  8. var widgetRendererSrc = '{{ widget_renderer_url }}';
  9. {% else %}
  10. var widgetRendererSrc = '{{ widgets_cdn_url }}@jupyter-widgets/html-manager@{{ html_manager_semver_range }}/dist/embed-amd.js';
  11. {%endif %}
  12. var widgetState;
  13. // Fallback for older version:
  14. try {
  15. widgetState = mimeElement && JSON.parse(mimeElement.innerHTML);
  16. if (widgetState && (widgetState.version_major < 2 || !widgetState.version_major)) {
  17. {% if widget_renderer_url %}
  18. var widgetRendererSrc = '{{ widget_renderer_url }}';
  19. {% else %}
  20. var widgetRendererSrc = '{{ widgets_cdn_url }}@jupyter-js-widgets@*/dist/embed.js';
  21. {%endif %}
  22. }
  23. } catch(e) {}
  24. scriptElement.src = widgetRendererSrc;
  25. document.body.appendChild(scriptElement);
  26. }
  27. document.addEventListener('DOMContentLoaded', addWidgetsRenderer);
  28. }());
  29. </script>
  30. {%- endmacro %}