| 190 | |
| 191 | |
| 192 | function propFilter(props, specialEasing) { |
| 193 | var index, name, easing, value, hooks; |
| 194 | |
| 195 | // camelCase, specialEasing and expand cssHook pass |
| 196 | for (index in props) { |
| 197 | name = jQuery.camelCase(index); |
| 198 | easing = specialEasing[name]; |
| 199 | value = props[index]; |
| 200 | if (jQuery.isArray(value)) { |
| 201 | easing = value[1]; |
| 202 | value = props[index] = value[0]; |
| 203 | } |
| 204 | |
| 205 | if (index !== name) { |
| 206 | props[name] = value; |
| 207 | delete props[index]; |
| 208 | } |
| 209 | |
| 210 | hooks = jQuery.cssHooks[name]; |
| 211 | if (hooks && "expand" in hooks) { |
| 212 | value = hooks.expand(value); |
| 213 | delete props[name]; |
| 214 | |
| 215 | // not quite $.extend, this wont overwrite keys already present. |
| 216 | // also - reusing 'index' from above because we have the correct "name" |
| 217 | for (index in value) { |
| 218 | if (!(index in props)) { |
| 219 | props[index] = value[index]; |
| 220 | specialEasing[index] = easing; |
| 221 | } |
| 222 | } |
| 223 | } else { |
| 224 | specialEasing[name] = easing; |
| 225 | } |
| 226 | } |
| 227 | } |
| 228 | |
| 229 | jQuery.Animation = jQuery.extend(Animation, { |
| 230 | |