react-voodoo 2.7.1 → 2.7.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.
Files changed (54) hide show
  1. package/package.json +1 -1
  2. package/.claude/scheduled_tasks.lock +0 -1
  3. package/coverage/clover.xml +0 -2221
  4. package/coverage/coverage-final.json +0 -35
  5. package/coverage/lcov-report/base.css +0 -224
  6. package/coverage/lcov-report/block-navigation.js +0 -87
  7. package/coverage/lcov-report/comps/Axis.js.html +0 -391
  8. package/coverage/lcov-report/comps/Draggable.js.html +0 -1180
  9. package/coverage/lcov-report/comps/Node.js.html +0 -691
  10. package/coverage/lcov-report/comps/Tweener.js.html +0 -3637
  11. package/coverage/lcov-report/comps/TweenerContext.js.html +0 -127
  12. package/coverage/lcov-report/comps/index.html +0 -176
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/hooks/index.html +0 -146
  15. package/coverage/lcov-report/hooks/useReducedMotion.js.html +0 -172
  16. package/coverage/lcov-report/hooks/useTweener.js.html +0 -130
  17. package/coverage/lcov-report/hooks/useVoodoo.js.html +0 -553
  18. package/coverage/lcov-report/index.html +0 -206
  19. package/coverage/lcov-report/prettify.css +0 -1
  20. package/coverage/lcov-report/prettify.js +0 -2
  21. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. package/coverage/lcov-report/sorter.js +0 -210
  23. package/coverage/lcov-report/spells/asTweener.js.html +0 -361
  24. package/coverage/lcov-report/spells/index.html +0 -131
  25. package/coverage/lcov-report/spells/withTweener.js.html +0 -262
  26. package/coverage/lcov-report/utils/CssTweenAxis.js.html +0 -721
  27. package/coverage/lcov-report/utils/css/cssUtils.js.html +0 -916
  28. package/coverage/lcov-report/utils/css/demux/backgroundColor.js.html +0 -115
  29. package/coverage/lcov-report/utils/css/demux/boxShadow.js.html +0 -115
  30. package/coverage/lcov-report/utils/css/demux/filter.js.html +0 -724
  31. package/coverage/lcov-report/utils/css/demux/index.html +0 -176
  32. package/coverage/lcov-report/utils/css/demux/textShadow.js.html +0 -115
  33. package/coverage/lcov-report/utils/css/demux/transform.js.html +0 -1006
  34. package/coverage/lcov-report/utils/css/demux/typed/any.js.html +0 -640
  35. package/coverage/lcov-report/utils/css/demux/typed/bool.js.html +0 -196
  36. package/coverage/lcov-report/utils/css/demux/typed/color.js.html +0 -322
  37. package/coverage/lcov-report/utils/css/demux/typed/index.html +0 -236
  38. package/coverage/lcov-report/utils/css/demux/typed/length.js.html +0 -562
  39. package/coverage/lcov-report/utils/css/demux/typed/multi.js.html +0 -298
  40. package/coverage/lcov-report/utils/css/demux/typed/number.js.html +0 -199
  41. package/coverage/lcov-report/utils/css/demux/typed/ratio.js.html +0 -199
  42. package/coverage/lcov-report/utils/css/demux/typed/shadow.js.html +0 -1060
  43. package/coverage/lcov-report/utils/css/demux/typed/svgAttr.js.html +0 -214
  44. package/coverage/lcov-report/utils/css/index.html +0 -146
  45. package/coverage/lcov-report/utils/css/index.js.html +0 -829
  46. package/coverage/lcov-report/utils/css/prop.js.html +0 -199
  47. package/coverage/lcov-report/utils/dom.js.html +0 -1309
  48. package/coverage/lcov-report/utils/index.html +0 -206
  49. package/coverage/lcov-report/utils/inertia.js.html +0 -2140
  50. package/coverage/lcov-report/utils/motionPrefs.js.html +0 -262
  51. package/coverage/lcov-report/utils/react.js.html +0 -199
  52. package/coverage/lcov-report/utils/spring.js.html +0 -397
  53. package/coverage/lcov-report/utils/tweenTools.js.html +0 -1003
  54. package/coverage/lcov.info +0 -4931
