add method removeCSSRule with test

This commit is contained in:
Faris Ansari 2017-11-01 22:33:19 +05:30
parent 7e05271c51
commit b128aad311
2 changed files with 25 additions and 1 deletions

View File

@ -180,6 +180,18 @@ function buildCSSRule(rule, styleMap, cssRulesString = '') {
return `${cssRulesString}${getCSSRuleBlock(rule, styleMap)}`;
}
function removeCSSRule(rule, cssRulesString = '') {
const rulePatternStr = `${escapeRegExp(rule)} {([^}]*)}`;
const rulePattern = new RegExp(rulePatternStr, 'g');
let output = cssRulesString;
if (cssRulesString && cssRulesString.match(rulePattern)) {
output = cssRulesString.replace(rulePattern, '');
}
return output.trim();
}
export default {
getHeaderHTML,
getBodyHTML,
@ -191,6 +203,7 @@ export default {
namespaceSelector,
getCSSString,
buildCSSRule,
removeCSSRule,
makeDataAttributeString,
getDefault,
escapeRegExp

View File

@ -5,6 +5,7 @@ import {
makeDataAttributeString,
getCSSString,
buildCSSRule,
removeCSSRule
} from '../src/utils.js';
chai.expect();
@ -67,4 +68,14 @@ describe('#utils', () => {
.to.be.equal('.test { width: 5px; height: 19px; margin-top: 3px; }.test2 { height: 45px; }');
});
});
describe('removeCSSRule', () => {
it('should remove the css rule based on the selector', () => {
const rule = '.test';
const cssRuleString = `.test {margin-top: 2px;} .test2 {color: blue;}`;
expect(removeCSSRule(rule, cssRuleString))
.to.be.equal('.test2 {color: blue;}');
})
})
});