|
|
@ -27,7 +27,8 @@ |
|
|
* @module CssComposer |
|
|
* @module CssComposer |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
import { isArray, isUndefined } from 'underscore'; |
|
|
import { isArray, isString, isUndefined, each } from 'underscore'; |
|
|
|
|
|
import { isObject } from 'utils/mixins'; |
|
|
import defaults from './config/config'; |
|
|
import defaults from './config/config'; |
|
|
import CssRule from './model/CssRule'; |
|
|
import CssRule from './model/CssRule'; |
|
|
import CssRules from './model/CssRules'; |
|
|
import CssRules from './model/CssRules'; |
|
|
@ -243,14 +244,20 @@ export default () => { |
|
|
/** |
|
|
/** |
|
|
* Add a raw collection of rule objects |
|
|
* Add a raw collection of rule objects |
|
|
* This method overrides styles, in case, of already defined rule |
|
|
* This method overrides styles, in case, of already defined rule |
|
|
* @param {Array<Object>} data Array of rule objects, eg . [{selectors: ['class1'], style: {....}}, ..] |
|
|
* @param {String|Array<Object>} data CSS string or an array of rule objects, eg. [{selectors: ['class1'], style: {....}}, ..] |
|
|
* @param {Object} opts Options |
|
|
* @param {Object} opts Options |
|
|
|
|
|
* @param {Object} props Additional properties to add on rules |
|
|
* @return {Array<Model>} |
|
|
* @return {Array<Model>} |
|
|
* @private |
|
|
* @private |
|
|
*/ |
|
|
*/ |
|
|
addCollection(data, opts = {}) { |
|
|
addCollection(data, opts = {}, props = {}) { |
|
|
var result = []; |
|
|
const result = []; |
|
|
var d = data instanceof Array ? data : [data]; |
|
|
|
|
|
|
|
|
if (isString(data)) { |
|
|
|
|
|
data = em.get('Parser').parseCss(data); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const d = data instanceof Array ? data : [data]; |
|
|
|
|
|
|
|
|
for (var i = 0, l = d.length; i < l; i++) { |
|
|
for (var i = 0, l = d.length; i < l; i++) { |
|
|
var rule = d[i] || {}; |
|
|
var rule = d[i] || {}; |
|
|
@ -271,6 +278,8 @@ export default () => { |
|
|
var updateStyle = !modelExists || !opts.avoidUpdateStyle; |
|
|
var updateStyle = !modelExists || !opts.avoidUpdateStyle; |
|
|
const style = rule.style || {}; |
|
|
const style = rule.style || {}; |
|
|
|
|
|
|
|
|
|
|
|
isObject(props) && model.set(props, opts); |
|
|
|
|
|
|
|
|
if (updateStyle) { |
|
|
if (updateStyle) { |
|
|
let styleUpdate = opts.extend |
|
|
let styleUpdate = opts.extend |
|
|
? { ...model.get('style'), ...style } |
|
|
? { ...model.get('style'), ...style } |
|
|
|