1 | 'use strict';
|
2 |
|
3 | var cssSelector = require('./styleSelector'),
|
4 | importantSelector = cssSelector('<!important>', [ 2, 0, 0, 0 ]),
|
5 | property = require('./cssProperty');
|
6 |
|
7 | function getProperty(style, name, selector) {
|
8 | var value = style[name],
|
9 | sel = style._importants[name] ? importantSelector : selector;
|
10 |
|
11 | return property(name, value, sel);
|
12 | }
|
13 |
|
14 |
|
15 | module.exports = function (el, style, selector) {
|
16 | var i,
|
17 | l = style.length,
|
18 | name,
|
19 | prop,
|
20 | existing,
|
21 | winner;
|
22 |
|
23 | for (i = 0; i < l; i++) {
|
24 | name = style[i];
|
25 | prop = getProperty(style, name, selector);
|
26 | existing = el.styleProps[name];
|
27 |
|
28 | if (existing) {
|
29 | winner = existing.compare(prop);
|
30 |
|
31 | if (winner === prop) {
|
32 | el.styleProps[name] = prop;
|
33 | }
|
34 | } else {
|
35 | el.styleProps[name] = prop;
|
36 | }
|
37 | }
|
38 | };
|