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

1"""A module for storing the `HTML` templates.""" 

2 

3 

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.""" 

8 

9DISPLAY_INDENT: str = " " 

10"""A variable for storing the default indent in the `HTML` template.""" 

11 

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}"; 

17 

18 class IpyvizzuStory {{ 

19 static version = "{version}"; 

20 static analytics = undefined; 

21 

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 }} 

33 

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 }} 

45 

46 static _isScriptAppended(id) {{ 

47 return document.querySelector(`script[id="${{id}}"]`) !== null; 

48 }} 

49 

50 static _removeScript(id) {{ 

51 const script = document.getElementById(id); 

52 if (script) script.remove(); 

53 }} 

54 }} 

55 

56 if (IpyvizzuStory.version !== window.IpyvizzuStory?.version) {{ 

57 window.IpyvizzuStory = IpyvizzuStory; 

58 console.log(`ipyvizzu-story ${{IpyvizzuStory.version}}`); 

59 }} 

60 

61 window.IpyvizzuStory?.changeAnalyticsTo({analytics}); 

62 

63 const vp = document.getElementById("{id}"); 

64 vp.initializing.then(chart => {{ 

65 const lib = vp.Vizzu; 

66 

67 // story.set_size() 

68 {chart_size} 

69 

70 // story.set_feature() 

71 {chart_features} 

72 // story.add_event() 

73 {chart_events} 

74 

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."""