@@ -1,829 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for utils/css/index.js</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">utils/css</a> index.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/49</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/41</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/10</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/47</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 low'></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></td><td class="line-coverage quiet"><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-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-no">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</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-no">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
- <span class="cline-any cline-no">&nbsp;</span>
423
- <span class="cline-any cline-no">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-no">&nbsp;</span>
426
- <span class="cline-any cline-no">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-no">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-no">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</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-no">&nbsp;</span>
451
- <span class="cline-any cline-no">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</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-no">&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-no">&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-neutral">&nbsp;</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-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-no">&nbsp;</span>
486
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
- <span class="cline-any cline-no">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
- <span class="cline-any cline-no">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-no">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
508
- <span class="cline-any cline-no">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-no">&nbsp;</span>
511
- <span class="cline-any cline-no">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-no">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-no">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-no">&nbsp;</span>
532
- <span class="cline-any cline-no">&nbsp;</span>
533
- <span class="cline-any cline-no">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-no">&nbsp;</span>
536
- <span class="cline-any cline-no">&nbsp;</span>
537
- <span class="cline-any cline-no">&nbsp;</span>
538
- <span class="cline-any cline-no">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-no">&nbsp;</span>
541
- <span class="cline-any cline-no">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-no">&nbsp;</span>
544
- <span class="cline-any cline-no">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-no">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-no">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-no">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*
563
- * Copyright (c) 2022-2023 Braun Nathanael
564
- *
565
- * This project is dual licensed under one of the following licenses:
566
- * - Creative Commons Attribution-NoDerivatives 4.0 International License.
567
- * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3
568
- *
569
- * You should have received a copy of theses licenses along with this work.
570
- * If not, see &lt;http://creativecommons.org/licenses/by-nd/4.0/&gt; or &lt;http://www.gnu.org/licenses/agpl-3.0.txt&gt;.
571
- */
572
- &nbsp;
573
- &nbsp;
574
- import {addCss} from "../tweenTools";
575
- import {
576
- expandShorthandProperty, isShorthandProperty, isValidDeclaration, props
577
- } from "./cssUtils";
578
- import cssDemuxers from "./demux/(*).js";
579
- export * as allDemuxers from "./demux/(**/*).js";
580
- &nbsp;
581
- import {svgAttr, length, multi, number, ratio, color, any} from "./demux/typed/(*).js";
582
- &nbsp;
583
- /**
584
- * CSS mux/demux layer — the bridge between numeric interpolation and CSS strings.
585
- *
586
- * "Demux" (parse → numeric): converts CSS property values in a tween descriptor's
587
- * `apply` object into additive numeric components stored in `tweenRefMaps`. Each
588
- * component gets a compound key encoding the property, layer index, transform
589
- * function, and unit index (e.g. `transform_0_translateX_9`).
590
- *
591
- * "Mux" (numeric → CSS string): the inverse pass, called every RAF frame. Reads the
592
- * accumulated numeric values from `tweenRefMaps` and reconstructs CSS strings
593
- * (including `calc()` expressions for multi-unit values) into `tweenRefCSS`.
594
- *
595
- * Each CSS property has a typed handler registered below in `cssDemux`. Complex
596
- * properties (transform, boxShadow, filter, backgroundColor, textShadow) have
597
- * dedicated demux modules under `src/utils/css/demux/`. Simpler properties are
598
- * handled by the typed primitives: length, number, ratio, color, etc.
599
- */
600
- &nbsp;
601
- /**
602
- * Maps CSS property names to their demuxer handler objects. Each handler implements
603
- * at minimum `mux(key, value, target, data, initials, noPropLock, reOrder)` for
604
- * demuxing (parse time) and `demux(key, tweenable, target, data, box)` for muxing
605
- * (render time). Additional complex demuxers (transform, filter, etc.) are merged
606
- * in from the `./demux/` directory via the glob import above.
607
- */
608
- const cssDemux = <span class="cstat-no" title="statement not covered" >{</span>
609
- ...cssDemuxers,
610
- height : length,
611
- width : length,
612
- top : length,
613
- left : length,
614
- right : length,
615
- bottom : length,
616
- marginTop : length,
617
- marginLeft : length,
618
- marginRight : length,
619
- marginBottom : length,
620
- paddingTop : length,
621
- paddingLeft : length,
622
- paddingRight : length,
623
- paddingBottom : length,
624
- borderRadius : length,
625
- borderTopColor : color,
626
- borderLeftColor : color,
627
- borderRightColor : color,
628
- borderBottomColor: color,
629
- borderTopWidth : length,
630
- borderLeftWidth : length,
631
- borderRightWidth : length,
632
- borderBottomWidth: length,
633
- transformOrigin : multi(2),
634
- zIndex : number,
635
- opacity : ratio,
636
-
637
- // SVG presentation attributes (set via element.style)
638
- fill : color,
639
- stroke : color,
640
- strokeWidth : length,
641
- strokeOpacity : ratio,
642
- fillOpacity : ratio,
643
- strokeDashoffset: length,
644
-
645
- // SVG geometry attributes (set via element.setAttribute — see svgAttr handler)
646
- cx: svgAttr,
647
- cy: svgAttr,
648
- r : svgAttr,
649
- rx: svgAttr,
650
- ry: svgAttr,
651
- x : svgAttr,
652
- y : svgAttr,
653
- x1: svgAttr,
654
- y1: svgAttr,
655
- x2: svgAttr,
656
- y2: svgAttr,
657
- };
658
- &nbsp;
659
- //export const allDemuxers = _allDemuxers;// export for tests
660
- &nbsp;
661
- /**
662
- * Fallback type detection for CSS properties not explicitly listed in cssDemux.
663
- * Inspects the MDN-sourced `props` database for the property's value types and
664
- * returns the best matching demuxer handler. Falls back to `any` (string passthrough)
665
- * for properties whose types are unrecognised or not animatable.
666
- */
667
- export function <span class="fstat-no" title="function not covered" >getMuxerTypeOfProperty(</span> property ) {
668
- let type = <span class="cstat-no" title="statement not covered" >props[property],</span>
669
- types = <span class="cstat-no" title="statement not covered" >type &amp;&amp; type.types;</span>
670
- <span class="cstat-no" title="statement not covered" > if ( !types ) {</span>
671
- <span class="cstat-no" title="statement not covered" > return any;</span>
672
- }
673
- <span class="cstat-no" title="statement not covered" > for ( let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; types.length; i++ ) {</span>
674
- <span class="cstat-no" title="statement not covered" > switch ( types[i] ) {</span>
675
- case "length":
676
- case "length-percentage-calc":
677
- <span class="cstat-no" title="statement not covered" > return length;</span>
678
- case "number":
679
- case "integer":
680
- <span class="cstat-no" title="statement not covered" > return number;</span>
681
- case "color":
682
- <span class="cstat-no" title="statement not covered" > return color;</span>
683
- }
684
- }
685
- <span class="cstat-no" title="statement not covered" > return any;</span>
686
- };
687
- &nbsp;
688
- /**
689
- * Decrement the ref count for a single numeric component and clean up its bookkeeping
690
- * if the count reaches zero. `twKey` encodes the full property+layer+unit hierarchy
691
- * (e.g. `transform_0_translateX_9`); the first segment (`path[0]`) identifies the
692
- * demuxer responsible for this key so the correct `release()` implementation is called.
693
- *
694
- * When `keepValues` is true the numeric slot is left in tweenRefMaps so any post-
695
- * completion CSS snapshot remains accurate (used by pushAnim's keepResults path).
696
- */
697
- export function <span class="fstat-no" title="function not covered" >clearTweenableValue(</span> cssKey, twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {
698
- let path = <span class="cstat-no" title="statement not covered" >twKey.split('_'),</span> tmpKey;// not optimal at all
699
- <span class="cstat-no" title="statement not covered" > muxerMap[path[0]]?.release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)</span>
700
- }
701
- &nbsp;
702
- /**
703
- * Mux pass — reconstruct CSS strings from accumulated numeric state.
704
- *
705
- * Iterates all active demuxer instances for this target and calls each one's
706
- * `demux()` to write the corresponding CSS string into `css`. This is called
707
- * every RAF frame (via `_updateTweenRef`) and on every scroll event.
708
- * The `box` object provides viewport dimensions for box-relative units (bw, bh, bz).
709
- */
710
- export function <span class="fstat-no" title="function not covered" >muxToCss(</span> tweenable, css, demuxers, data, box ) {
711
- <span class="cstat-no" title="statement not covered" > Object.keys(demuxers)</span>
712
- .forEach(
713
- <span class="fstat-no" title="function not covered" > ( </span>key ) =&gt; {
714
- <span class="cstat-no" title="statement not covered" > demuxers[key].demux(key, tweenable, css, data, box)</span>
715
- }
716
- )
717
- }
718
- &nbsp;
719
- /**
720
- * Demux pass — parse a CSS `apply` object into numeric interpolatable components.
721
- *
722
- * For each key in `tween` (the `apply` map from a tween descriptor):
723
- * - If the key is in cssDemux, the registered handler's `mux()` is called, which
724
- * populates `deMuxedTween` with numeric slot entries and `initials` with their
725
- * default (zero) values.
726
- * - Shorthand properties (e.g. `margin`) are expanded via cssUtils before processing.
727
- * - Unknown properties fall through to the `any` handler (string passthrough).
728
- *
729
- * Returns `excluded` — an object of properties that could not be demuxed (passed
730
- * straight into `tweenRefCSS` as literal CSS strings).
731
- */
732
- export function <span class="fstat-no" title="function not covered" >deMuxTween(</span> tween, deMuxedTween, initials, data, demuxers, noPropLock, reOrder ) {
733
- let fTween = <span class="cstat-no" title="statement not covered" >{},</span> excluded = <span class="cstat-no" title="statement not covered" >{};</span>
734
- <span class="cstat-no" title="statement not covered" > tween &amp;&amp; Object.keys(tween)</span>
735
- .forEach(
736
- <span class="fstat-no" title="function not covered" > ( </span>key ) =&gt; {
737
- <span class="cstat-no" title="statement not covered" > if ( cssDemux[key] )</span>
738
- <span class="cstat-no" title="statement not covered" > fTween[key] = tween[key];</span>
739
- else <span class="cstat-no" title="statement not covered" >if ( isValidDeclaration(key, tween[key]) ) {</span>
740
-
741
- <span class="cstat-no" title="statement not covered" > if ( isShorthandProperty(key) ) {</span>
742
- <span class="cstat-no" title="statement not covered" > expandShorthandProperty(key, tween[key], fTween);</span>
743
- }
744
- else <span class="cstat-no" title="statement not covered" >fTween[key] = tween[key];</span>
745
- }
746
- else {
747
- //excluded[key] = tween[key];
748
- <span class="cstat-no" title="statement not covered" > fTween[key] = tween[key];</span>
749
- }
750
- });
751
-
752
- <span class="cstat-no" title="statement not covered" > fTween &amp;&amp; Object.keys(fTween)</span>
753
- .forEach(
754
- <span class="fstat-no" title="function not covered" > ( </span>key ) =&gt; {
755
- <span class="cstat-no" title="statement not covered" > if ( cssDemux[key] ) {//key, value, target, data, initials</span>
756
- <span class="cstat-no" title="statement not covered" > (demuxers[key] = cssDemux[key]).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)</span>
757
- }
758
- else <span class="cstat-no" title="statement not covered" >if ( isValidDeclaration(key, tween[key]) )</span>
759
- <span class="cstat-no" title="statement not covered" > (demuxers[key] = getMuxerTypeOfProperty(key)).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)</span>
760
- else
761
- <span class="cstat-no" title="statement not covered" > (demuxers[key] = any).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)</span>
762
- }
763
- );
764
- <span class="cstat-no" title="statement not covered" > return excluded;</span>
765
- }
766
- &nbsp;
767
- /**
768
- * Process a full tween line (array of tween descriptors) and register demuxers for
769
- * every property referenced by any descriptor in the line.
770
- *
771
- * `allPropsById` accumulates a merged CSS descriptor per target that covers all
772
- * properties touched anywhere in the timeline. After processing all descriptors,
773
- * a second pass calls `deMuxTween(allPropsById[id])` without noPropLock to
774
- * initialize the prop-lock reference counts — this ensures demuxers know the full
775
- * set of properties they will need to reconstruct even before the animation reaches
776
- * a particular keyframe.
777
- */
778
- export function <span class="fstat-no" title="function not covered" >deMuxLine(</span> tweenLine, initials, data, demuxers, noPropLock ) {
779
- <span class="cstat-no" title="statement not covered" > noPropLock = noPropLock &amp;&amp; {};</span>
780
- let allPropsById = <span class="cstat-no" title="statement not covered" >{},</span>
781
- twAxis = <span class="cstat-no" title="statement not covered" >tweenLine.reduce(</span>
782
- <span class="fstat-no" title="function not covered" > ( </span>line, tween ) =&gt; {
783
- let demuxedTween = <span class="cstat-no" title="statement not covered" >{};</span>
784
- <span class="cstat-no" title="statement not covered" > demuxers[tween.target] = demuxers[tween.target] || {};</span>
785
- <span class="cstat-no" title="statement not covered" > initials[tween.target] = initials[tween.target] || {};</span>
786
- <span class="cstat-no" title="statement not covered" > data[tween.target] = data[tween.target] || {};</span>
787
-
788
- <span class="cstat-no" title="statement not covered" > if ( !tween.type || tween.type === "Tween" ) {</span>
789
- <span class="cstat-no" title="statement not covered" > !noPropLock &amp;&amp; addCss(allPropsById[tween.target] = allPropsById[tween.target] || {}, tween.apply);</span>
790
- //console.log("merged", tween.apply)
791
- <span class="cstat-no" title="statement not covered" > deMuxTween(tween.apply, demuxedTween, initials[tween.target], data[tween.target], demuxers[tween.target], true);</span>
792
- <span class="cstat-no" title="statement not covered" > line.push(</span>
793
- {
794
- ...tween,
795
- apply: demuxedTween
796
- });
797
- }
798
- else <span class="cstat-no" title="statement not covered" >line.push({ ...tween });</span>
799
- <span class="cstat-no" title="statement not covered" > return line</span>
800
- },
801
- []
802
- );
803
- <span class="cstat-no" title="statement not covered" > !noPropLock &amp;&amp; Object.keys(allPropsById)</span>
804
- .forEach(
805
- <span class="fstat-no" title="function not covered" > id</span> =&gt; <span class="cstat-no" title="statement not covered" >deMuxTween(allPropsById[id], {}, {}, data[id], demuxers[id])</span>
806
- )
807
- ;
808
- <span class="cstat-no" title="statement not covered" > return twAxis;</span>
809
- }
810
- &nbsp;</pre></td></tr></table></pre>
811
-
812
- <div class='push'></div><!-- for sticky footer -->
813
- </div><!-- /wrapper -->
814
- <div class='footer quiet pad2 space-top1 center small'>
815
- Code coverage generated by
816
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
817
- at 2026-06-06T09:33:16.802Z
818
- </div>
819
- <script src="../../prettify.js"></script>
820
- <script>
821
- window.onload = function () {
822
- prettyPrint();
823
- };
824
- </script>
825
- <script src="../../sorter.js"></script>
826
- <script src="../../block-navigation.js"></script>
827
- </body>
828
- </html>
829
-