From b3135ddfef9abcd384077b31dc7326036a563df7 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 8 Jul 2021 19:22:25 +0200 Subject: [PATCH] Allow to export css rules from code manager --- src/code_manager/model/CssGenerator.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/code_manager/model/CssGenerator.js b/src/code_manager/model/CssGenerator.js index 51bb25fe9..05f9277fa 100644 --- a/src/code_manager/model/CssGenerator.js +++ b/src/code_manager/model/CssGenerator.js @@ -40,11 +40,13 @@ export default Backbone.Model.extend({ }, build(model, opts = {}) { - const cssc = opts.cssc; + const { json } = opts; const em = opts.em || ''; + const cssc = opts.cssc || (em && em.get('CssComposer')); this.em = em; this.compCls = []; this.ids = []; + const codeJson = []; var code = this.buildFromModel(model, opts); const clearStyles = isUndefined(opts.clearStyles) && em @@ -69,7 +71,13 @@ export default Backbone.Model.extend({ return; } - code += this.buildFromRule(rule, dump, opts); + const res = this.buildFromRule(rule, dump, opts); + + if (json) { + codeJson.push(res); + } else { + code += res; + } }); this.sortMediaObject(atRules).forEach(item => { @@ -85,6 +93,8 @@ export default Backbone.Model.extend({ } else { rulesStr += ruleStr; } + + json && codeJson.push(ruleStr); }); if (rulesStr) { @@ -95,7 +105,7 @@ export default Backbone.Model.extend({ em && clearStyles && rules.remove(dump); } - return code; + return json ? codeJson.filter(r => r) : code; }, /** @@ -124,7 +134,7 @@ export default Backbone.Model.extend({ if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule) { const block = rule.getDeclaration({ body: 1 }); - block && (result += block); + block && (opts.json ? (result = rule) : (result += block)); } else { dump.push(rule); }