skypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmail
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
246 lines
6.2 KiB
246 lines
6.2 KiB
/** |
|
* @private |
|
*/ |
|
Ext.define('Ext.fx.State', { |
|
|
|
isAnimatable: { |
|
'background-color' : true, |
|
'background-image' : true, |
|
'background-position': true, |
|
'border-bottom-color': true, |
|
'border-bottom-width': true, |
|
'border-color' : true, |
|
'border-left-color' : true, |
|
'border-left-width' : true, |
|
'border-right-color' : true, |
|
'border-right-width' : true, |
|
'border-spacing' : true, |
|
'border-top-color' : true, |
|
'border-top-width' : true, |
|
'border-width' : true, |
|
'bottom' : true, |
|
'color' : true, |
|
'crop' : true, |
|
'font-size' : true, |
|
'font-weight' : true, |
|
'height' : true, |
|
'left' : true, |
|
'letter-spacing' : true, |
|
'line-height' : true, |
|
'margin-bottom' : true, |
|
'margin-left' : true, |
|
'margin-right' : true, |
|
'margin-top' : true, |
|
'max-height' : true, |
|
'max-width' : true, |
|
'min-height' : true, |
|
'min-width' : true, |
|
'opacity' : true, |
|
'outline-color' : true, |
|
'outline-offset' : true, |
|
'outline-width' : true, |
|
'padding-bottom' : true, |
|
'padding-left' : true, |
|
'padding-right' : true, |
|
'padding-top' : true, |
|
'right' : true, |
|
'text-indent' : true, |
|
'text-shadow' : true, |
|
'top' : true, |
|
'vertical-align' : true, |
|
'visibility' : true, |
|
'width' : true, |
|
'word-spacing' : true, |
|
'z-index' : true, |
|
'zoom' : true, |
|
'transform' : true |
|
}, |
|
|
|
constructor: function(data) { |
|
this.data = {}; |
|
|
|
this.set(data); |
|
}, |
|
|
|
setConfig: function(data) { |
|
this.set(data); |
|
|
|
return this; |
|
}, |
|
|
|
setRaw: function(data) { |
|
this.data = data; |
|
|
|
return this; |
|
}, |
|
|
|
clear: function() { |
|
return this.setRaw({}); |
|
}, |
|
|
|
setTransform: function(name, value) { |
|
var data = this.data, |
|
isArray = Ext.isArray(value), |
|
transform = data.transform, |
|
ln, key; |
|
|
|
if (!transform) { |
|
transform = data.transform = { |
|
translateX: 0, |
|
translateY: 0, |
|
translateZ: 0, |
|
scaleX: 1, |
|
scaleY: 1, |
|
scaleZ: 1, |
|
rotate: 0, |
|
rotateX: 0, |
|
rotateY: 0, |
|
rotateZ: 0, |
|
skewX: 0, |
|
skewY: 0 |
|
}; |
|
} |
|
|
|
if (typeof name == 'string') { |
|
switch (name) { |
|
case 'translate': |
|
if (isArray) { |
|
ln = value.length; |
|
|
|
if (ln == 0) { break; } |
|
|
|
transform.translateX = value[0]; |
|
|
|
if (ln == 1) { break; } |
|
|
|
transform.translateY = value[1]; |
|
|
|
if (ln == 2) { break; } |
|
|
|
transform.translateZ = value[2]; |
|
} |
|
else { |
|
transform.translateX = value; |
|
} |
|
break; |
|
|
|
case 'rotate': |
|
if (isArray) { |
|
ln = value.length; |
|
|
|
if (ln == 0) { break; } |
|
|
|
transform.rotateX = value[0]; |
|
|
|
if (ln == 1) { break; } |
|
|
|
transform.rotateY = value[1]; |
|
|
|
if (ln == 2) { break; } |
|
|
|
transform.rotateZ = value[2]; |
|
} |
|
else { |
|
transform.rotate = value; |
|
} |
|
break; |
|
|
|
|
|
case 'scale': |
|
if (isArray) { |
|
ln = value.length; |
|
|
|
if (ln == 0) { break; } |
|
|
|
transform.scaleX = value[0]; |
|
|
|
if (ln == 1) { break; } |
|
|
|
transform.scaleY = value[1]; |
|
|
|
if (ln == 2) { break; } |
|
|
|
transform.scaleZ = value[2]; |
|
} |
|
else { |
|
transform.scaleX = value; |
|
transform.scaleY = value; |
|
} |
|
break; |
|
|
|
case 'skew': |
|
if (isArray) { |
|
ln = value.length; |
|
|
|
if (ln == 0) { break; } |
|
|
|
transform.skewX = value[0]; |
|
|
|
if (ln == 1) { break; } |
|
|
|
transform.skewY = value[1]; |
|
} |
|
else { |
|
transform.skewX = value; |
|
} |
|
break; |
|
|
|
default: |
|
transform[name] = value; |
|
} |
|
} |
|
else { |
|
for (key in name) { |
|
if (name.hasOwnProperty(key)) { |
|
value = name[key]; |
|
|
|
this.setTransform(key, value); |
|
} |
|
} |
|
} |
|
}, |
|
|
|
set: function(name, value) { |
|
var data = this.data, |
|
key; |
|
|
|
if (typeof name != 'string') { |
|
for (key in name) { |
|
value = name[key]; |
|
|
|
if (key === 'transform') { |
|
this.setTransform(value); |
|
} |
|
else { |
|
data[key] = value; |
|
} |
|
} |
|
} |
|
else { |
|
if (name === 'transform') { |
|
this.setTransform(value); |
|
} |
|
else { |
|
data[name] = value; |
|
} |
|
} |
|
|
|
return this; |
|
}, |
|
|
|
unset: function(name) { |
|
var data = this.data; |
|
|
|
if (data.hasOwnProperty(name)) { |
|
delete data[name]; |
|
} |
|
|
|
return this; |
|
}, |
|
|
|
getData: function() { |
|
return this.data; |
|
} |
|
}); |
|
|
|
|
|
|