react-voodoo 2.6.4 → 2.7.0
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/.claude/scheduled_tasks.lock +1 -0
- package/README.md +23 -7
- package/coverage/clover.xml +2221 -0
- package/coverage/coverage-final.json +35 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/comps/Axis.js.html +391 -0
- package/coverage/lcov-report/comps/Draggable.js.html +1180 -0
- package/coverage/lcov-report/comps/Node.js.html +691 -0
- package/coverage/lcov-report/comps/Tweener.js.html +3637 -0
- package/coverage/lcov-report/comps/TweenerContext.js.html +127 -0
- package/coverage/lcov-report/comps/index.html +176 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/hooks/index.html +146 -0
- package/coverage/lcov-report/hooks/useReducedMotion.js.html +172 -0
- package/coverage/lcov-report/hooks/useTweener.js.html +130 -0
- package/coverage/lcov-report/hooks/useVoodoo.js.html +553 -0
- package/coverage/lcov-report/index.html +206 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/spells/asTweener.js.html +361 -0
- package/coverage/lcov-report/spells/index.html +131 -0
- package/coverage/lcov-report/spells/withTweener.js.html +262 -0
- package/coverage/lcov-report/utils/CssTweenAxis.js.html +721 -0
- package/coverage/lcov-report/utils/css/cssUtils.js.html +916 -0
- package/coverage/lcov-report/utils/css/demux/backgroundColor.js.html +115 -0
- package/coverage/lcov-report/utils/css/demux/boxShadow.js.html +115 -0
- package/coverage/lcov-report/utils/css/demux/filter.js.html +724 -0
- package/coverage/lcov-report/utils/css/demux/index.html +176 -0
- package/coverage/lcov-report/utils/css/demux/textShadow.js.html +115 -0
- package/coverage/lcov-report/utils/css/demux/transform.js.html +1006 -0
- package/coverage/lcov-report/utils/css/demux/typed/any.js.html +640 -0
- package/coverage/lcov-report/utils/css/demux/typed/bool.js.html +196 -0
- package/coverage/lcov-report/utils/css/demux/typed/color.js.html +322 -0
- package/coverage/lcov-report/utils/css/demux/typed/index.html +236 -0
- package/coverage/lcov-report/utils/css/demux/typed/length.js.html +562 -0
- package/coverage/lcov-report/utils/css/demux/typed/multi.js.html +298 -0
- package/coverage/lcov-report/utils/css/demux/typed/number.js.html +199 -0
- package/coverage/lcov-report/utils/css/demux/typed/ratio.js.html +199 -0
- package/coverage/lcov-report/utils/css/demux/typed/shadow.js.html +1060 -0
- package/coverage/lcov-report/utils/css/demux/typed/svgAttr.js.html +214 -0
- package/coverage/lcov-report/utils/css/index.html +146 -0
- package/coverage/lcov-report/utils/css/index.js.html +829 -0
- package/coverage/lcov-report/utils/css/prop.js.html +199 -0
- package/coverage/lcov-report/utils/dom.js.html +1309 -0
- package/coverage/lcov-report/utils/index.html +206 -0
- package/coverage/lcov-report/utils/inertia.js.html +2140 -0
- package/coverage/lcov-report/utils/motionPrefs.js.html +262 -0
- package/coverage/lcov-report/utils/react.js.html +199 -0
- package/coverage/lcov-report/utils/spring.js.html +397 -0
- package/coverage/lcov-report/utils/tweenTools.js.html +1003 -0
- package/coverage/lcov.info +4931 -0
- package/dist/react-voodoo.js +1 -1
- package/dist/react-voodoo.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,829 @@
|
|
|
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"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-neutral"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
402
|
+
<span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-no"> </span>
|
|
421
|
+
<span class="cline-any cline-no"> </span>
|
|
422
|
+
<span class="cline-any cline-no"> </span>
|
|
423
|
+
<span class="cline-any cline-no"> </span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-no"> </span>
|
|
426
|
+
<span class="cline-any cline-no"> </span>
|
|
427
|
+
<span class="cline-any cline-neutral"> </span>
|
|
428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-no"> </span>
|
|
430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
431
|
+
<span class="cline-any cline-neutral"> </span>
|
|
432
|
+
<span class="cline-any cline-no"> </span>
|
|
433
|
+
<span class="cline-any cline-neutral"> </span>
|
|
434
|
+
<span class="cline-any cline-no"> </span>
|
|
435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
437
|
+
<span class="cline-any cline-no"> </span>
|
|
438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
439
|
+
<span class="cline-any cline-neutral"> </span>
|
|
440
|
+
<span class="cline-any cline-neutral"> </span>
|
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
|
442
|
+
<span class="cline-any cline-neutral"> </span>
|
|
443
|
+
<span class="cline-any cline-neutral"> </span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
445
|
+
<span class="cline-any cline-neutral"> </span>
|
|
446
|
+
<span class="cline-any cline-neutral"> </span>
|
|
447
|
+
<span class="cline-any cline-neutral"> </span>
|
|
448
|
+
<span class="cline-any cline-neutral"> </span>
|
|
449
|
+
<span class="cline-any cline-neutral"> </span>
|
|
450
|
+
<span class="cline-any cline-no"> </span>
|
|
451
|
+
<span class="cline-any cline-no"> </span>
|
|
452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-neutral"> </span>
|
|
458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
459
|
+
<span class="cline-any cline-neutral"> </span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
|
+
<span class="cline-any cline-no"> </span>
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-no"> </span>
|
|
467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
472
|
+
<span class="cline-any cline-neutral"> </span>
|
|
473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
478
|
+
<span class="cline-any cline-neutral"> </span>
|
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-neutral"> </span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-no"> </span>
|
|
486
|
+
<span class="cline-any cline-no"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-no"> </span>
|
|
490
|
+
<span class="cline-any cline-no"> </span>
|
|
491
|
+
<span class="cline-any cline-no"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-no"> </span>
|
|
494
|
+
<span class="cline-any cline-no"> </span>
|
|
495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
496
|
+
<span class="cline-any cline-no"> </span>
|
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-no"> </span>
|
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
504
|
+
<span class="cline-any cline-no"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
507
|
+
<span class="cline-any cline-no"> </span>
|
|
508
|
+
<span class="cline-any cline-no"> </span>
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-no"> </span>
|
|
511
|
+
<span class="cline-any cline-no"> </span>
|
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
513
|
+
<span class="cline-any cline-no"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
516
|
+
<span class="cline-any cline-no"> </span>
|
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
523
|
+
<span class="cline-any cline-neutral"> </span>
|
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
525
|
+
<span class="cline-any cline-neutral"> </span>
|
|
526
|
+
<span class="cline-any cline-neutral"> </span>
|
|
527
|
+
<span class="cline-any cline-neutral"> </span>
|
|
528
|
+
<span class="cline-any cline-neutral"> </span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-no"> </span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-no"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-no"> </span>
|
|
536
|
+
<span class="cline-any cline-no"> </span>
|
|
537
|
+
<span class="cline-any cline-no"> </span>
|
|
538
|
+
<span class="cline-any cline-no"> </span>
|
|
539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
540
|
+
<span class="cline-any cline-no"> </span>
|
|
541
|
+
<span class="cline-any cline-no"> </span>
|
|
542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
543
|
+
<span class="cline-any cline-no"> </span>
|
|
544
|
+
<span class="cline-any cline-no"> </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-no"> </span>
|
|
551
|
+
<span class="cline-any cline-no"> </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-no"> </span>
|
|
556
|
+
<span class="cline-any cline-neutral"> </span>
|
|
557
|
+
<span class="cline-any cline-no"> </span>
|
|
558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
559
|
+
<span class="cline-any cline-neutral"> </span>
|
|
560
|
+
<span class="cline-any cline-no"> </span>
|
|
561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
562
|
+
<span class="cline-any cline-neutral"> </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 <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.
|
|
571
|
+
*/
|
|
572
|
+
|
|
573
|
+
|
|
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
|
+
|
|
581
|
+
import {svgAttr, length, multi, number, ratio, color, any} from "./demux/typed/(*).js";
|
|
582
|
+
|
|
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
|
+
|
|
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
|
+
|
|
659
|
+
//export const allDemuxers = _allDemuxers;// export for tests
|
|
660
|
+
|
|
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 && 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 < 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
|
+
|
|
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
|
+
|
|
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 ) => {
|
|
714
|
+
<span class="cstat-no" title="statement not covered" > demuxers[key].demux(key, tweenable, css, data, box)</span>
|
|
715
|
+
}
|
|
716
|
+
)
|
|
717
|
+
}
|
|
718
|
+
|
|
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 && Object.keys(tween)</span>
|
|
735
|
+
.forEach(
|
|
736
|
+
<span class="fstat-no" title="function not covered" > ( </span>key ) => {
|
|
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 && Object.keys(fTween)</span>
|
|
753
|
+
.forEach(
|
|
754
|
+
<span class="fstat-no" title="function not covered" > ( </span>key ) => {
|
|
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
|
+
|
|
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 && {};</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 ) => {
|
|
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 && 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 && Object.keys(allPropsById)</span>
|
|
804
|
+
.forEach(
|
|
805
|
+
<span class="fstat-no" title="function not covered" > id</span> => <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
|
+
</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
|
+
|