@windward/core 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/.idea/codeStyles/Project.xml +58 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  4. package/.idea/modules.xml +8 -0
  5. package/.idea/php-docker-settings.xml +24 -0
  6. package/.idea/php.xml +19 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/.idea/watcherTasks.xml +4 -0
  9. package/.idea/windward-ui-plugin-core.iml +8 -0
  10. package/components/Content/Blocks/Image.vue +35 -8
  11. package/components/Content/Blocks/OpenResponse.vue +32 -10
  12. package/components/Content/Blocks/OpenResponseCollate.vue +69 -42
  13. package/components/Settings/ImageSettings.vue +10 -0
  14. package/components/Settings/OpenResponseCollateSettings.vue +9 -8
  15. package/components/Settings/TextEditorSettings.vue +1 -0
  16. package/components/utils/TinyMCEWrapper.vue +10 -3
  17. package/components/utils/assets/tinymce/css/content.scss +1 -1
  18. package/coverage/clover.xml +223 -0
  19. package/coverage/coverage-final.json +16 -0
  20. package/coverage/lcov-report/base.css +224 -0
  21. package/coverage/lcov-report/block-navigation.js +87 -0
  22. package/coverage/lcov-report/components/Content/Blocks/Accordion.vue.html +430 -0
  23. package/coverage/lcov-report/components/Content/Blocks/Image.vue.html +394 -0
  24. package/coverage/lcov-report/components/Content/Blocks/Math.vue.html +262 -0
  25. package/coverage/lcov-report/components/Content/Blocks/RichText.vue.html +295 -0
  26. package/coverage/lcov-report/components/Content/Blocks/Tab.vue.html +415 -0
  27. package/coverage/lcov-report/components/Content/Blocks/Table.vue.html +667 -0
  28. package/coverage/lcov-report/components/Content/Blocks/Video.vue.html +2275 -0
  29. package/coverage/lcov-report/components/Content/Blocks/index.html +206 -0
  30. package/coverage/lcov-report/components/utils/ContentViewer.vue.html +199 -0
  31. package/coverage/lcov-report/components/utils/MathExpressionEditor.vue.html +919 -0
  32. package/coverage/lcov-report/components/utils/MathLiveWrapper.vue.html +343 -0
  33. package/coverage/lcov-report/components/utils/TinyMCEWrapper.vue.html +271 -0
  34. package/coverage/lcov-report/components/utils/index.html +161 -0
  35. package/coverage/lcov-report/config/index.html +116 -0
  36. package/coverage/lcov-report/config/tinymce.config.js.html +493 -0
  37. package/coverage/lcov-report/favicon.png +0 -0
  38. package/coverage/lcov-report/helpers/MathHelper.ts.html +793 -0
  39. package/coverage/lcov-report/helpers/index.html +116 -0
  40. package/coverage/lcov-report/helpers/tinymce/index.html +116 -0
  41. package/coverage/lcov-report/helpers/tinymce/plugin.ts.html +334 -0
  42. package/coverage/lcov-report/index.html +191 -0
  43. package/coverage/lcov-report/prettify.css +1 -0
  44. package/coverage/lcov-report/prettify.js +2 -0
  45. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  46. package/coverage/lcov-report/sorter.js +196 -0
  47. package/coverage/lcov-report/test/index.html +116 -0
  48. package/coverage/lcov-report/test/mocks.js.html +457 -0
  49. package/coverage/lcov.info +403 -0
  50. package/helpers/tinymce/plugin.ts +1 -1
  51. package/i18n/en-US/components/content/blocks/open_response_collate.ts +1 -0
  52. package/i18n/en-US/components/settings/image.ts +3 -1
  53. package/i18n/es-ES/components/content/blocks/open_response_collate.ts +1 -0
  54. package/i18n/es-ES/components/settings/image.ts +3 -1
  55. package/i18n/sv-SE/components/content/blocks/open_response_collate.ts +1 -0
  56. package/i18n/sv-SE/components/settings/image.ts +3 -1
  57. package/lib/helpers/GlossaryHelper.d.ts +9 -0
  58. package/lib/helpers/GlossaryHelper.js +118 -0
  59. package/lib/helpers/GlossaryTerm.d.ts +10 -0
  60. package/lib/helpers/GlossaryTerm.js +22 -0
  61. package/lib/helpers/MathHelper.d.ts +99 -0
  62. package/lib/helpers/MathHelper.js +194 -0
  63. package/lib/helpers/tinymce/plugin.d.ts +2 -0
  64. package/lib/helpers/tinymce/plugin.js +86 -0
  65. package/lib/i18n/en-US/components/content/blocks/image.d.ts +6 -0
  66. package/lib/i18n/en-US/components/content/blocks/image.js +7 -0
  67. package/lib/i18n/en-US/components/content/blocks/index.d.ts +75 -0
  68. package/lib/i18n/en-US/components/content/blocks/index.js +14 -0
  69. package/lib/i18n/en-US/components/content/blocks/tab.d.ts +5 -0
  70. package/lib/i18n/en-US/components/content/blocks/tab.js +6 -0
  71. package/lib/i18n/en-US/components/content/blocks/table.d.ts +5 -0
  72. package/lib/i18n/en-US/components/content/blocks/table.js +6 -0
  73. package/lib/i18n/en-US/components/content/blocks/user_upload.d.ts +13 -0
  74. package/lib/i18n/en-US/components/content/blocks/user_upload.js +14 -0
  75. package/lib/i18n/en-US/components/content/blocks/video.d.ts +48 -0
  76. package/lib/i18n/en-US/components/content/blocks/video.js +49 -0
  77. package/lib/i18n/en-US/components/content/index.d.ts +77 -0
  78. package/lib/i18n/en-US/components/content/index.js +6 -0
  79. package/lib/i18n/en-US/components/index.d.ts +140 -0
  80. package/lib/i18n/en-US/components/index.js +12 -0
  81. package/lib/i18n/en-US/components/navigation/image.d.ts +5 -0
  82. package/lib/i18n/en-US/components/navigation/image.js +6 -0
  83. package/lib/i18n/en-US/components/navigation/index.d.ts +10 -0
  84. package/lib/i18n/en-US/components/navigation/index.js +8 -0
  85. package/lib/i18n/en-US/components/navigation/user_upload.d.ts +4 -0
  86. package/lib/i18n/en-US/components/navigation/user_upload.js +5 -0
  87. package/lib/i18n/en-US/components/settings/clickable_icon.d.ts +6 -0
  88. package/lib/i18n/en-US/components/settings/clickable_icon.js +7 -0
  89. package/lib/i18n/en-US/components/settings/image.d.ts +2 -0
  90. package/lib/i18n/en-US/components/settings/image.js +3 -0
  91. package/lib/i18n/en-US/components/settings/index.d.ts +39 -0
  92. package/lib/i18n/en-US/components/settings/index.js +14 -0
  93. package/lib/i18n/en-US/components/settings/text_editor.d.ts +8 -0
  94. package/lib/i18n/en-US/components/settings/text_editor.js +9 -0
  95. package/lib/i18n/en-US/components/settings/user_upload.d.ts +12 -0
  96. package/lib/i18n/en-US/components/settings/user_upload.js +13 -0
  97. package/lib/i18n/en-US/components/settings/video.d.ts +13 -0
  98. package/lib/i18n/en-US/components/settings/video.js +14 -0
  99. package/lib/i18n/en-US/components/utils/index.d.ts +15 -0
  100. package/lib/i18n/en-US/components/utils/index.js +6 -0
  101. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.d.ts +13 -0
  102. package/lib/i18n/en-US/components/utils/tiny_mce_wrapper.js +14 -0
  103. package/lib/i18n/en-US/index.d.ts +197 -0
  104. package/lib/i18n/en-US/index.js +16 -0
  105. package/lib/i18n/en-US/modules/index.d.ts +2 -0
  106. package/lib/i18n/en-US/modules/index.js +6 -0
  107. package/lib/i18n/en-US/pages/glossary.d.ts +8 -0
  108. package/lib/i18n/en-US/pages/glossary.js +9 -0
  109. package/lib/i18n/en-US/pages/index.d.ts +13 -0
  110. package/lib/i18n/en-US/pages/index.js +8 -0
  111. package/lib/i18n/en-US/pages/user_upload.d.ts +4 -0
  112. package/lib/i18n/en-US/pages/user_upload.js +5 -0
  113. package/lib/i18n/en-US/shared/content_blocks.d.ts +20 -0
  114. package/lib/i18n/en-US/shared/content_blocks.js +21 -0
  115. package/lib/i18n/en-US/shared/index.d.ts +39 -0
  116. package/lib/i18n/en-US/shared/index.js +10 -0
  117. package/lib/i18n/en-US/shared/menu.d.ts +4 -0
  118. package/lib/i18n/en-US/shared/menu.js +5 -0
  119. package/lib/i18n/en-US/shared/settings.d.ts +15 -0
  120. package/lib/i18n/en-US/shared/settings.js +16 -0
  121. package/lib/i18n/en-US.d.ts +197 -0
  122. package/lib/i18n/en-US.js +15 -0
  123. package/lib/models/UserFileAsset.d.ts +5 -0
  124. package/lib/models/UserFileAsset.js +37 -0
  125. package/package.json +1 -1
  126. package/test/__mocks__/helpersMock.js +3 -0
  127. package/test/__mocks__/modelMock.js +4 -0
