bemquery-selector-engine
Advanced tools
Comparing version 0.0.1 to 0.0.2
# bemquery-selector-engine Changelog | ||
--- | ||
## 0.0.2 | ||
* Fixed typos in API docs. | ||
* Small tweaks in `README.md`. | ||
* Added [Tonic](https://tonicdev.com/) example. | ||
## 0.0.1 | ||
First public version. Yay! |
@@ -1,3 +0,3 @@ | ||
/*! BEMQuery v0.0.1 | (c) 2016 BEMQuery | MIT license (see LICENSE) */ | ||
/*! BEMQuery v0.0.2 | (c) 2016 BEMQuery | MIT license (see LICENSE) */ | ||
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.bemquerySelectorEngine=global.bemquerySelectorEngine||{})})(this,function(exports){"use strict";var babelHelpers={};babelHelpers.classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}};babelHelpers.createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();babelHelpers;var Selector=function Selector(BEM,CSS){babelHelpers.classCallCheck(this,Selector);this.BEM=BEM;this.CSS=CSS;Object.freeze(this)};function endsWithModifier(selector,bemConfig){var regex=new RegExp("[^"+bemConfig.elemSeparator+bemConfig.modifierSeparator+"]+"+bemConfig.modifierSeparator+"[^"+bemConfig.elemSeparator+bemConfig.modifierSeparator+"]+$","g");return!!selector.match(regex)}function getSelectorWithoutModifier(selector,modifierSeparator){return" "+selector.substring(selector.lastIndexOf("."),selector.lastIndexOf(modifierSeparator))}var defaultConfig={bem:{elemSeparator:"__",modifierSeparator:"_"},rules:{"default":function _default(token){return"."+token}," > ":function _(token,config){return" "+config.rules.default(token)}," ":function _(token,config,selector){if(endsWithModifier(selector,config.bem)){return""+getSelectorWithoutModifier(selector,config.bem.modifierSeparator)+config.bem.elemSeparator+token}return""+config.bem.elemSeparator+token},":":function _(token,config){return""+config.bem.modifierSeparator+token}}};function convertToken(tokens,config){var selector=arguments.length<=2||arguments[2]===undefined?"":arguments[2];var rules=config.rules;var delimeter=tokens.shift();var rule=void 0;var token=void 0;if(!delimeter){return selector}else if(!selector){token=delimeter;rule=rules.default}else{token=tokens.shift();rule=rules[delimeter]}if(typeof rule!=="function"){throw new SyntaxError("Malformed BEM rule")}selector+=rule(token,config,selector);return convertToken(tokens,config,selector)}function _convert(selector,config){var rules=Object.keys(config.rules).filter(function(rule){return rule!=="default"});var splitRule=new RegExp("("+rules.join("|")+")","g");var splittedSelector=selector.split(splitRule);selector=convertToken(splittedSelector,config);return selector}var Converter=function(){function Converter(){var config=arguments.length<=0||arguments[0]===undefined?defaultConfig:arguments[0];babelHelpers.classCallCheck(this,Converter);this.config=config}babelHelpers.createClass(Converter,[{key:"convert",value:function convert(selector){var convertedSelector=_convert(selector,this.config);return new Selector(selector,convertedSelector)}}]);return Converter}();var SelectorEngine=function(){function SelectorEngine(converter){babelHelpers.classCallCheck(this,SelectorEngine);this.converter=converter}babelHelpers.createClass(SelectorEngine,[{key:"find",value:function find(selector){var context=arguments.length<=1||arguments[1]===undefined?document:arguments[1];var convertedSelector=this.converter.convert(selector);var result={selector:convertedSelector};var cssSelector=convertedSelector.CSS;var tmpId=false;if(context!==document){if(!context.id){tmpId=true;context.id="BEMQueryTMP_"+Date.now()}cssSelector="#"+context.id+" "+cssSelector}var elements=context.querySelectorAll(cssSelector);result.elements=Array.from(elements);if(tmpId){context.removeAttribute("id")}return result}}]);return SelectorEngine}();function factory(){var converterConfig=arguments.length<=0||arguments[0]===undefined?defaultConfig:arguments[0];var converter=new Converter(converterConfig);var selectorEngine=new SelectorEngine(converter);return selectorEngine}exports.Converter=Converter;exports.SelectorEngine=SelectorEngine;exports.factory=factory}); | ||
//# sourceMappingURL=./dist/bemquery-selector-engine.es5.js.map |
@@ -1,2 +0,2 @@ | ||
/*! BEMQuery v0.0.1 | (c) 2016 BEMQuery | MIT license (see LICENSE) */ | ||
/*! BEMQuery v0.0.2 | (c) 2016 BEMQuery | MIT license (see LICENSE) */ | ||
/** Simple class representing selector */ | ||
@@ -187,3 +187,3 @@ class Selector { | ||
/** | ||
* BEM selectors engine factory. | ||
* BEM selector engine factory. | ||
* | ||
@@ -190,0 +190,0 @@ * @param {Object} [converterConfig=defaultConverterConfig] Configuration object that |
@@ -1,2 +0,2 @@ | ||
/*! BEMQuery v0.0.1 | (c) 2016 BEMQuery | MIT license (see LICENSE) */ | ||
/*! BEMQuery v0.0.2 | (c) 2016 BEMQuery | MIT license (see LICENSE) */ | ||
(function (global, factory) { | ||
@@ -193,3 +193,3 @@ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||
/** | ||
* BEM selectors engine factory. | ||
* BEM selector engine factory. | ||
* | ||
@@ -196,0 +196,0 @@ * @param {Object} [converterConfig=defaultConverterConfig] Configuration object that |
{ | ||
"name": "bemquery-selector-engine", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "BEM selector engine", | ||
@@ -33,3 +33,4 @@ "main": "dist/bemquery-selector-engine.umd.js", | ||
"files": [ | ||
"dist" | ||
"dist", | ||
"tonic-example.js" | ||
], | ||
@@ -42,2 +43,3 @@ "author": "Comandeer", | ||
"homepage": "https://github.com/BEMQuery/bemquery-selector-engine#readme", | ||
"tonicExampleFilename": "tonic-example.js", | ||
"devDependencies": { | ||
@@ -44,0 +46,0 @@ "babel-preset-es2015-rollup": "^1.1.1", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
44826
11
386
1
25
2