]> git.proxmox.com Git - extjs.git/blame - extjs/packages/core/src/fx/State.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / core / src / fx / State.js
CommitLineData
6527f429
DM
1/**\r
2 * @private\r
3 */\r
4Ext.define('Ext.fx.State', {\r
5\r
6 isAnimatable: {\r
7 'background-color' : true,\r
8 'background-image' : true,\r
9 'background-position': true,\r
10 'border-bottom-color': true,\r
11 'border-bottom-width': true,\r
12 'border-color' : true,\r
13 'border-left-color' : true,\r
14 'border-left-width' : true,\r
15 'border-right-color' : true,\r
16 'border-right-width' : true,\r
17 'border-spacing' : true,\r
18 'border-top-color' : true,\r
19 'border-top-width' : true,\r
20 'border-width' : true,\r
21 'bottom' : true,\r
22 'color' : true,\r
23 'crop' : true,\r
24 'font-size' : true,\r
25 'font-weight' : true,\r
26 'height' : true,\r
27 'left' : true,\r
28 'letter-spacing' : true,\r
29 'line-height' : true,\r
30 'margin-bottom' : true,\r
31 'margin-left' : true,\r
32 'margin-right' : true,\r
33 'margin-top' : true,\r
34 'max-height' : true,\r
35 'max-width' : true,\r
36 'min-height' : true,\r
37 'min-width' : true,\r
38 'opacity' : true,\r
39 'outline-color' : true,\r
40 'outline-offset' : true,\r
41 'outline-width' : true,\r
42 'padding-bottom' : true,\r
43 'padding-left' : true,\r
44 'padding-right' : true,\r
45 'padding-top' : true,\r
46 'right' : true,\r
47 'text-indent' : true,\r
48 'text-shadow' : true,\r
49 'top' : true,\r
50 'vertical-align' : true,\r
51 'visibility' : true,\r
52 'width' : true,\r
53 'word-spacing' : true,\r
54 'z-index' : true,\r
55 'zoom' : true,\r
56 'transform' : true\r
57 },\r
58\r
59 constructor: function(data) {\r
60 this.data = {};\r
61\r
62 this.set(data);\r
63 },\r
64\r
65 setConfig: function(data) {\r
66 this.set(data);\r
67\r
68 return this;\r
69 },\r
70\r
71 setRaw: function(data) {\r
72 this.data = data;\r
73\r
74 return this;\r
75 },\r
76\r
77 clear: function() {\r
78 return this.setRaw({});\r
79 },\r
80\r
81 setTransform: function(name, value) {\r
82 var data = this.data,\r
83 isArray = Ext.isArray(value),\r
84 transform = data.transform,\r
85 ln, key;\r
86\r
87 if (!transform) {\r
88 transform = data.transform = {\r
89 translateX: 0,\r
90 translateY: 0,\r
91 translateZ: 0,\r
92 scaleX: 1,\r
93 scaleY: 1,\r
94 scaleZ: 1,\r
95 rotate: 0,\r
96 rotateX: 0,\r
97 rotateY: 0,\r
98 rotateZ: 0,\r
99 skewX: 0,\r
100 skewY: 0\r
101 };\r
102 }\r
103\r
104 if (typeof name == 'string') {\r
105 switch (name) {\r
106 case 'translate':\r
107 if (isArray) {\r
108 ln = value.length;\r
109\r
110 if (ln == 0) { break; }\r
111\r
112 transform.translateX = value[0];\r
113\r
114 if (ln == 1) { break; }\r
115\r
116 transform.translateY = value[1];\r
117\r
118 if (ln == 2) { break; }\r
119\r
120 transform.translateZ = value[2];\r
121 }\r
122 else {\r
123 transform.translateX = value;\r
124 }\r
125 break;\r
126\r
127 case 'rotate':\r
128 if (isArray) {\r
129 ln = value.length;\r
130\r
131 if (ln == 0) { break; }\r
132\r
133 transform.rotateX = value[0];\r
134\r
135 if (ln == 1) { break; }\r
136\r
137 transform.rotateY = value[1];\r
138\r
139 if (ln == 2) { break; }\r
140\r
141 transform.rotateZ = value[2];\r
142 }\r
143 else {\r
144 transform.rotate = value;\r
145 }\r
146 break;\r
147\r
148\r
149 case 'scale':\r
150 if (isArray) {\r
151 ln = value.length;\r
152\r
153 if (ln == 0) { break; }\r
154\r
155 transform.scaleX = value[0];\r
156\r
157 if (ln == 1) { break; }\r
158\r
159 transform.scaleY = value[1];\r
160\r
161 if (ln == 2) { break; }\r
162\r
163 transform.scaleZ = value[2];\r
164 }\r
165 else {\r
166 transform.scaleX = value;\r
167 transform.scaleY = value;\r
168 }\r
169 break;\r
170\r
171 case 'skew':\r
172 if (isArray) {\r
173 ln = value.length;\r
174\r
175 if (ln == 0) { break; }\r
176\r
177 transform.skewX = value[0];\r
178\r
179 if (ln == 1) { break; }\r
180\r
181 transform.skewY = value[1];\r
182 }\r
183 else {\r
184 transform.skewX = value;\r
185 }\r
186 break;\r
187\r
188 default:\r
189 transform[name] = value;\r
190 }\r
191 }\r
192 else {\r
193 for (key in name) {\r
194 if (name.hasOwnProperty(key)) {\r
195 value = name[key];\r
196\r
197 this.setTransform(key, value);\r
198 }\r
199 }\r
200 }\r
201 },\r
202\r
203 set: function(name, value) {\r
204 var data = this.data,\r
205 key;\r
206\r
207 if (typeof name != 'string') {\r
208 for (key in name) {\r
209 value = name[key];\r
210\r
211 if (key === 'transform') {\r
212 this.setTransform(value);\r
213 }\r
214 else {\r
215 data[key] = value;\r
216 }\r
217 }\r
218 }\r
219 else {\r
220 if (name === 'transform') {\r
221 this.setTransform(value);\r
222 }\r
223 else {\r
224 data[name] = value;\r
225 }\r
226 }\r
227\r
228 return this;\r
229 },\r
230\r
231 unset: function(name) {\r
232 var data = this.data;\r
233\r
234 if (data.hasOwnProperty(name)) {\r
235 delete data[name];\r
236 }\r
237\r
238 return this;\r
239 },\r
240\r
241 getData: function() {\r
242 return this.data;\r
243 }\r
244});\r
245\r
246\r