@@ -0,0 +1,793 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for helpers/MathHelper.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">helpers</a> MathHelper.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>69/69</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>8/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>17/17</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>68/68</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
303
+ <span class="cline-any cline-yes">5x</span>
304
+ <span class="cline-any cline-yes">5x</span>
305
+ <span class="cline-any cline-yes">5x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-yes">5x</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-neutral">&nbsp;</span>
314
+ <span class="cline-any cline-neutral">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-yes">5x</span>
319
+ <span class="cline-any cline-yes">3x</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-yes">3x</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-neutral">&nbsp;</span>
325
+ <span class="cline-any cline-neutral">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-neutral">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-yes">5x</span>
332
+ <span class="cline-any cline-yes">2x</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-yes">2x</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-yes">5x</span>
345
+ <span class="cline-any cline-yes">2x</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-yes">2x</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-neutral">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-yes">5x</span>
357
+ <span class="cline-any cline-yes">3x</span>
358
+ <span class="cline-any cline-yes">3x</span>
359
+ <span class="cline-any cline-yes">3x</span>
360
+ <span class="cline-any cline-yes">2x</span>
361
+ <span class="cline-any cline-yes">2x</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-neutral">&nbsp;</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-yes">3x</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-yes">5x</span>
378
+ <span class="cline-any cline-yes">3x</span>
379
+ <span class="cline-any cline-yes">3x</span>
380
+ <span class="cline-any cline-yes">3x</span>
381
+ <span class="cline-any cline-yes">2x</span>
382
+ <span class="cline-any cline-yes">2x</span>
383
+ <span class="cline-any cline-yes">2x</span>
384
+ <span class="cline-any cline-yes">1x</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-yes">2x</span>
392
+ <span class="cline-any cline-yes">1x</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-neutral">&nbsp;</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-yes">3x</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-yes">5x</span>
412
+ <span class="cline-any cline-neutral">&nbsp;</span>
413
+ <span class="cline-any cline-yes">2x</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-yes">2x</span>
416
+ <span class="cline-any cline-neutral">&nbsp;</span>
417
+ <span class="cline-any cline-neutral">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-yes">5x</span>
426
+ <span class="cline-any cline-yes">3x</span>
427
+ <span class="cline-any cline-neutral">&nbsp;</span>
428
+ <span class="cline-any cline-yes">3x</span>
429
+ <span class="cline-any cline-yes">3x</span>
430
+ <span class="cline-any cline-yes">2x</span>
431
+ <span class="cline-any cline-yes">3x</span>
432
+ <span class="cline-any cline-neutral">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-neutral">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
438
+ <span class="cline-any cline-neutral">&nbsp;</span>
439
+ <span class="cline-any cline-neutral">&nbsp;</span>
440
+ <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-neutral">&nbsp;</span>
442
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-yes">3x</span>
444
+ <span class="cline-any cline-neutral">&nbsp;</span>
445
+ <span class="cline-any cline-neutral">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-neutral">&nbsp;</span>
448
+ <span class="cline-any cline-neutral">&nbsp;</span>
449
+ <span class="cline-any cline-neutral">&nbsp;</span>
450
+ <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-neutral">&nbsp;</span>
453
+ <span class="cline-any cline-yes">5x</span>
454
+ <span class="cline-any cline-yes">3x</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-yes">3x</span>
457
+ <span class="cline-any cline-yes">3x</span>
458
+ <span class="cline-any cline-yes">2x</span>
459
+ <span class="cline-any cline-yes">2x</span>
460
+ <span class="cline-any cline-yes">2x</span>
461
+ <span class="cline-any cline-neutral">&nbsp;</span>
462
+ <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-neutral">&nbsp;</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-neutral">&nbsp;</span>
467
+ <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-neutral">&nbsp;</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
471
+ <span class="cline-any cline-neutral">&nbsp;</span>
472
+ <span class="cline-any cline-neutral">&nbsp;</span>
473
+ <span class="cline-any cline-yes">3x</span>
474
+ <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
+ <span class="cline-any cline-neutral">&nbsp;</span>
479
+ <span class="cline-any cline-neutral">&nbsp;</span>
480
+ <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
+ <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-yes">5x</span>
484
+ <span class="cline-any cline-yes">2x</span>
485
+ <span class="cline-any cline-neutral">&nbsp;</span>
486
+ <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-neutral">&nbsp;</span>
488
+ <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-neutral">&nbsp;</span>
491
+ <span class="cline-any cline-neutral">&nbsp;</span>
492
+ <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-neutral">&nbsp;</span>
495
+ <span class="cline-any cline-neutral">&nbsp;</span>
496
+ <span class="cline-any cline-neutral">&nbsp;</span>
497
+ <span class="cline-any cline-yes">5x</span>
498
+ <span class="cline-any cline-yes">1x</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-neutral">&nbsp;</span>
501
+ <span class="cline-any cline-neutral">&nbsp;</span>
502
+ <span class="cline-any cline-neutral">&nbsp;</span>
503
+ <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-neutral">&nbsp;</span>
506
+ <span class="cline-any cline-neutral">&nbsp;</span>
507
+ <span class="cline-any cline-neutral">&nbsp;</span>
508
+ <span class="cline-any cline-yes">5x</span>
509
+ <span class="cline-any cline-yes">2x</span>
510
+ <span class="cline-any cline-neutral">&nbsp;</span>
511
+ <span class="cline-any cline-yes">2x</span>
512
+ <span class="cline-any cline-yes">2x</span>
513
+ <span class="cline-any cline-yes">1x</span>
514
+ <span class="cline-any cline-yes">1x</span>
515
+ <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
+ <span class="cline-any cline-yes">1x</span>
518
+ <span class="cline-any cline-neutral">&nbsp;</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-neutral">&nbsp;</span>
524
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-neutral">&nbsp;</span>
526
+ <span class="cline-any cline-neutral">&nbsp;</span>
527
+ <span class="cline-any cline-yes">5x</span>
528
+ <span class="cline-any cline-yes">2x</span>
529
+ <span class="cline-any cline-neutral">&nbsp;</span>
530
+ <span class="cline-any cline-yes">2x</span>
531
+ <span class="cline-any cline-yes">2x</span>
532
+ <span class="cline-any cline-yes">1x</span>
533
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
+ <span class="cline-any cline-yes">1x</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-yes">5x</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import * as mathLiveObject from 'mathlive'
539
+ import * as _ from 'lodash'
540
+ const Mathml2latex = require('mathml-to-latex');
541
+ export default class MathHelper {
542
+ /**
543
+ * expose mathlive object
544
+ */
545
+ public static Mathlive = mathLiveObject
546
+ &nbsp;
547
+ /**
548
+ * containsMathML
549
+ * @param content
550
+ * checks is string contains mathml
551
+ * @return boolean
552
+ *
553
+ */
554
+ public static containsMathML(content: string): boolean {
555
+ const regex = /\&lt;math.*?&gt;.*?&lt;\/math&gt;/s
556
+ &nbsp;
557
+ return regex.exec(content) !== null
558
+ }
559
+ &nbsp;
560
+ /**
561
+ * containsLatex
562
+ * @param content
563
+ * checks is string contains latex
564
+ * @return boolean
565
+ *
566
+ */
567
+ public static containsLatex(content: string): boolean {
568
+ const regex = /\$\$.*?\$\$/g
569
+ &nbsp;
570
+ return regex.exec(content) !== null
571
+ }
572
+ &nbsp;
573
+ /**
574
+ * containSREnhancedLatex
575
+ * @param content
576
+ * checks is string contains latex
577
+ * @return boolean
578
+ *
579
+ */
580
+ public static containSREnhancedLatex(content: string): boolean {
581
+ const regex = /\*\*.*?\*\*/g
582
+ &nbsp;
583
+ return regex.exec(content) !== null
584
+ }
585
+ &nbsp;
586
+ /**
587
+ * convertMathMLToLatex
588
+ * @param content
589
+ * attempts to find mml in content string and replace it with latex equivalent
590
+ * @return string
591
+ */
592
+ public static convertContentMathMLtoLatex(content: string): string {
593
+ const regex = /\&lt;math.*?&gt;.*?&lt;\/math&gt;/g
594
+ const matches = content.match(regex)
595
+ if (matches) {
596
+ matches.forEach((match) =&gt; {
597
+ content = content.replace(
598
+ match,
599
+ `$$$` + Mathml2latex.convert(match) + '$$$'
600
+ )
601
+ })
602
+ }
603
+ &nbsp;
604
+ return content
605
+ }
606
+ &nbsp;
607
+ /**
608
+ * wrapMathContentForTinyMCE
609
+ * @param content
610
+ * wrap content in span with math class for tinymce
611
+ * @return string
612
+ */
613
+ public static wrapMathContentForTinyMCE(content: string): string {
614
+ const regex = /(\*\*|\$\$)(.*?)\1/g
615
+ const matches = content.match(regex)
616
+ if (matches) {
617
+ matches.forEach((match) =&gt; {
618
+ const temp = match.replace(/\$\$/g, '')
619
+ if (match.match(/\$\$.*?\$\$/g) !== null) {
620
+ content = content.replace(
621
+ match,
622
+ "&lt;span class ='windward-math-content'&gt;$$$" +
623
+ temp +
624
+ '$$$&lt;/span&gt;'
625
+ )
626
+ }
627
+ if (match.match(/\*\*(.*?)\*\*/g) !== null) {
628
+ content = content.replace(
629
+ match,
630
+ "&lt;span class ='windward-math-content'&gt;" +
631
+ match +
632
+ '&lt;/span&gt;'
633
+ )
634
+ }
635
+ })
636
+ }
637
+ &nbsp;
638
+ return content
639
+ }
640
+ &nbsp;
641
+ /**
642
+ * check Math Content Wrapped For TMCE
643
+ * @param content
644
+ * checks all content
645
+ * @return string
646
+ */
647
+ public static checkMathContentWrappedForTMCE(content: string): boolean {
648
+ const regex =
649
+ /\&lt;span class ='windward-math-content'&gt;(\*\*|\$\$)(.*?)\1&lt;\/span&gt;/g
650
+ &nbsp;
651
+ return regex.exec(content) !== null
652
+ }
653
+ &nbsp;
654
+ /**
655
+ * convertContentLatexToHtml
656
+ * @param content
657
+ * attempts to find latex in content string and replace it with latex equivalent
658
+ * @return string
659
+ *
660
+ */
661
+ public static convertContentLatexToHtml(content: string): string {
662
+ const regex = /\$\$.*?\$\$/g
663
+ &nbsp;
664
+ const matches = content.match(regex)
665
+ if (matches) {
666
+ matches.forEach((match) =&gt; {
667
+ content = content.replace(
668
+ match,
669
+ '&lt;span tabindex="0" aria-label="' +
670
+ // @ts-ignore
671
+ mathLiveObject.convertLatexToSpeakableText(match) +
672
+ '"&gt; &lt;span tabindex="-1" &gt;' +
673
+ mathLiveObject.convertLatexToMarkup(_.unescape(match)) +
674
+ '&lt;/span&gt;&lt;/span&gt;'
675
+ )
676
+ })
677
+ }
678
+ &nbsp;
679
+ return content
680
+ }
681
+ &nbsp;
682
+ /**
683
+ * convertContentSREnhancedLatexToHtml
684
+ * @param content
685
+ * attempts to find latex in content string and place custom SR text on renderer math div
686
+ * @return string
687
+ *
688
+ */
689
+ public static convertContentSREnhancedLatexToHtml(content: string): string {
690
+ const regex = /\*\*.*?\*\*/g
691
+ &nbsp;
692
+ const matches = content.match(regex)
693
+ if (matches) {
694
+ matches.forEach((match: any) =&gt; {
695
+ const mathObject = JSON.parse(match.replace(/\*\*/g, ''))
696
+ content = content.replace(
697
+ match,
698
+ '&lt;span tabindex="0" aria-label="' +
699
+ mathObject.sr_text +
700
+ '"&gt; &lt;span tabindex="-1" &gt;' +
701
+ mathLiveObject.convertLatexToMarkup(
702
+ '$$' + _.unescape(mathObject.latex) + '$$'
703
+ ) +
704
+ '&lt;/span&gt;&lt;/span&gt;'
705
+ )
706
+ })
707
+ }
708
+ &nbsp;
709
+ return content
710
+ }
711
+ &nbsp;
712
+ /**
713
+ * convertMathContentToHtml
714
+ * @param content
715
+ * attempts to find any math format in content string and convert it to HTML
716
+ * @return string
717
+ *
718
+ */
719
+ public static convertMathContentToHtml(content: string): string {
720
+ return MathHelper.convertContentSREnhancedLatexToHtml(
721
+ MathHelper.convertContentLatexToHtml(
722
+ MathHelper.convertContentMathMLtoLatex(content)
723
+ )
724
+ )
725
+ }
726
+ &nbsp;
727
+ /**
728
+ * convertMathMLToLatex
729
+ * @param content
730
+ * converts mml to latex
731
+ *
732
+ */
733
+ public static convertMathMLToLatex(content: string): string {
734
+ return Mathml2latex.convert(content)
735
+ }
736
+ &nbsp;
737
+ /**
738
+ * parseSREnhancedLatexString
739
+ * @param content
740
+ * parse SR enhanced latex string and return Object
741
+ * @return Object
742
+ *
743
+ */
744
+ public static parseSREnhancedLatexString(content: string): object {
745
+ const regex = /\*\*.*?\*\*/g
746
+ &nbsp;
747
+ const matches = content.match(regex)
748
+ if (matches) {
749
+ const mathobject = JSON.parse(matches[0].replace(/\*\*/g, ''))
750
+ return mathobject
751
+ }
752
+ &nbsp;
753
+ return {}
754
+ }
755
+ &nbsp;
756
+ /**
757
+ * parseSRLatex
758
+ * @param content
759
+ * parse latex expression from string
760
+ * @return any
761
+ *
762
+ */
763
+ public static parseLatexString(content: string): string {
764
+ const regex = /\$\$.*?\$\$/g
765
+ &nbsp;
766
+ const matches = content.match(regex)
767
+ if (matches) {
768
+ return matches[0].replace(/\$\$/g, '')
769
+ }
770
+ &nbsp;
771
+ return ''
772
+ }
773
+ }
774
+ &nbsp;</pre></td></tr></table></pre>
775
+
776
+ <div class='push'></div><!-- for sticky footer -->
777
+ </div><!-- /wrapper -->
778
+ <div class='footer quiet pad2 space-top1 center small'>
779
+ Code coverage generated by
780
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
781
+ at Wed Dec 07 2022 10:19:48 GMT-0500 (Eastern Standard Time)
782
+ </div>
783
+ <script src="../prettify.js"></script>
784
+ <script>
785
+ window.onload = function () {
786
+ prettyPrint();
787
+ };
788
+ </script>
789
+ <script src="../sorter.js"></script>
790
+ <script src="../block-navigation.js"></script>
791
+ </body>
792
+ </html>
793
+