Browse Source

Update setRule and getRule docs and hide IdRule and classRule methods

pull/1730/head
Artur Arseniev 8 years ago
parent
commit
518e4da08e
  1. 46
      src/css_composer/index.js
  2. 2
      test/specs/css_composer/index.js
  3. 2
      test/specs/selector_manager/index.js

46
src/css_composer/index.js

@ -21,10 +21,8 @@
* * [get](#get) * * [get](#get)
* * [getAll](#getall) * * [getAll](#getall)
* * [clear](#clear) * * [clear](#clear)
* * [setIdRule](#setidrule) * * [setRule](#setrule)
* * [getIdRule](#getidrule) * * [getRule](#getrule)
* * [setClassRule](#setclassrule)
* * [getClassRule](#getclassrule)
* *
* @module CssComposer * @module CssComposer
*/ */
@ -304,6 +302,28 @@ module.exports = () => {
return result; return result;
}, },
/**
* Add/update the CSS rule with a generic selector
* @param {string} selectors Selector, eg. '.myclass'
* @param {Object} style Style properties and values
* @param {Object} [opts={}] Additional properties
* @param {String} [opts.atRuleType=''] At-rule type, eg. 'media'
* @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'
* @return {CssRule} The new/updated rule
* @example
* // Simple class-based rule
* const rule = cc.setRule('.class1.class2', { color: 'red' });
* console.log(rule.toCSS()) // output: .class1.class2 { color: red }
* // With state and other mixed selector
* const rule = cc.setRule('.class1.class2:hover, div#myid', { color: 'red' });
* // output: .class1.class2:hover, div#myid { color: red }
* // With media
* const rule = cc.setRule('.class1:hover', { color: 'red' }, {
* atRuleType: 'media',
* atRuleParams: '(min-width: 500px)',
* });
* // output: @media (min-width: 500px) { .class1:hover { color: red } }
*/
setRule(selectors, style, opts = {}) { setRule(selectors, style, opts = {}) {
const { atRuleType, atRuleParams } = opts; const { atRuleType, atRuleParams } = opts;
const node = em.get('Parser').parserCss.checkNode({ const node = em.get('Parser').parserCss.checkNode({
@ -321,6 +341,20 @@ module.exports = () => {
return rule; return rule;
}, },
/**
* Get the CSS rule by a generic selector
* @param {string} selectors Selector, eg. '.myclass:hover'
* @param {String} [opts.atRuleType=''] At-rule type, eg. 'media'
* @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'
* @return {CssRule}
* @example
* const rule = cc.getRule('.myclass1:hover');
* const rule2 = cc.getRule('.myclass1:hover, div#myid');
* const rule3 = cc.getRule('.myclass1', {
* atRuleType: 'media',
* atRuleParams: '(min-width: 500px)',
* });
*/
getRule(selectors, opts = {}) { getRule(selectors, opts = {}) {
const sm = em.get('SelectorManager'); const sm = em.get('SelectorManager');
const node = em.get('Parser').parserCss.checkNode({ selectors })[0]; const node = em.get('Parser').parserCss.checkNode({ selectors })[0];
@ -342,6 +376,7 @@ module.exports = () => {
* @param {Object} style Style properties and values * @param {Object} style Style properties and values
* @param {Object} [opts={}] Custom options, like `state` and `mediaText` * @param {Object} [opts={}] Custom options, like `state` and `mediaText`
* @return {CssRule} The new/updated rule * @return {CssRule} The new/updated rule
* @private
* @example * @example
* const rule = cc.setIdRule('myid', { color: 'red' }); * const rule = cc.setIdRule('myid', { color: 'red' });
* const ruleHover = cc.setIdRule('myid', { color: 'blue' }, { state: 'hover' }); * const ruleHover = cc.setIdRule('myid', { color: 'blue' }, { state: 'hover' });
@ -364,6 +399,7 @@ module.exports = () => {
* @param {string} name Id selector name, eg. 'my-id' * @param {string} name Id selector name, eg. 'my-id'
* @param {Object} [opts={}] Custom options, like `state` and `mediaText` * @param {Object} [opts={}] Custom options, like `state` and `mediaText`
* @return {CssRule} * @return {CssRule}
* @private
* @example * @example
* const rule = cc.getIdRule('myid'); * const rule = cc.getIdRule('myid');
* const ruleHover = cc.setIdRule('myid', { state: 'hover' }); * const ruleHover = cc.setIdRule('myid', { state: 'hover' });
@ -381,6 +417,7 @@ module.exports = () => {
* @param {Object} style Style properties and values * @param {Object} style Style properties and values
* @param {Object} [opts={}] Custom options, like `state` and `mediaText` * @param {Object} [opts={}] Custom options, like `state` and `mediaText`
* @return {CssRule} The new/updated rule * @return {CssRule} The new/updated rule
* @private
* @example * @example
* const rule = cc.setClassRule('myclass', { color: 'red' }); * const rule = cc.setClassRule('myclass', { color: 'red' });
* const ruleHover = cc.setClassRule('myclass', { color: 'blue' }, { state: 'hover' }); * const ruleHover = cc.setClassRule('myclass', { color: 'blue' }, { state: 'hover' });
@ -403,6 +440,7 @@ module.exports = () => {
* @param {string} name Class selector name, eg. 'my-class' * @param {string} name Class selector name, eg. 'my-class'
* @param {Object} [opts={}] Custom options, like `state` and `mediaText` * @param {Object} [opts={}] Custom options, like `state` and `mediaText`
* @return {CssRule} * @return {CssRule}
* @private
* @example * @example
* const rule = cc.getClassRule('myclass'); * const rule = cc.getClassRule('myclass');
* const ruleHover = cc.getClassRule('myclass', { state: 'hover' }); * const ruleHover = cc.getClassRule('myclass', { state: 'hover' });

2
test/specs/css_composer/index.js

@ -7,7 +7,7 @@ const utils = require('./../test_utils.js');
const Editor = require('editor/model/Editor'); const Editor = require('editor/model/Editor');
describe('Css Composer', () => { describe('Css Composer', () => {
describe.only('Main', () => { describe('Main', () => {
var obj; var obj;
var em; var em;
var config; var config;

2
test/specs/selector_manager/index.js

@ -7,7 +7,7 @@ var e2e = require('./e2e/ClassManager');
var Editor = require('editor/model/Editor'); var Editor = require('editor/model/Editor');
describe('SelectorManager', () => { describe('SelectorManager', () => {
describe.only('Main', () => { describe('Main', () => {
var obj; var obj;
let em; let em;

Loading…
Cancel
Save