ivue 1.0.0 → 1.0.2
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.
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +169 -0
- package/coverage/coverage-final.json +2 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +116 -0
- package/coverage/index.ts.html +1474 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/dist/docs/vite-env.d.ts +7 -0
- package/dist/index.es.js +108 -0
- package/dist/index.umd.js +1 -0
- package/dist/src/index.d.ts +196 -0
- package/dist/vite-env.d.ts +7 -0
- package/docs/docs/.vitepress/dist/404.html +21 -0
- package/docs/docs/.vitepress/dist/api/ivue.html +24 -0
- package/docs/docs/.vitepress/dist/api/propsWithDefaults.html +24 -0
- package/docs/docs/.vitepress/dist/assets/api_ivue.md.BCZ4q_0D.js +1 -0
- package/docs/docs/.vitepress/dist/assets/api_ivue.md.BCZ4q_0D.lean.js +1 -0
- package/docs/docs/.vitepress/dist/assets/api_propsWithDefaults.md.Cr5FwI9o.js +1 -0
- package/docs/docs/.vitepress/dist/assets/api_propsWithDefaults.md.Cr5FwI9o.lean.js +1 -0
- package/docs/docs/.vitepress/dist/assets/app.DRiljpSE.js +1 -0
- package/docs/docs/.vitepress/dist/assets/chunks/framework.CEhE-9HF.js +1 -0
- package/docs/docs/.vitepress/dist/assets/chunks/theme.CldUEgAJ.js +1 -0
- package/docs/docs/.vitepress/dist/assets/index.md.B1vDz5mb.js +1 -0
- package/docs/docs/.vitepress/dist/assets/index.md.B1vDz5mb.lean.js +1 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/docs/docs/.vitepress/dist/assets/pages_getting-started.md.C7qtPEWU.js +8 -0
- package/docs/docs/.vitepress/dist/assets/pages_getting-started.md.C7qtPEWU.lean.js +1 -0
- package/docs/docs/.vitepress/dist/assets/pages_how-it-works.md.DKizt6Ny.js +1 -0
- package/docs/docs/.vitepress/dist/assets/pages_how-it-works.md.DKizt6Ny.lean.js +1 -0
- package/docs/docs/.vitepress/dist/assets/pages_introduction.md.Dkqu-XCz.js +1 -0
- package/docs/docs/.vitepress/dist/assets/pages_introduction.md.Dkqu-XCz.lean.js +1 -0
- package/docs/docs/.vitepress/dist/assets/pages_usage.md.qo7ICfLC.js +17 -0
- package/docs/docs/.vitepress/dist/assets/pages_usage.md.qo7ICfLC.lean.js +17 -0
- package/docs/docs/.vitepress/dist/assets/style.BSZVsGuP.css +1 -0
- package/docs/docs/.vitepress/dist/hashmap.json +1 -0
- package/docs/docs/.vitepress/dist/index.html +24 -0
- package/docs/docs/.vitepress/dist/pages/getting-started.html +31 -0
- package/docs/docs/.vitepress/dist/pages/how-it-works.html +24 -0
- package/docs/docs/.vitepress/dist/pages/introduction.html +24 -0
- package/docs/docs/.vitepress/dist/pages/usage.html +40 -0
- package/docs/docs/components/examples/Counter.vue +1 -1
- package/docs/package.json +8 -7
- package/package.json +1 -1
- package/.eslintrc copy.js +0 -120
|
@@ -0,0 +1,1474 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for index.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> index.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">85% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>136/160</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'>55/55</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">75% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>6/8</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">85% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>136/160</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 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>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
532
|
+
<span class="cline-any cline-neutral"> </span>
|
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-neutral"> </span>
|
|
536
|
+
<span class="cline-any cline-neutral"> </span>
|
|
537
|
+
<span class="cline-any cline-yes">1x</span>
|
|
538
|
+
<span class="cline-any cline-neutral"> </span>
|
|
539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
540
|
+
<span class="cline-any cline-neutral"> </span>
|
|
541
|
+
<span class="cline-any cline-neutral"> </span>
|
|
542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-neutral"> </span>
|
|
544
|
+
<span class="cline-any cline-neutral"> </span>
|
|
545
|
+
<span class="cline-any cline-neutral"> </span>
|
|
546
|
+
<span class="cline-any cline-neutral"> </span>
|
|
547
|
+
<span class="cline-any cline-neutral"> </span>
|
|
548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
552
|
+
<span class="cline-any cline-neutral"> </span>
|
|
553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
554
|
+
<span class="cline-any cline-neutral"> </span>
|
|
555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
556
|
+
<span class="cline-any cline-neutral"> </span>
|
|
557
|
+
<span class="cline-any cline-neutral"> </span>
|
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
560
|
+
<span class="cline-any cline-neutral"> </span>
|
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
563
|
+
<span class="cline-any cline-neutral"> </span>
|
|
564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
570
|
+
<span class="cline-any cline-neutral"> </span>
|
|
571
|
+
<span class="cline-any cline-neutral"> </span>
|
|
572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
574
|
+
<span class="cline-any cline-neutral"> </span>
|
|
575
|
+
<span class="cline-any cline-neutral"> </span>
|
|
576
|
+
<span class="cline-any cline-neutral"> </span>
|
|
577
|
+
<span class="cline-any cline-neutral"> </span>
|
|
578
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
|
+
<span class="cline-any cline-neutral"> </span>
|
|
580
|
+
<span class="cline-any cline-neutral"> </span>
|
|
581
|
+
<span class="cline-any cline-neutral"> </span>
|
|
582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
584
|
+
<span class="cline-any cline-neutral"> </span>
|
|
585
|
+
<span class="cline-any cline-neutral"> </span>
|
|
586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
587
|
+
<span class="cline-any cline-neutral"> </span>
|
|
588
|
+
<span class="cline-any cline-neutral"> </span>
|
|
589
|
+
<span class="cline-any cline-neutral"> </span>
|
|
590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
591
|
+
<span class="cline-any cline-neutral"> </span>
|
|
592
|
+
<span class="cline-any cline-neutral"> </span>
|
|
593
|
+
<span class="cline-any cline-neutral"> </span>
|
|
594
|
+
<span class="cline-any cline-neutral"> </span>
|
|
595
|
+
<span class="cline-any cline-neutral"> </span>
|
|
596
|
+
<span class="cline-any cline-neutral"> </span>
|
|
597
|
+
<span class="cline-any cline-neutral"> </span>
|
|
598
|
+
<span class="cline-any cline-neutral"> </span>
|
|
599
|
+
<span class="cline-any cline-neutral"> </span>
|
|
600
|
+
<span class="cline-any cline-neutral"> </span>
|
|
601
|
+
<span class="cline-any cline-neutral"> </span>
|
|
602
|
+
<span class="cline-any cline-neutral"> </span>
|
|
603
|
+
<span class="cline-any cline-neutral"> </span>
|
|
604
|
+
<span class="cline-any cline-neutral"> </span>
|
|
605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
606
|
+
<span class="cline-any cline-neutral"> </span>
|
|
607
|
+
<span class="cline-any cline-neutral"> </span>
|
|
608
|
+
<span class="cline-any cline-neutral"> </span>
|
|
609
|
+
<span class="cline-any cline-neutral"> </span>
|
|
610
|
+
<span class="cline-any cline-neutral"> </span>
|
|
611
|
+
<span class="cline-any cline-neutral"> </span>
|
|
612
|
+
<span class="cline-any cline-neutral"> </span>
|
|
613
|
+
<span class="cline-any cline-neutral"> </span>
|
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
615
|
+
<span class="cline-any cline-neutral"> </span>
|
|
616
|
+
<span class="cline-any cline-neutral"> </span>
|
|
617
|
+
<span class="cline-any cline-neutral"> </span>
|
|
618
|
+
<span class="cline-any cline-neutral"> </span>
|
|
619
|
+
<span class="cline-any cline-neutral"> </span>
|
|
620
|
+
<span class="cline-any cline-neutral"> </span>
|
|
621
|
+
<span class="cline-any cline-neutral"> </span>
|
|
622
|
+
<span class="cline-any cline-neutral"> </span>
|
|
623
|
+
<span class="cline-any cline-neutral"> </span>
|
|
624
|
+
<span class="cline-any cline-neutral"> </span>
|
|
625
|
+
<span class="cline-any cline-neutral"> </span>
|
|
626
|
+
<span class="cline-any cline-neutral"> </span>
|
|
627
|
+
<span class="cline-any cline-neutral"> </span>
|
|
628
|
+
<span class="cline-any cline-neutral"> </span>
|
|
629
|
+
<span class="cline-any cline-neutral"> </span>
|
|
630
|
+
<span class="cline-any cline-neutral"> </span>
|
|
631
|
+
<span class="cline-any cline-neutral"> </span>
|
|
632
|
+
<span class="cline-any cline-neutral"> </span>
|
|
633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
634
|
+
<span class="cline-any cline-neutral"> </span>
|
|
635
|
+
<span class="cline-any cline-neutral"> </span>
|
|
636
|
+
<span class="cline-any cline-neutral"> </span>
|
|
637
|
+
<span class="cline-any cline-neutral"> </span>
|
|
638
|
+
<span class="cline-any cline-neutral"> </span>
|
|
639
|
+
<span class="cline-any cline-neutral"> </span>
|
|
640
|
+
<span class="cline-any cline-neutral"> </span>
|
|
641
|
+
<span class="cline-any cline-neutral"> </span>
|
|
642
|
+
<span class="cline-any cline-neutral"> </span>
|
|
643
|
+
<span class="cline-any cline-neutral"> </span>
|
|
644
|
+
<span class="cline-any cline-neutral"> </span>
|
|
645
|
+
<span class="cline-any cline-neutral"> </span>
|
|
646
|
+
<span class="cline-any cline-neutral"> </span>
|
|
647
|
+
<span class="cline-any cline-neutral"> </span>
|
|
648
|
+
<span class="cline-any cline-neutral"> </span>
|
|
649
|
+
<span class="cline-any cline-neutral"> </span>
|
|
650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
651
|
+
<span class="cline-any cline-neutral"> </span>
|
|
652
|
+
<span class="cline-any cline-neutral"> </span>
|
|
653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
654
|
+
<span class="cline-any cline-neutral"> </span>
|
|
655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
656
|
+
<span class="cline-any cline-neutral"> </span>
|
|
657
|
+
<span class="cline-any cline-neutral"> </span>
|
|
658
|
+
<span class="cline-any cline-neutral"> </span>
|
|
659
|
+
<span class="cline-any cline-neutral"> </span>
|
|
660
|
+
<span class="cline-any cline-neutral"> </span>
|
|
661
|
+
<span class="cline-any cline-neutral"> </span>
|
|
662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
663
|
+
<span class="cline-any cline-neutral"> </span>
|
|
664
|
+
<span class="cline-any cline-neutral"> </span>
|
|
665
|
+
<span class="cline-any cline-neutral"> </span>
|
|
666
|
+
<span class="cline-any cline-neutral"> </span>
|
|
667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
669
|
+
<span class="cline-any cline-neutral"> </span>
|
|
670
|
+
<span class="cline-any cline-neutral"> </span>
|
|
671
|
+
<span class="cline-any cline-neutral"> </span>
|
|
672
|
+
<span class="cline-any cline-yes">1x</span>
|
|
673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
674
|
+
<span class="cline-any cline-neutral"> </span>
|
|
675
|
+
<span class="cline-any cline-neutral"> </span>
|
|
676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
677
|
+
<span class="cline-any cline-neutral"> </span>
|
|
678
|
+
<span class="cline-any cline-neutral"> </span>
|
|
679
|
+
<span class="cline-any cline-neutral"> </span>
|
|
680
|
+
<span class="cline-any cline-neutral"> </span>
|
|
681
|
+
<span class="cline-any cline-yes">1x</span>
|
|
682
|
+
<span class="cline-any cline-neutral"> </span>
|
|
683
|
+
<span class="cline-any cline-yes">25x</span>
|
|
684
|
+
<span class="cline-any cline-yes">20x</span>
|
|
685
|
+
<span class="cline-any cline-yes">20x</span>
|
|
686
|
+
<span class="cline-any cline-neutral"> </span>
|
|
687
|
+
<span class="cline-any cline-yes">5x</span>
|
|
688
|
+
<span class="cline-any cline-neutral"> </span>
|
|
689
|
+
<span class="cline-any cline-yes">5x</span>
|
|
690
|
+
<span class="cline-any cline-yes">25x</span>
|
|
691
|
+
<span class="cline-any cline-yes">12x</span>
|
|
692
|
+
<span class="cline-any cline-yes">12x</span>
|
|
693
|
+
<span class="cline-any cline-yes">39x</span>
|
|
694
|
+
<span class="cline-any cline-neutral"> </span>
|
|
695
|
+
<span class="cline-any cline-yes">39x</span>
|
|
696
|
+
<span class="cline-any cline-yes">39x</span>
|
|
697
|
+
<span class="cline-any cline-yes">39x</span>
|
|
698
|
+
<span class="cline-any cline-yes">39x</span>
|
|
699
|
+
<span class="cline-any cline-neutral"> </span>
|
|
700
|
+
<span class="cline-any cline-yes">23x</span>
|
|
701
|
+
<span class="cline-any cline-yes">23x</span>
|
|
702
|
+
<span class="cline-any cline-yes">23x</span>
|
|
703
|
+
<span class="cline-any cline-yes">23x</span>
|
|
704
|
+
<span class="cline-any cline-neutral"> </span>
|
|
705
|
+
<span class="cline-any cline-neutral"> </span>
|
|
706
|
+
<span class="cline-any cline-yes">23x</span>
|
|
707
|
+
<span class="cline-any cline-yes">23x</span>
|
|
708
|
+
<span class="cline-any cline-yes">39x</span>
|
|
709
|
+
<span class="cline-any cline-yes">12x</span>
|
|
710
|
+
<span class="cline-any cline-neutral"> </span>
|
|
711
|
+
<span class="cline-any cline-yes">12x</span>
|
|
712
|
+
<span class="cline-any cline-yes">12x</span>
|
|
713
|
+
<span class="cline-any cline-neutral"> </span>
|
|
714
|
+
<span class="cline-any cline-neutral"> </span>
|
|
715
|
+
<span class="cline-any cline-yes">5x</span>
|
|
716
|
+
<span class="cline-any cline-neutral"> </span>
|
|
717
|
+
<span class="cline-any cline-yes">5x</span>
|
|
718
|
+
<span class="cline-any cline-yes">5x</span>
|
|
719
|
+
<span class="cline-any cline-neutral"> </span>
|
|
720
|
+
<span class="cline-any cline-neutral"> </span>
|
|
721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
723
|
+
<span class="cline-any cline-neutral"> </span>
|
|
724
|
+
<span class="cline-any cline-neutral"> </span>
|
|
725
|
+
<span class="cline-any cline-neutral"> </span>
|
|
726
|
+
<span class="cline-any cline-neutral"> </span>
|
|
727
|
+
<span class="cline-any cline-neutral"> </span>
|
|
728
|
+
<span class="cline-any cline-neutral"> </span>
|
|
729
|
+
<span class="cline-any cline-neutral"> </span>
|
|
730
|
+
<span class="cline-any cline-neutral"> </span>
|
|
731
|
+
<span class="cline-any cline-neutral"> </span>
|
|
732
|
+
<span class="cline-any cline-neutral"> </span>
|
|
733
|
+
<span class="cline-any cline-neutral"> </span>
|
|
734
|
+
<span class="cline-any cline-neutral"> </span>
|
|
735
|
+
<span class="cline-any cline-neutral"> </span>
|
|
736
|
+
<span class="cline-any cline-neutral"> </span>
|
|
737
|
+
<span class="cline-any cline-neutral"> </span>
|
|
738
|
+
<span class="cline-any cline-neutral"> </span>
|
|
739
|
+
<span class="cline-any cline-neutral"> </span>
|
|
740
|
+
<span class="cline-any cline-yes">1x</span>
|
|
741
|
+
<span class="cline-any cline-yes">23x</span>
|
|
742
|
+
<span class="cline-any cline-yes">23x</span>
|
|
743
|
+
<span class="cline-any cline-yes">23x</span>
|
|
744
|
+
<span class="cline-any cline-yes">23x</span>
|
|
745
|
+
<span class="cline-any cline-yes">23x</span>
|
|
746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
748
|
+
<span class="cline-any cline-yes">23x</span>
|
|
749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
|
+
<span class="cline-any cline-yes">23x</span>
|
|
752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
755
|
+
<span class="cline-any cline-yes">122x</span>
|
|
756
|
+
<span class="cline-any cline-neutral"> </span>
|
|
757
|
+
<span class="cline-any cline-yes">118x</span>
|
|
758
|
+
<span class="cline-any cline-yes">118x</span>
|
|
759
|
+
<span class="cline-any cline-yes">93x</span>
|
|
760
|
+
<span class="cline-any cline-yes">21x</span>
|
|
761
|
+
<span class="cline-any cline-neutral"> </span>
|
|
762
|
+
<span class="cline-any cline-yes">6x</span>
|
|
763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
764
|
+
<span class="cline-any cline-yes">15x</span>
|
|
765
|
+
<span class="cline-any cline-yes">15x</span>
|
|
766
|
+
<span class="cline-any cline-yes">15x</span>
|
|
767
|
+
<span class="cline-any cline-yes">15x</span>
|
|
768
|
+
<span class="cline-any cline-yes">25x</span>
|
|
769
|
+
<span class="cline-any cline-yes">122x</span>
|
|
770
|
+
<span class="cline-any cline-yes">122x</span>
|
|
771
|
+
<span class="cline-any cline-yes">122x</span>
|
|
772
|
+
<span class="cline-any cline-yes">122x</span>
|
|
773
|
+
<span class="cline-any cline-neutral"> </span>
|
|
774
|
+
<span class="cline-any cline-yes">23x</span>
|
|
775
|
+
<span class="cline-any cline-yes">23x</span>
|
|
776
|
+
<span class="cline-any cline-yes">23x</span>
|
|
777
|
+
<span class="cline-any cline-yes">23x</span>
|
|
778
|
+
<span class="cline-any cline-neutral"> </span>
|
|
779
|
+
<span class="cline-any cline-neutral"> </span>
|
|
780
|
+
<span class="cline-any cline-yes">23x</span>
|
|
781
|
+
<span class="cline-any cline-neutral"> </span>
|
|
782
|
+
<span class="cline-any cline-yes">23x</span>
|
|
783
|
+
<span class="cline-any cline-yes">23x</span>
|
|
784
|
+
<span class="cline-any cline-neutral"> </span>
|
|
785
|
+
<span class="cline-any cline-neutral"> </span>
|
|
786
|
+
<span class="cline-any cline-neutral"> </span>
|
|
787
|
+
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-neutral"> </span>
|
|
789
|
+
<span class="cline-any cline-yes">1x</span>
|
|
790
|
+
<span class="cline-any cline-neutral"> </span>
|
|
791
|
+
<span class="cline-any cline-neutral"> </span>
|
|
792
|
+
<span class="cline-any cline-neutral"> </span>
|
|
793
|
+
<span class="cline-any cline-neutral"> </span>
|
|
794
|
+
<span class="cline-any cline-yes">1x</span>
|
|
795
|
+
<span class="cline-any cline-neutral"> </span>
|
|
796
|
+
<span class="cline-any cline-yes">6x</span>
|
|
797
|
+
<span class="cline-any cline-yes">3x</span>
|
|
798
|
+
<span class="cline-any cline-yes">3x</span>
|
|
799
|
+
<span class="cline-any cline-neutral"> </span>
|
|
800
|
+
<span class="cline-any cline-yes">3x</span>
|
|
801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
802
|
+
<span class="cline-any cline-yes">3x</span>
|
|
803
|
+
<span class="cline-any cline-yes">6x</span>
|
|
804
|
+
<span class="cline-any cline-yes">13x</span>
|
|
805
|
+
<span class="cline-any cline-neutral"> </span>
|
|
806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
807
|
+
<span class="cline-any cline-yes">72x</span>
|
|
808
|
+
<span class="cline-any cline-yes">62x</span>
|
|
809
|
+
<span class="cline-any cline-yes">62x</span>
|
|
810
|
+
<span class="cline-any cline-yes">13x</span>
|
|
811
|
+
<span class="cline-any cline-yes">13x</span>
|
|
812
|
+
<span class="cline-any cline-yes">6x</span>
|
|
813
|
+
<span class="cline-any cline-neutral"> </span>
|
|
814
|
+
<span class="cline-any cline-neutral"> </span>
|
|
815
|
+
<span class="cline-any cline-yes">3x</span>
|
|
816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
817
|
+
<span class="cline-any cline-yes">3x</span>
|
|
818
|
+
<span class="cline-any cline-yes">3x</span>
|
|
819
|
+
<span class="cline-any cline-neutral"> </span>
|
|
820
|
+
<span class="cline-any cline-neutral"> </span>
|
|
821
|
+
<span class="cline-any cline-neutral"> </span>
|
|
822
|
+
<span class="cline-any cline-neutral"> </span>
|
|
823
|
+
<span class="cline-any cline-neutral"> </span>
|
|
824
|
+
<span class="cline-any cline-neutral"> </span>
|
|
825
|
+
<span class="cline-any cline-neutral"> </span>
|
|
826
|
+
<span class="cline-any cline-neutral"> </span>
|
|
827
|
+
<span class="cline-any cline-neutral"> </span>
|
|
828
|
+
<span class="cline-any cline-yes">1x</span>
|
|
829
|
+
<span class="cline-any cline-yes">17x</span>
|
|
830
|
+
<span class="cline-any cline-yes">17x</span>
|
|
831
|
+
<span class="cline-any cline-yes">17x</span>
|
|
832
|
+
<span class="cline-any cline-yes">17x</span>
|
|
833
|
+
<span class="cline-any cline-yes">17x</span>
|
|
834
|
+
<span class="cline-any cline-yes">9x</span>
|
|
835
|
+
<span class="cline-any cline-yes">9x</span>
|
|
836
|
+
<span class="cline-any cline-neutral"> </span>
|
|
837
|
+
<span class="cline-any cline-yes">9x</span>
|
|
838
|
+
<span class="cline-any cline-neutral"> </span>
|
|
839
|
+
<span class="cline-any cline-neutral"> </span>
|
|
840
|
+
<span class="cline-any cline-yes">9x</span>
|
|
841
|
+
<span class="cline-any cline-yes">5x</span>
|
|
842
|
+
<span class="cline-any cline-yes">11x</span>
|
|
843
|
+
<span class="cline-any cline-neutral"> </span>
|
|
844
|
+
<span class="cline-any cline-yes">11x</span>
|
|
845
|
+
<span class="cline-any cline-yes">6x</span>
|
|
846
|
+
<span class="cline-any cline-neutral"> </span>
|
|
847
|
+
<span class="cline-any cline-yes">2x</span>
|
|
848
|
+
<span class="cline-any cline-yes">6x</span>
|
|
849
|
+
<span class="cline-any cline-neutral"> </span>
|
|
850
|
+
<span class="cline-any cline-yes">4x</span>
|
|
851
|
+
<span class="cline-any cline-yes">4x</span>
|
|
852
|
+
<span class="cline-any cline-yes">4x</span>
|
|
853
|
+
<span class="cline-any cline-yes">4x</span>
|
|
854
|
+
<span class="cline-any cline-yes">4x</span>
|
|
855
|
+
<span class="cline-any cline-yes">4x</span>
|
|
856
|
+
<span class="cline-any cline-yes">11x</span>
|
|
857
|
+
<span class="cline-any cline-neutral"> </span>
|
|
858
|
+
<span class="cline-any cline-yes">5x</span>
|
|
859
|
+
<span class="cline-any cline-neutral"> </span>
|
|
860
|
+
<span class="cline-any cline-yes">1x</span>
|
|
861
|
+
<span class="cline-any cline-yes">5x</span>
|
|
862
|
+
<span class="cline-any cline-neutral"> </span>
|
|
863
|
+
<span class="cline-any cline-yes">4x</span>
|
|
864
|
+
<span class="cline-any cline-yes">4x</span>
|
|
865
|
+
<span class="cline-any cline-yes">5x</span>
|
|
866
|
+
<span class="cline-any cline-yes">11x</span>
|
|
867
|
+
<span class="cline-any cline-yes">9x</span>
|
|
868
|
+
<span class="cline-any cline-neutral"> </span>
|
|
869
|
+
<span class="cline-any cline-yes">4x</span>
|
|
870
|
+
<span class="cline-any cline-neutral"> </span>
|
|
871
|
+
<span class="cline-any cline-neutral"> </span>
|
|
872
|
+
<span class="cline-any cline-yes">4x</span>
|
|
873
|
+
<span class="cline-any cline-yes">28x</span>
|
|
874
|
+
<span class="cline-any cline-neutral"> </span>
|
|
875
|
+
<span class="cline-any cline-yes">2x</span>
|
|
876
|
+
<span class="cline-any cline-yes">28x</span>
|
|
877
|
+
<span class="cline-any cline-neutral"> </span>
|
|
878
|
+
<span class="cline-any cline-yes">26x</span>
|
|
879
|
+
<span class="cline-any cline-yes">26x</span>
|
|
880
|
+
<span class="cline-any cline-yes">26x</span>
|
|
881
|
+
<span class="cline-any cline-yes">26x</span>
|
|
882
|
+
<span class="cline-any cline-yes">26x</span>
|
|
883
|
+
<span class="cline-any cline-neutral"> </span>
|
|
884
|
+
<span class="cline-any cline-yes">28x</span>
|
|
885
|
+
<span class="cline-any cline-yes">4x</span>
|
|
886
|
+
<span class="cline-any cline-neutral"> </span>
|
|
887
|
+
<span class="cline-any cline-yes">4x</span>
|
|
888
|
+
<span class="cline-any cline-yes">40x</span>
|
|
889
|
+
<span class="cline-any cline-neutral"> </span>
|
|
890
|
+
<span class="cline-any cline-yes">6x</span>
|
|
891
|
+
<span class="cline-any cline-yes">40x</span>
|
|
892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
893
|
+
<span class="cline-any cline-yes">34x</span>
|
|
894
|
+
<span class="cline-any cline-yes">34x</span>
|
|
895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
896
|
+
<span class="cline-any cline-yes">40x</span>
|
|
897
|
+
<span class="cline-any cline-yes">4x</span>
|
|
898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
900
|
+
<span class="cline-any cline-yes">4x</span>
|
|
901
|
+
<span class="cline-any cline-yes">4x</span>
|
|
902
|
+
<span class="cline-any cline-neutral"> </span>
|
|
903
|
+
<span class="cline-any cline-yes">9x</span>
|
|
904
|
+
<span class="cline-any cline-yes">9x</span>
|
|
905
|
+
<span class="cline-any cline-yes">17x</span>
|
|
906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
907
|
+
<span class="cline-any cline-neutral"> </span>
|
|
908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
909
|
+
<span class="cline-any cline-neutral"> </span>
|
|
910
|
+
<span class="cline-any cline-neutral"> </span>
|
|
911
|
+
<span class="cline-any cline-neutral"> </span>
|
|
912
|
+
<span class="cline-any cline-neutral"> </span>
|
|
913
|
+
<span class="cline-any cline-neutral"> </span>
|
|
914
|
+
<span class="cline-any cline-neutral"> </span>
|
|
915
|
+
<span class="cline-any cline-neutral"> </span>
|
|
916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
917
|
+
<span class="cline-any cline-neutral"> </span>
|
|
918
|
+
<span class="cline-any cline-neutral"> </span>
|
|
919
|
+
<span class="cline-any cline-neutral"> </span>
|
|
920
|
+
<span class="cline-any cline-neutral"> </span>
|
|
921
|
+
<span class="cline-any cline-neutral"> </span>
|
|
922
|
+
<span class="cline-any cline-neutral"> </span>
|
|
923
|
+
<span class="cline-any cline-neutral"> </span>
|
|
924
|
+
<span class="cline-any cline-neutral"> </span>
|
|
925
|
+
<span class="cline-any cline-neutral"> </span>
|
|
926
|
+
<span class="cline-any cline-neutral"> </span>
|
|
927
|
+
<span class="cline-any cline-neutral"> </span>
|
|
928
|
+
<span class="cline-any cline-neutral"> </span>
|
|
929
|
+
<span class="cline-any cline-neutral"> </span>
|
|
930
|
+
<span class="cline-any cline-neutral"> </span>
|
|
931
|
+
<span class="cline-any cline-neutral"> </span>
|
|
932
|
+
<span class="cline-any cline-neutral"> </span>
|
|
933
|
+
<span class="cline-any cline-neutral"> </span>
|
|
934
|
+
<span class="cline-any cline-yes">1x</span>
|
|
935
|
+
<span class="cline-any cline-no"> </span>
|
|
936
|
+
<span class="cline-any cline-neutral"> </span>
|
|
937
|
+
<span class="cline-any cline-no"> </span>
|
|
938
|
+
<span class="cline-any cline-neutral"> </span>
|
|
939
|
+
<span class="cline-any cline-neutral"> </span>
|
|
940
|
+
<span class="cline-any cline-no"> </span>
|
|
941
|
+
<span class="cline-any cline-no"> </span>
|
|
942
|
+
<span class="cline-any cline-no"> </span>
|
|
943
|
+
<span class="cline-any cline-no"> </span>
|
|
944
|
+
<span class="cline-any cline-no"> </span>
|
|
945
|
+
<span class="cline-any cline-no"> </span>
|
|
946
|
+
<span class="cline-any cline-neutral"> </span>
|
|
947
|
+
<span class="cline-any cline-neutral"> </span>
|
|
948
|
+
<span class="cline-any cline-neutral"> </span>
|
|
949
|
+
<span class="cline-any cline-neutral"> </span>
|
|
950
|
+
<span class="cline-any cline-neutral"> </span>
|
|
951
|
+
<span class="cline-any cline-neutral"> </span>
|
|
952
|
+
<span class="cline-any cline-neutral"> </span>
|
|
953
|
+
<span class="cline-any cline-neutral"> </span>
|
|
954
|
+
<span class="cline-any cline-neutral"> </span>
|
|
955
|
+
<span class="cline-any cline-neutral"> </span>
|
|
956
|
+
<span class="cline-any cline-neutral"> </span>
|
|
957
|
+
<span class="cline-any cline-neutral"> </span>
|
|
958
|
+
<span class="cline-any cline-neutral"> </span>
|
|
959
|
+
<span class="cline-any cline-neutral"> </span>
|
|
960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
961
|
+
<span class="cline-any cline-neutral"> </span>
|
|
962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
963
|
+
<span class="cline-any cline-neutral"> </span>
|
|
964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
966
|
+
<span class="cline-any cline-neutral"> </span>
|
|
967
|
+
<span class="cline-any cline-neutral"> </span>
|
|
968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
971
|
+
<span class="cline-any cline-neutral"> </span>
|
|
972
|
+
<span class="cline-any cline-yes">1x</span>
|
|
973
|
+
<span class="cline-any cline-no"> </span>
|
|
974
|
+
<span class="cline-any cline-no"> </span>
|
|
975
|
+
<span class="cline-any cline-no"> </span>
|
|
976
|
+
<span class="cline-any cline-no"> </span>
|
|
977
|
+
<span class="cline-any cline-no"> </span>
|
|
978
|
+
<span class="cline-any cline-neutral"> </span>
|
|
979
|
+
<span class="cline-any cline-no"> </span>
|
|
980
|
+
<span class="cline-any cline-no"> </span>
|
|
981
|
+
<span class="cline-any cline-no"> </span>
|
|
982
|
+
<span class="cline-any cline-neutral"> </span>
|
|
983
|
+
<span class="cline-any cline-no"> </span>
|
|
984
|
+
<span class="cline-any cline-no"> </span>
|
|
985
|
+
<span class="cline-any cline-neutral"> </span>
|
|
986
|
+
<span class="cline-any cline-no"> </span>
|
|
987
|
+
<span class="cline-any cline-no"> </span>
|
|
988
|
+
<span class="cline-any cline-no"> </span>
|
|
989
|
+
<span class="cline-any cline-no"> </span>
|
|
990
|
+
<span class="cline-any cline-no"> </span>
|
|
991
|
+
<span class="cline-any cline-no"> </span>
|
|
992
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable @typescript-eslint/ban-types */
|
|
993
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
994
|
+
import type {
|
|
995
|
+
ComputedRef,
|
|
996
|
+
ExtractPropTypes,
|
|
997
|
+
ToRef,
|
|
998
|
+
UnwrapNestedRefs,
|
|
999
|
+
} from 'vue';
|
|
1000
|
+
import { computed, reactive, toRef } from 'vue';
|
|
1001
|
+
|
|
1002
|
+
/** Types */
|
|
1003
|
+
/**
|
|
1004
|
+
* IVue core reactive instance type with an extended .toRefs() method added.
|
|
1005
|
+
*/
|
|
1006
|
+
export type IVue<T extends AnyClass> = InstanceType<T> & ExtendWithToRefs<T>;
|
|
1007
|
+
|
|
1008
|
+
/**
|
|
1009
|
+
* Extend with .toRefs() method, so that a reactive class can be converted to a composable definition.
|
|
1010
|
+
*/
|
|
1011
|
+
export interface ExtendWithToRefs<T extends AnyClass> {
|
|
1012
|
+
toRefs: IVueToRefsFn<T>;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
/**
|
|
1016
|
+
* .toRefs() method type definition converts reactive class properties to composable .value properties.
|
|
1017
|
+
*/
|
|
1018
|
+
export type IVueToRefsFn<T extends AnyClass> = (
|
|
1019
|
+
props?: (keyof InstanceType<T>)[]
|
|
1020
|
+
) => IVueToRefsFnReturn<InstanceType<T>>;
|
|
1021
|
+
|
|
1022
|
+
/**
|
|
1023
|
+
* Converts a class properties to a composable .value Refs using ToRef vue type,
|
|
1024
|
+
* also knows NOT to convert functions to .value Refs but to leave them as is.
|
|
1025
|
+
*/
|
|
1026
|
+
export type IVueToRefsFnReturn<T = any> = {
|
|
1027
|
+
[K in keyof T]: T[K] extends Function ? T[K] : ToRef<T[K]>;
|
|
1028
|
+
};
|
|
1029
|
+
|
|
1030
|
+
/**
|
|
1031
|
+
* Unwraps the returned Refs of composable method T to a reactive type definition.
|
|
1032
|
+
*/
|
|
1033
|
+
export type UnwrapComposable<T extends (...args: any[]) => any> =
|
|
1034
|
+
UnwrapNestedRefs<ReturnType<T>>;
|
|
1035
|
+
|
|
1036
|
+
/**
|
|
1037
|
+
* Extracts object defined emit types by converting them to a plain interface
|
|
1038
|
+
*/
|
|
1039
|
+
export type ExtractEmitTypes<T extends Record<string, any>> =
|
|
1040
|
+
UnionToIntersection<
|
|
1041
|
+
RecordToUnion<{
|
|
1042
|
+
[K in keyof T]: (evt: K, ...args: Parameters<T[K]>) => void;
|
|
1043
|
+
}>
|
|
1044
|
+
>;
|
|
1045
|
+
|
|
1046
|
+
/**
|
|
1047
|
+
* Extract properties as all assigned properties because they have defaults.
|
|
1048
|
+
*/
|
|
1049
|
+
export type ExtractPropDefaultTypes<O> = RequiredProperties<O>;
|
|
1050
|
+
|
|
1051
|
+
/**
|
|
1052
|
+
* Extend slots interface T with prefixed 'before--' & 'after--' slots to create fully extensible flexible slots.
|
|
1053
|
+
*/
|
|
1054
|
+
export type ExtendSlots<T> = PrefixKeys<T, 'before--'> &
|
|
1055
|
+
T &
|
|
1056
|
+
PrefixKeys<T, 'after--'>;
|
|
1057
|
+
|
|
1058
|
+
/** Helper Types. */
|
|
1059
|
+
export type AnyClass = abstract new (...args: any[]) => any;
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* Descriptors map.
|
|
1063
|
+
*/
|
|
1064
|
+
export type Descriptors = Map<string, PropertyDescriptor>;
|
|
1065
|
+
|
|
1066
|
+
/**
|
|
1067
|
+
* Computeds hash map.
|
|
1068
|
+
*/
|
|
1069
|
+
export type Computeds = Record<string, ComputedRef>;
|
|
1070
|
+
|
|
1071
|
+
/**
|
|
1072
|
+
* Infer paramaters of a constructor function of a Class.
|
|
1073
|
+
*/
|
|
1074
|
+
export type InferredArgs<T> = T extends { new (...args: infer P): any }
|
|
1075
|
+
? P
|
|
1076
|
+
: never[];
|
|
1077
|
+
|
|
1078
|
+
/**
|
|
1079
|
+
* Prefix keys of an interface T with a prefix P.
|
|
1080
|
+
*/
|
|
1081
|
+
export type PrefixKeys<T, P extends string | undefined = undefined> = {
|
|
1082
|
+
[K in Extract<keyof T, string> as P extends string ? `${P}${K}` : K]: T[K];
|
|
1083
|
+
};
|
|
1084
|
+
|
|
1085
|
+
/**
|
|
1086
|
+
* Get Interface's property's function arguments Parmeters<F> parameter by key K
|
|
1087
|
+
*/
|
|
1088
|
+
export type IFnParameter<
|
|
1089
|
+
T extends Record<any, any>,
|
|
1090
|
+
P extends keyof T,
|
|
1091
|
+
K extends number
|
|
1092
|
+
> = FnParameter<ValueOf<T, P>, K>;
|
|
1093
|
+
|
|
1094
|
+
/**
|
|
1095
|
+
* Get function arguments Parmeters<F> parameter by key K
|
|
1096
|
+
*/
|
|
1097
|
+
export type FnParameter<
|
|
1098
|
+
F extends (...args: any[]) => any,
|
|
1099
|
+
K extends number
|
|
1100
|
+
> = Parameters<F>[K];
|
|
1101
|
+
|
|
1102
|
+
/**
|
|
1103
|
+
* Convert Union Type to Intersection Type.
|
|
1104
|
+
*/
|
|
1105
|
+
export type UnionToIntersection<U> = (
|
|
1106
|
+
U extends any ? (k: U) => void : never
|
|
1107
|
+
) extends (k: infer I) => void
|
|
1108
|
+
? I
|
|
1109
|
+
: never;
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* Convert Record to Union Type.
|
|
1113
|
+
*/
|
|
1114
|
+
export type RecordToUnion<T extends Record<string, any>> = T[keyof T];
|
|
1115
|
+
|
|
1116
|
+
/**
|
|
1117
|
+
* Required Properties converts an interface with possible
|
|
1118
|
+
* optionally assigned properties like: { optional?: any; }
|
|
1119
|
+
* to a definitevely defined interface.
|
|
1120
|
+
*/
|
|
1121
|
+
export type RequiredProperties<O> = {
|
|
1122
|
+
[K in keyof O]: ValueOf<ExtractPropTypes<O>, K>;
|
|
1123
|
+
};
|
|
1124
|
+
|
|
1125
|
+
/**
|
|
1126
|
+
* Gets object T property by key [K].
|
|
1127
|
+
*/
|
|
1128
|
+
export type ValueOf<T extends Record<any, any>, K> = T[K];
|
|
1129
|
+
/** Types End. */
|
|
1130
|
+
|
|
1131
|
+
/**
|
|
1132
|
+
* Store all descriptors for each class prototype processed by
|
|
1133
|
+
* @see {getAllClassDescriptors}
|
|
1134
|
+
*/
|
|
1135
|
+
export const descriptorsMap = new Map();
|
|
1136
|
+
|
|
1137
|
+
/**
|
|
1138
|
+
* Get descriptors of an entire class prototype chain as a Map.
|
|
1139
|
+
* Completely emulates JavaScript class inheritance chain for getters and setters.
|
|
1140
|
+
*
|
|
1141
|
+
* @param className
|
|
1142
|
+
* @return {Descriptors}
|
|
1143
|
+
*/
|
|
1144
|
+
export function getAllClassDescriptors(className: AnyClass): Descriptors {
|
|
1145
|
+
/* Retrieve descriptors from cache */
|
|
1146
|
+
if (descriptorsMap.has(className)) {
|
|
1147
|
+
return descriptorsMap.get(className);
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
const savedDescriptors: Descriptors = new Map();
|
|
1151
|
+
|
|
1152
|
+
let prototype = className.prototype;
|
|
1153
|
+
while (prototype.constructor !== Object) {
|
|
1154
|
+
Object.entries(Object.getOwnPropertyDescriptors(prototype)).forEach(
|
|
1155
|
+
([propertyName, currentDescriptor]) => {
|
|
1156
|
+
const savedDescriptor = savedDescriptors.get(propertyName);
|
|
1157
|
+
/** Emulate inheritance chain of getters and setters. */
|
|
1158
|
+
if (
|
|
1159
|
+
savedDescriptor !== currentDescriptor &&
|
|
1160
|
+
(currentDescriptor?.get || currentDescriptor?.set)
|
|
1161
|
+
) {
|
|
1162
|
+
/** Overwrite descriptors if they were already set. */
|
|
1163
|
+
if (savedDescriptor?.get)
|
|
1164
|
+
currentDescriptor.get = savedDescriptor?.get;
|
|
1165
|
+
if (savedDescriptor?.set)
|
|
1166
|
+
currentDescriptor.set = savedDescriptor?.set;
|
|
1167
|
+
|
|
1168
|
+
/** Store descriptors. */
|
|
1169
|
+
savedDescriptors.set(propertyName, currentDescriptor);
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
);
|
|
1173
|
+
/** Walk up the prototype chain. */
|
|
1174
|
+
prototype = Object.getPrototypeOf(prototype);
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
/** Save descriptors in the descriptors map for each class. */
|
|
1178
|
+
descriptorsMap.set(className, savedDescriptors);
|
|
1179
|
+
|
|
1180
|
+
return savedDescriptors;
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Infinite Vue (ivue) class reactive initializer.
|
|
1185
|
+
*
|
|
1186
|
+
* Converts class instance to a reactive object,
|
|
1187
|
+
* where descriptors are converted to computeds.
|
|
1188
|
+
*
|
|
1189
|
+
* You can turn off computed behaviour by adding static
|
|
1190
|
+
* ivue object and setting the getter props to false.
|
|
1191
|
+
* class ClassName {
|
|
1192
|
+
* static ivue = {
|
|
1193
|
+
* getter: false
|
|
1194
|
+
* }
|
|
1195
|
+
* // .getter -> will be a standard JS non-computed getter
|
|
1196
|
+
* get getter () { return 'hello world'; }
|
|
1197
|
+
* }
|
|
1198
|
+
*
|
|
1199
|
+
* @param className Any Class
|
|
1200
|
+
* @param args Class constructor arguments that you would pass to a `new AnyClass(args...)`
|
|
1201
|
+
* @returns {IVue<T>}
|
|
1202
|
+
*/
|
|
1203
|
+
export function ivue<T extends AnyClass>(
|
|
1204
|
+
className: T,
|
|
1205
|
+
...args: InferredArgs<T>
|
|
1206
|
+
): IVue<T> {
|
|
1207
|
+
const descriptors: Descriptors = getAllClassDescriptors(className);
|
|
1208
|
+
const computeds: Computeds | any = descriptors?.size ? {} : null;
|
|
1209
|
+
|
|
1210
|
+
// @ts-expect-error Abstract class initialization
|
|
1211
|
+
const vue = reactive(new className(...args));
|
|
1212
|
+
|
|
1213
|
+
/** Setup descriptors as computeds. */
|
|
1214
|
+
for (const [prop, descriptor] of descriptors) {
|
|
1215
|
+
/* If prop exists on static getter className.ivue[prop]
|
|
1216
|
+
* We do not convert it to computed. Because sometimes
|
|
1217
|
+
* we want a normal getter. */
|
|
1218
|
+
if ((className as any)?.ivue?.[prop] === false) continue;
|
|
1219
|
+
/** Convert descriptor to computed. */
|
|
1220
|
+
Object.defineProperty(vue, prop, {
|
|
1221
|
+
get: descriptor.get
|
|
1222
|
+
? () =>
|
|
1223
|
+
prop in computeds
|
|
1224
|
+
? /** Get the existing computed, because we are in reactive scope, .value will auto unwrap itself. */
|
|
1225
|
+
computeds[prop]
|
|
1226
|
+
: /** Create the computed and return it, because we are in reactive scope, .value will auto unwrap itself. */
|
|
1227
|
+
(computeds[prop] = computed({
|
|
1228
|
+
get: descriptor.get?.bind(vue) as any,
|
|
1229
|
+
set: descriptor.set?.bind(vue),
|
|
1230
|
+
} as any))
|
|
1231
|
+
: undefined,
|
|
1232
|
+
set: descriptor.set?.bind(vue),
|
|
1233
|
+
enumerable: false,
|
|
1234
|
+
});
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
Object.defineProperty(vue, 'toRefs', {
|
|
1238
|
+
get: () => ivueToRefs(vue, descriptors as Descriptors, computeds),
|
|
1239
|
+
enumerable: false,
|
|
1240
|
+
});
|
|
1241
|
+
|
|
1242
|
+
/** Run ivue .init() initializer method, if it exists in the class. */
|
|
1243
|
+
if ('init' in vue) vue.init();
|
|
1244
|
+
|
|
1245
|
+
return vue;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
/**
|
|
1249
|
+
* Store all props for each class prototype processed by:
|
|
1250
|
+
* @see {getAllClassProperties}
|
|
1251
|
+
*/
|
|
1252
|
+
export const propsMap: Map<object, Set<string> | any> = new Map();
|
|
1253
|
+
|
|
1254
|
+
/**
|
|
1255
|
+
* Get properties of an entire class prototype chain as a Map.
|
|
1256
|
+
*/
|
|
1257
|
+
export function getAllClassProperties(obj: object): Set<string> {
|
|
1258
|
+
/* Retrieve props from cache */
|
|
1259
|
+
if (propsMap.has(obj.constructor)) {
|
|
1260
|
+
return propsMap.get(obj.constructor);
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1263
|
+
const originalConstructor = obj.constructor;
|
|
1264
|
+
|
|
1265
|
+
const allProps: Set<string> = new Set();
|
|
1266
|
+
do {
|
|
1267
|
+
Object.getOwnPropertyNames(obj).forEach((prop) => {
|
|
1268
|
+
/* 'caller', 'callee', 'arguments', 'constructor' are
|
|
1269
|
+
* special object properties, so should be skipped. */
|
|
1270
|
+
if (!['caller', 'callee', 'arguments', 'constructor'].includes(prop)) {
|
|
1271
|
+
allProps.add(prop);
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1274
|
+
obj = Object.getPrototypeOf(obj);
|
|
1275
|
+
} while (obj.constructor !== Object);
|
|
1276
|
+
|
|
1277
|
+
/** Save props in the props map. */
|
|
1278
|
+
propsMap.set(originalConstructor, allProps);
|
|
1279
|
+
|
|
1280
|
+
return allProps;
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* Convert reactive ivue class to Vue 3 refs.
|
|
1285
|
+
*
|
|
1286
|
+
* @param vue @see IVue
|
|
1287
|
+
* @param descriptors @see Descriptors
|
|
1288
|
+
* @param computeds @see Computeds
|
|
1289
|
+
* @returns {ExtendWithToRefs<T>['toRefs']}
|
|
1290
|
+
*/
|
|
1291
|
+
export function ivueToRefs<T extends AnyClass>(
|
|
1292
|
+
vue: IVue<T>,
|
|
1293
|
+
descriptors: Descriptors,
|
|
1294
|
+
computeds: Computeds
|
|
1295
|
+
): ExtendWithToRefs<T>['toRefs'] {
|
|
1296
|
+
return function (
|
|
1297
|
+
props?: (keyof InstanceType<T>)[]
|
|
1298
|
+
): IVueToRefsFnReturn<InstanceType<T>> {
|
|
1299
|
+
/** Resulting refs store. */
|
|
1300
|
+
const result: Record<string | number | symbol, any> = {};
|
|
1301
|
+
|
|
1302
|
+
/** Output specific props only, if props are specified. */
|
|
1303
|
+
if (Array.isArray(props) && props.length) {
|
|
1304
|
+
for (let i = 0; i < props.length; i++) {
|
|
1305
|
+
const prop = props[i] as any;
|
|
1306
|
+
/** Handle descriptors. */
|
|
1307
|
+
if (descriptors.has(prop)) {
|
|
1308
|
+
if (prop in computeds) {
|
|
1309
|
+
/** Return vue computed with .value from computeds store. */
|
|
1310
|
+
result[prop] = computeds[prop];
|
|
1311
|
+
} else {
|
|
1312
|
+
/** Initialize & store vue computed. */
|
|
1313
|
+
const descriptor = descriptors.get(prop);
|
|
1314
|
+
result[prop] = computeds[prop] = computed({
|
|
1315
|
+
get: descriptor?.get?.bind(vue) as any,
|
|
1316
|
+
set: descriptor?.set?.bind(vue),
|
|
1317
|
+
} as any);
|
|
1318
|
+
}
|
|
1319
|
+
} else {
|
|
1320
|
+
/** Handle methods. */
|
|
1321
|
+
if (typeof vue[prop] === 'function') {
|
|
1322
|
+
/** Bind method to vue, makes method destructuring point to right instance. */
|
|
1323
|
+
result[prop] = vue[prop].bind(vue);
|
|
1324
|
+
} else {
|
|
1325
|
+
/** Convert simple reactive prop to a Ref. */
|
|
1326
|
+
result[prop] = toRef(vue, prop);
|
|
1327
|
+
}
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
} else {
|
|
1331
|
+
/** Convert all props to refs and leave functions as is. */
|
|
1332
|
+
let allProps: null | Set<string> = new Set(getAllClassProperties(vue));
|
|
1333
|
+
|
|
1334
|
+
/** Convert descriptors (non enumerable by default in JS). */
|
|
1335
|
+
descriptors.forEach((descriptor, prop) => {
|
|
1336
|
+
if (prop in computeds) {
|
|
1337
|
+
/** Return vue computed with .value from computeds store. */
|
|
1338
|
+
result[prop] = computeds[prop];
|
|
1339
|
+
} else {
|
|
1340
|
+
/** Initialize vue computed ref & store it in result. */
|
|
1341
|
+
result[prop] = computeds[prop] = computed({
|
|
1342
|
+
get: descriptor.get?.bind(vue) as any,
|
|
1343
|
+
set: descriptor.set?.bind(vue),
|
|
1344
|
+
} as any);
|
|
1345
|
+
}
|
|
1346
|
+
/** Delete descriptor from props as it was already processed. */
|
|
1347
|
+
allProps?.delete(prop as string);
|
|
1348
|
+
});
|
|
1349
|
+
|
|
1350
|
+
allProps.forEach((prop) => {
|
|
1351
|
+
if (typeof vue[prop] === 'function') {
|
|
1352
|
+
/** Bind method to vue, makes method destructuring point to right instance. */
|
|
1353
|
+
result[prop] = vue[prop].bind(vue);
|
|
1354
|
+
} else {
|
|
1355
|
+
/** Convert simple reactive prop to a Ref. */
|
|
1356
|
+
result[prop] = toRef(vue, prop);
|
|
1357
|
+
}
|
|
1358
|
+
/** Delete prop from props as it was already processed. */
|
|
1359
|
+
allProps?.delete(prop as string);
|
|
1360
|
+
});
|
|
1361
|
+
|
|
1362
|
+
/** Memory optimization. */
|
|
1363
|
+
allProps = null;
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
return result as IVueToRefsFnReturn<InstanceType<T>>;
|
|
1367
|
+
};
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
|
|
1371
|
+
/**
|
|
1372
|
+
* Vue props interface in defineComponent() style.
|
|
1373
|
+
*/
|
|
1374
|
+
export type VuePropsObject = Record<
|
|
1375
|
+
string,
|
|
1376
|
+
{ type: any; default?: any; required?: boolean }
|
|
1377
|
+
>;
|
|
1378
|
+
|
|
1379
|
+
/**
|
|
1380
|
+
* Vue Props with default properties declared as existing and having values.
|
|
1381
|
+
*/
|
|
1382
|
+
export type VuePropsWithDefaults<T extends VuePropsObject> = {
|
|
1383
|
+
[K in keyof T]: {
|
|
1384
|
+
type: T[K]['type'];
|
|
1385
|
+
default: T[K]['default'];
|
|
1386
|
+
required?: boolean;
|
|
1387
|
+
};
|
|
1388
|
+
};
|
|
1389
|
+
|
|
1390
|
+
/**
|
|
1391
|
+
* Determines if the value is a JavaScript Class.
|
|
1392
|
+
* Note that class is a class function in JavaScript.
|
|
1393
|
+
*
|
|
1394
|
+
* @param val Any value
|
|
1395
|
+
* @returns boolean If it's a JavaScript Class returns true
|
|
1396
|
+
*/
|
|
1397
|
+
export <span class="fstat-no" title="function not covered" >function isClass(val: any): boolean {</span>
|
|
1398
|
+
<span class="cstat-no" title="statement not covered" > if (typeof val !== 'function') return false; // Not a function, so not a class function either</span>
|
|
1399
|
+
|
|
1400
|
+
<span class="cstat-no" title="statement not covered" > if (!val.prototype) return false; // Arrow function, so not a class</span>
|
|
1401
|
+
|
|
1402
|
+
// Finally -> distinguish between a normal function and a class function
|
|
1403
|
+
<span class="cstat-no" title="statement not covered" > if (Object.getOwnPropertyDescriptor(val, 'prototype')?.writable) { // Has writable prototype</span>
|
|
1404
|
+
<span class="cstat-no" title="statement not covered" > return false; // Normal function</span>
|
|
1405
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1406
|
+
<span class="cstat-no" title="statement not covered" > return true; // Class -> Not a function</span>
|
|
1407
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1408
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
1409
|
+
|
|
1410
|
+
/**
|
|
1411
|
+
* Creates props with defaults in defineComponent() style.
|
|
1412
|
+
*
|
|
1413
|
+
* Merge defaults regular object with Vue types object
|
|
1414
|
+
* declared in defineComponent() style.
|
|
1415
|
+
*
|
|
1416
|
+
* This is made so that the defaults can be declared "as they are"
|
|
1417
|
+
* without requiring objects to be function callbacks returning an object.
|
|
1418
|
+
*
|
|
1419
|
+
* // You don't need to wrap objects in () => ({ nest: { nest :{} } })
|
|
1420
|
+
* // You can just delcare them normally.
|
|
1421
|
+
* const defaults = {
|
|
1422
|
+
* nest: {
|
|
1423
|
+
* nest
|
|
1424
|
+
* }
|
|
1425
|
+
* }
|
|
1426
|
+
*
|
|
1427
|
+
* This function will create the Vue expected callbacks for Objects, Arrays & Classes
|
|
1428
|
+
* but leave primitive properties and functions intact so that
|
|
1429
|
+
* the final object is fully defineComponent() style compatible.
|
|
1430
|
+
*
|
|
1431
|
+
* @param defaults Regular object of default key -> values
|
|
1432
|
+
* @param typedProps Props declared in defineComponent() style with type and possibly required declared, but without default
|
|
1433
|
+
* @returns Props declared in defineComponent() style with all properties having default property declared.
|
|
1434
|
+
*/
|
|
1435
|
+
export <span class="fstat-no" title="function not covered" >function createPropsWithDefaults<T extends VuePropsObject>(</span>
|
|
1436
|
+
<span class="cstat-no" title="statement not covered" > defaults: Record<string, any>,</span>
|
|
1437
|
+
<span class="cstat-no" title="statement not covered" > typedProps: T</span>
|
|
1438
|
+
<span class="cstat-no" title="statement not covered" >): VuePropsWithDefaults<T> {</span>
|
|
1439
|
+
<span class="cstat-no" title="statement not covered" > for (const prop in typedProps) {</span>
|
|
1440
|
+
<span class="cstat-no" title="statement not covered" > if (typeof defaults?.[prop] === 'object' && defaults?.[prop] !== null) {</span>
|
|
1441
|
+
/** Handle Arrays & Objects -> wrap them with an arrow function. */
|
|
1442
|
+
<span class="cstat-no" title="statement not covered" > typedProps[prop].default = () => defaults?.[prop];</span>
|
|
1443
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1444
|
+
<span class="cstat-no" title="statement not covered" > if (isClass(defaults?.[prop])) {</span>
|
|
1445
|
+
/** Handle JavaScript Classes -> wrap them with an arrow function */
|
|
1446
|
+
<span class="cstat-no" title="statement not covered" > typedProps[prop].default = () => defaults?.[prop];</span>
|
|
1447
|
+
<span class="cstat-no" title="statement not covered" > } else {</span>
|
|
1448
|
+
/** Handle JavaScript Function And All primitive properties -> output directly */
|
|
1449
|
+
<span class="cstat-no" title="statement not covered" > typedProps[prop].default = defaults?.[prop];</span>
|
|
1450
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1451
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1452
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1453
|
+
<span class="cstat-no" title="statement not covered" > return typedProps as VuePropsWithDefaults<T>;</span>
|
|
1454
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
1455
|
+
</pre></td></tr></table></pre>
|
|
1456
|
+
|
|
1457
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
1458
|
+
</div><!-- /wrapper -->
|
|
1459
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
1460
|
+
Code coverage generated by
|
|
1461
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1462
|
+
at 2024-08-10T22:45:44.482Z
|
|
1463
|
+
</div>
|
|
1464
|
+
<script src="prettify.js"></script>
|
|
1465
|
+
<script>
|
|
1466
|
+
window.onload = function () {
|
|
1467
|
+
prettyPrint();
|
|
1468
|
+
};
|
|
1469
|
+
</script>
|
|
1470
|
+
<script src="sorter.js"></script>
|
|
1471
|
+
<script src="block-navigation.js"></script>
|
|
1472
|
+
</body>
|
|
1473
|
+
</html>
|
|
1474
|
+
|