Browse Source

Preserve '!important' in CSS Traversing

pull/79/merge
Artur Arseniev 9 years ago
parent
commit
476a1e987a
  1. 3
      src/editor/model/Editor.js
  2. 5
      src/parser/model/ParserCss.js
  3. 13
      test/specs/parser/model/ParserCss.js

3
src/editor/model/Editor.js

@ -10,6 +10,7 @@ define(['backbone', 'backboneUndo', 'keymaster', 'Utils', 'StorageManager', 'Dev
defaults: {
clipboard: null,
designerMode: false,
selectedComponent: null,
previousModel: null,
changesCount: 0,
@ -36,7 +37,7 @@ define(['backbone', 'backboneUndo', 'keymaster', 'Utils', 'StorageManager', 'Dev
M.onLoad();
});
this.initUndoManager(); // Is already called (inside components and css composer)
this.initUndoManager();
this.on('change:selectedComponent', this.componentSelected, this);
this.on('change:changesCount', this.updateBeforeUnload, this);

5
src/parser/model/ParserCss.js

@ -80,7 +80,10 @@ define(function(require) {
var stl = node.style;
var style = {};
for (var j = 0, len2 = stl.length; j < len2; j++) {
style[stl[j]] = stl[stl[j]];
var propName = stl[j];
var important = stl.getPropertyPriority(propName);
style[propName] = stl[propName] +
(important ? ' !' + important : '');
}
var lastRule = '';

13
test/specs/parser/model/ParserCss.js

@ -176,6 +176,19 @@ define([path + 'model/ParserCss',],
obj.parse(str).should.deep.equal(result);
});
it('Parse rule with important styles', function() {
var str = ' .test1 {color:red !important; width: 100px; height: 10px !important}';
var result = {
selectors: ['test1'],
style: {
color: 'red !important',
height: '10px !important',
width: '100px',
}
};
obj.parse(str).should.deep.equal(result);
});
});
}

Loading…
Cancel
Save