diff --git a/index.html b/index.html index 71b4dc63b..95c5d8230 100755 --- a/index.html +++ b/index.html @@ -1331,6 +1331,9 @@ editor.on('selector:add', function(model) { if(model.get('name') == 'row') console.log('added .row class', model); + + if(model.get('name') == 'cell') + console.log('added .cell class', model); }); editor.render(); diff --git a/src/selector_manager/config/config.js b/src/selector_manager/config/config.js index 2cdde4478..503c7906e 100644 --- a/src/selector_manager/config/config.js +++ b/src/selector_manager/config/config.js @@ -25,12 +25,12 @@ module.exports = { // // not visible by the user // propertyMap: { // '.row, .cell': { - // private: false, + // private: true, // } // }, propertyMap: { '.row, .cell': { - private: false, + private: true, } }, diff --git a/src/selector_manager/index.js b/src/selector_manager/index.js index 58a05add4..29cbf7a45 100644 --- a/src/selector_manager/index.js +++ b/src/selector_manager/index.js @@ -98,13 +98,28 @@ module.exports = config => { config: c, }); - selectors.on('add', (model) => { - em.trigger('selector:add', model); - }); + selectors.on('add', this.selectorAdded); return this; }, + selectorAdded(model) { + const em = c.em; + const propertyMap = c.propertyMap; + let props = {}; + + Object.keys(propertyMap).forEach((selectors) => { + selectors.split(',').forEach((selector) => { + if (selector.trim() == model.getFullName()) { + props = Object.assign(props, propertyMap[selectors]); + } + }); + }); + + model.set(props); + em.trigger('selector:add', model); + }, + /** * Add a new selector to collection if it's not already exists. Class type is a default one * @param {String} name Selector name diff --git a/src/selector_manager/model/Selector.js b/src/selector_manager/model/Selector.js index c7dd70f90..a83d12a1e 100644 --- a/src/selector_manager/model/Selector.js +++ b/src/selector_manager/model/Selector.js @@ -39,4 +39,23 @@ module.exports = Backbone.Model.extend({ return name.replace(/([^a-z0-9\w]+)/gi, '-'); }, + /** + * Get full selector name + * @return {string} + */ + getFullName() { + let init = ''; + + switch (this.get('type')) { + case 'class': + init = '.'; + break; + case 'id': + init = '#'; + break; + } + + return init + this.get('name'); + } + });