|
|
|
@ -113,14 +113,14 @@ export default () => { |
|
|
|
um && um.add(rules); |
|
|
|
em.stopListening(rules, ev, this.handleChange); |
|
|
|
em.listenTo(rules, ev, this.handleChange); |
|
|
|
rules.each(rule => this.handleChange(rule, { avoidStore: 1 })); |
|
|
|
rules.each(rule => this.handleChange(rule, null, { avoidStore: 1 })); |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
* Handle rule changes |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
handleChange(model, opts = {}) { |
|
|
|
handleChange(model, val, opts = {}) { |
|
|
|
const ev = 'change:style'; |
|
|
|
const um = em.get('UndoManager'); |
|
|
|
um && um.add(model); |
|
|
|
@ -183,7 +183,8 @@ export default () => { |
|
|
|
* @param {Array<Selector>} selectors Array of selectors |
|
|
|
* @param {String} state Css rule state |
|
|
|
* @param {String} width For which device this style is oriented |
|
|
|
* @param {Object} opts Other options for the rule |
|
|
|
* @param {Object} props Other props for the rule |
|
|
|
* @param {Object} opts Options for the add of new rule |
|
|
|
* @return {Model} |
|
|
|
* @example |
|
|
|
* var sm = editor.SelectorManager; |
|
|
|
@ -195,7 +196,7 @@ export default () => { |
|
|
|
* color: '#fff', |
|
|
|
* }); |
|
|
|
* */ |
|
|
|
add(selectors, state, width, opts = {}) { |
|
|
|
add(selectors, state, width, opts = {}, addOpts = {}) { |
|
|
|
var s = state || ''; |
|
|
|
var w = width || ''; |
|
|
|
var opt = { ...opts }; |
|
|
|
@ -211,8 +212,8 @@ export default () => { |
|
|
|
opt.mediaText = w; |
|
|
|
opt.selectors = []; |
|
|
|
rule = new CssRule(opt, c); |
|
|
|
rule.get('selectors').add(selectors); |
|
|
|
rules.add(rule); |
|
|
|
rule.get('selectors').add(selectors, addOpts); |
|
|
|
rules.add(rule, addOpts); |
|
|
|
return rule; |
|
|
|
} |
|
|
|
}, |
|
|
|
@ -406,12 +407,13 @@ export default () => { |
|
|
|
* // #myid:hover { color: blue }
|
|
|
|
*/ |
|
|
|
setIdRule(name, style = {}, opts = {}) { |
|
|
|
const { addOpts = {} } = opts; |
|
|
|
const state = opts.state || ''; |
|
|
|
const media = opts.mediaText || em.getCurrentMedia(); |
|
|
|
const sm = em.get('SelectorManager'); |
|
|
|
const selector = sm.add({ name, type: Selector.TYPE_ID }); |
|
|
|
const rule = this.add(selector, state, media); |
|
|
|
rule.setStyle(style, opts); |
|
|
|
const selector = sm.add({ name, type: Selector.TYPE_ID }, addOpts); |
|
|
|
const rule = this.add(selector, state, media, {}, addOpts); |
|
|
|
rule.setStyle(style, { ...opts, ...addOpts }); |
|
|
|
return rule; |
|
|
|
}, |
|
|
|
|
|
|
|
|