Browse Source

Get parent styles by class combination

up-style-manager
Artur Arseniev 5 years ago
parent
commit
2e77d948ce
  1. 5
      src/css_composer/index.js
  2. 7
      src/style_manager/index.js
  3. 4
      test/specs/style_manager/index.js

5
src/css_composer/index.js

@ -388,8 +388,11 @@ export default () => {
getRules(selector) { getRules(selector) {
const rules = this.getAll(); const rules = this.getAll();
if (!selector) return [...rules.models]; if (!selector) return [...rules.models];
const sels = isString(selector)
? selector.split(',').map(s => s.trim())
: selector;
const result = rules.filter( const result = rules.filter(
r => r.getSelectors().getFullString() === selector r => sels.indexOf(r.getSelectors().getFullString()) >= 0
); );
return result; return result;
}, },

7
src/style_manager/index.js

@ -365,16 +365,19 @@ export default () => {
const cssGen = em.get('CodeManager').getGenerator('css'); const cssGen = em.get('CodeManager').getGenerator('css');
const cmp = target.toHTML ? target : target.getComponent(); const cmp = target.toHTML ? target : target.getComponent();
const sel = em.getSelected(); const sel = em.getSelected();
const optsSel = { combination: true, array: true };
let cmpRules = []; let cmpRules = [];
let otherRules = []; let otherRules = [];
// Componente related rule // Componente related rule
if (cmp) { if (cmp) {
cmpRules = cssC.getRules(`#${cmp.getId()}`); cmpRules = cssC.getRules(`#${cmp.getId()}`);
otherRules = cssC.getRules(sel.getSelectors().getFullString()); otherRules = cssC.getRules(sel.getSelectors().getFullName(optsSel));
} else { } else {
cmpRules = cssC.getRules(`#${sel.getId()}`); cmpRules = cssC.getRules(`#${sel.getId()}`);
otherRules = cssC.getRules(target.getSelectors().getFullString()); otherRules = cssC.getRules(
target.getSelectors().getFullName(optsSel)
);
} }
const all = otherRules const all = otherRules

4
test/specs/style_manager/index.js

@ -193,8 +193,8 @@ describe('StyleManager', () => {
`); `);
em.setSelected(cmp); em.setSelected(cmp);
setTimeout(() => { setTimeout(() => {
// expect(obj.getLastSelected()).toBe(rule2); expect(obj.getLastSelected()).toBe(rule2);
// expect(obj.getSelectedParents()).toEqual([rule1]); expect(obj.getSelectedParents()).toEqual([rule1]);
done(); done();
}); });
}); });

Loading…
Cancel
Save