Browse Source

Generate CSS code from array of rules in code manager

pull/3670/head
Artur Arseniev 5 years ago
parent
commit
71230b89c3
  1. 12
      src/code_manager/model/CssGenerator.js

12
src/code_manager/model/CssGenerator.js

@ -46,19 +46,20 @@ export default Backbone.Model.extend({
this.em = em; this.em = em;
this.compCls = []; this.compCls = [];
this.ids = []; this.ids = [];
this.model = model;
const codeJson = []; const codeJson = [];
var code = this.buildFromModel(model, opts); let code = model ? this.buildFromModel(model, opts) : '';
const clearStyles = const clearStyles =
isUndefined(opts.clearStyles) && em isUndefined(opts.clearStyles) && em
? em.getConfig('clearStyles') ? em.getConfig('clearStyles')
: opts.clearStyles; : opts.clearStyles;
if (cssc) { if (cssc) {
const rules = cssc.getAll(); const rules = opts.rules || cssc.getAll();
const atRules = {}; const atRules = {};
const dump = []; const dump = [];
rules.each(rule => { rules.forEach(rule => {
const atRule = rule.getAtRule(); const atRule = rule.getAtRule();
if (atRule) { if (atRule) {
@ -102,7 +103,7 @@ export default Backbone.Model.extend({
} }
}); });
em && clearStyles && rules.remove(dump); em && clearStyles && rules.remove && rules.remove(dump);
} }
return json ? codeJson.filter(r => r) : code; return json ? codeJson.filter(r => r) : code;
@ -115,6 +116,7 @@ export default Backbone.Model.extend({
*/ */
buildFromRule(rule, dump, opts = {}) { buildFromRule(rule, dump, opts = {}) {
let result = ''; let result = '';
const { model } = this;
const selectorStrNoAdd = rule.selectorsToString({ skipAdd: 1 }); const selectorStrNoAdd = rule.selectorsToString({ skipAdd: 1 });
const selectorsAdd = rule.get('selectorsAdd'); const selectorsAdd = rule.get('selectorsAdd');
const singleAtRule = rule.get('singleAtRule'); const singleAtRule = rule.get('singleAtRule');
@ -132,7 +134,7 @@ export default Backbone.Model.extend({
} }
}); });
if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule) { if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule || !model) {
const block = rule.getDeclaration({ body: 1 }); const block = rule.getDeclaration({ body: 1 });
block && (opts.json ? (result = rule) : (result += block)); block && (opts.json ? (result = rule) : (result += block));
} else { } else {

Loading…
Cancel
Save