Coverage for src/ipyvizzustory/storylib/template.py: 100%
6 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-10-26 18:42 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-10-26 18:42 +0000
1"""A module for storing the `HTML` templates."""
4VIZZU_STORY: str = (
5 "https://cdn.jsdelivr.net/npm/vizzu-story@0.6/dist/vizzu-story.min.js"
6)
7"""A variable for storing the default url of the `vizzu-story` package."""
9DISPLAY_INDENT: str = " "
10"""A variable for storing the default indent in the `HTML` template."""
12DISPLAY_TEMPLATE: str = """
13<div>
14 <vizzu-player id="{id}" {vizzu} {start_slide} controller></vizzu-player>
15 <script type="module">
16 import VizzuPlayer from "{vizzu_story}";
18 class IpyvizzuStory {{
19 static version = "{version}";
20 static analytics = undefined;
22 static changeAnalyticsTo(analytics) {{
23 if (IpyvizzuStory.analytics !== analytics) {{
24 console.log("ipyvizzu-story gather usage stats:", analytics);
25 IpyvizzuStory.analytics = analytics;
26 }}
27 if (analytics) {{
28 IpyvizzuStory._addHeadScript();
29 }} else {{
30 IpyvizzuStory._removeScript("ipyvizzu-story-analytics-head");
31 }}
32 }}
34 static _addHeadScript() {{
35 const scriptId = "ipyvizzu-story-analytics-head";
36 if (!IpyvizzuStory._isScriptAppended(scriptId)) {{
37 const script = document.createElement("script");
38 script.defer = true;
39 script.src = "https://plausible.io/js/script.local.js";
40 script.dataset.domain = "usage.ipyvizzu-story.com";
41 script.id = scriptId;
42 document.getElementsByTagName("head")[0].appendChild(script);
43 }}
44 }}
46 static _isScriptAppended(id) {{
47 return document.querySelector(`script[id="${{id}}"]`) !== null;
48 }}
50 static _removeScript(id) {{
51 const script = document.getElementById(id);
52 if (script) script.remove();
53 }}
54 }}
56 if (IpyvizzuStory.version !== window.IpyvizzuStory?.version) {{
57 window.IpyvizzuStory = IpyvizzuStory;
58 console.log(`ipyvizzu-story ${{IpyvizzuStory.version}}`);
59 }}
61 window.IpyvizzuStory?.changeAnalyticsTo({analytics});
63 const vp = document.getElementById("{id}");
64 vp.initializing.then(chart => {{
65 const lib = vp.Vizzu;
67 // story.set_size()
68 {chart_size}
70 // story.set_feature()
71 {chart_features}
72 // story.add_event()
73 {chart_events}
75 const vizzuPlayerData = {vizzu_player_data};
76 vp.slides = vizzuPlayerData;
77 }});
78 </script>
79</div>
80"""
81"""A variable for storing the `vizzu-story` `HTML` template."""