@bem-react/classname
Advanced tools
Comparing version 0.3.2 to 1.0.0
@@ -5,44 +5,45 @@ 'use strict'; | ||
require('object-assign'); | ||
var sdk_naming_entity_stringify = require('@bem/sdk.naming.entity.stringify'); | ||
function __values(o) { | ||
var m = typeof Symbol === "function" && o[Symbol.iterator], | ||
i = 0; | ||
if (m) return m.call(o); | ||
return { | ||
next: function () { | ||
if (o && i >= o.length) o = void 0; | ||
return { | ||
value: o && o[i++], | ||
done: !o | ||
}; | ||
} | ||
}; | ||
} | ||
var react = require('@bem/sdk.naming.presets/react'); | ||
function modsToEntities(block, elem, mods) { | ||
var def = [{ block: block, elem: elem }]; | ||
var entities = []; | ||
if (!mods) | ||
return def; | ||
for (var name_1 in mods) { | ||
if (mods[name_1] || mods[name_1] === 0) { | ||
entities.push({ block: block, elem: elem, mod: { | ||
name: name_1, | ||
val: mods[name_1] === true ? true : String(mods[name_1]), | ||
} }); | ||
} | ||
} | ||
return entities.length === 0 ? def : entities; | ||
} | ||
var react = { | ||
delims: { | ||
elem: '-', | ||
mod: { | ||
name: '_', | ||
val: '_', | ||
}, | ||
}, | ||
fs: { | ||
pattern: '${entity}${layer?@${layer}}.${tech}', | ||
scheme: 'nested', | ||
delims: { elem: '' }, | ||
}, | ||
wordPattern: '[a-zA-Z0-9]+', | ||
}; | ||
function withNaming(preset) { | ||
var naming = sdk_naming_entity_stringify.stringifyWrapper(preset); | ||
var stringify = function (entities) { return entities.map(naming).join(' '); }; | ||
var stringify = function (entities) { | ||
return classnames.apply(classnames, entities.map(function (entity) { return typeof entity === 'string' ? entity : naming(entity); }).filter(Boolean)); | ||
}; | ||
var modsToEntities = function (block, elem, mods) { | ||
var entities = [{ block: block, elem: elem }]; | ||
mods && Object.keys(mods).forEach(function (name) { | ||
if (mods[name] || mods[name] === 0) { | ||
entities.push({ block: block, elem: elem, mod: { | ||
name: name, | ||
val: mods[name] === true ? true : String(mods[name]), | ||
} }); | ||
} | ||
}); | ||
return entities; | ||
}; | ||
return function (blockName, elemName) { | ||
return function (elemOrBlockMods, elemMods) { | ||
return function (elemOrBlockMods, elemModsOrBlockMix, elemMix) { | ||
return typeof elemOrBlockMods === 'string' | ||
? stringify(modsToEntities(blockName, elemOrBlockMods, elemMods)) | ||
: stringify(modsToEntities(blockName, elemName, elemOrBlockMods)); | ||
? typeof elemModsOrBlockMix === 'string' | ||
? stringify(modsToEntities(blockName, elemOrBlockMods).concat(elemModsOrBlockMix)) | ||
: stringify(modsToEntities(blockName, elemOrBlockMods, elemModsOrBlockMix).concat(elemMix)) | ||
: typeof elemModsOrBlockMix === 'string' | ||
? stringify(modsToEntities(blockName, elemName, elemOrBlockMods).concat(elemModsOrBlockMix)) | ||
: stringify(modsToEntities(blockName, elemName, elemOrBlockMods).concat(elemMix)); | ||
}; | ||
@@ -52,3 +53,3 @@ }; | ||
var cn = withNaming(react); | ||
var list = function () { | ||
var classnames = function () { | ||
var strings = []; | ||
@@ -58,31 +59,8 @@ for (var _i = 0; _i < arguments.length; _i++) { | ||
} | ||
var e_1, _a, e_2, _b; | ||
var classString = ''; | ||
try { | ||
for (var strings_1 = __values(strings), strings_1_1 = strings_1.next(); !strings_1_1.done; strings_1_1 = strings_1.next()) { | ||
var className = strings_1_1.value; | ||
if (className) { | ||
try { | ||
for (var _c = __values(className.split(' ')), _d = _c.next(); !_d.done; _d = _c.next()) { | ||
var part = _d.value; | ||
!classString.includes(part) && (classString += " " + part); | ||
} | ||
} | ||
catch (e_2_1) { e_2 = { error: e_2_1 }; } | ||
finally { | ||
try { | ||
if (_d && !_d.done && (_b = _c.return)) _b.call(_c); | ||
} | ||
finally { if (e_2) throw e_2.error; } | ||
} | ||
} | ||
} | ||
} | ||
catch (e_1_1) { e_1 = { error: e_1_1 }; } | ||
finally { | ||
try { | ||
if (strings_1_1 && !strings_1_1.done && (_a = strings_1.return)) _a.call(strings_1); | ||
} | ||
finally { if (e_1) throw e_1.error; } | ||
} | ||
strings.forEach(function (className) { | ||
className && className.split(' ').forEach(function (part) { | ||
!classString.includes(part) && (classString += ' ' + part); | ||
}); | ||
}); | ||
return classString.trim(); | ||
@@ -93,2 +71,2 @@ }; | ||
exports.cn = cn; | ||
exports.list = list; | ||
exports.classnames = classnames; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("object-assign");var sdk_naming_entity_stringify=require("@bem/sdk.naming.entity.stringify");function __values(r){var t="function"==typeof Symbol&&r[Symbol.iterator],n=0;return t?t.call(r):{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}}}var react=require("@bem/sdk.naming.presets/react");function modsToEntities(r,t,n){var e=[{block:r,elem:t}],i=[];if(!n)return e;for(var o in n)(n[o]||0===n[o])&&i.push({block:r,elem:t,mod:{name:o,val:!0===n[o]||String(n[o])}});return 0===i.length?e:i}function withNaming(r){var t=sdk_naming_entity_stringify.stringifyWrapper(r),i=function(r){return r.map(t).join(" ")};return function(n,e){return function(r,t){return i("string"==typeof r?modsToEntities(n,r,t):modsToEntities(n,e,r))}}}var cn=withNaming(react),list=function(){for(var t,r,n,e,i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a="";try{for(var l=__values(i),s=l.next();!s.done;s=l.next()){var u=s.value;if(u)try{for(var c=__values(u.split(" ")),f=c.next();!f.done;f=c.next()){var v=f.value;!a.includes(v)&&(a+=" "+v)}}catch(r){n={error:r}}finally{try{f&&!f.done&&(e=c.return)&&e.call(c)}finally{if(n)throw n.error}}}}catch(r){t={error:r}}finally{try{s&&!s.done&&(r=l.return)&&r.call(l)}finally{if(t)throw t.error}}return a.trim()};exports.withNaming=withNaming,exports.cn=cn,exports.list=list; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var sdk_naming_entity_stringify=require("@bem/sdk.naming.entity.stringify"),react={delims:{elem:"-",mod:{name:"_",val:"_"}},fs:{pattern:"${entity}${layer?@${layer}}.${tech}",scheme:"nested",delims:{elem:""}},wordPattern:"[a-zA-Z0-9]+"};function withNaming(n){var t=sdk_naming_entity_stringify.stringifyWrapper(n),a=function(n){return classnames.apply(classnames,n.map(function(n){return"string"==typeof n?n:t(n)}).filter(Boolean))},s=function(t,e,r){var i=[{block:t,elem:e}];return r&&Object.keys(r).forEach(function(n){(r[n]||0===r[n])&&i.push({block:t,elem:e,mod:{name:n,val:!0===r[n]||String(r[n])}})}),i};return function(r,i){return function(n,t,e){return a("string"==typeof n?"string"==typeof t?s(r,n).concat(t):s(r,n,t).concat(e):"string"==typeof t?s(r,i,n).concat(t):s(r,i,n).concat(e))}}}var cn=withNaming(react),classnames=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var e="";return n.forEach(function(n){n&&n.split(" ").forEach(function(n){!e.includes(n)&&(e+=" "+n)})}),e.trim()};exports.withNaming=withNaming,exports.cn=cn,exports.classnames=classnames; |
@@ -6,2 +6,11 @@ # Change Log | ||
<a name="1.0.0"></a> | ||
# [1.0.0](https://github.com/bem/bem-react-core/compare/@bem-react/classname@0.3.2...@bem-react/classname@1.0.0) (2018-09-20) | ||
**Note:** Version bump only for package @bem-react/classname | ||
<a name="0.3.2"></a> | ||
@@ -8,0 +17,0 @@ ## [0.3.2](https://github.com/bem/bem-react-core/compare/@bem-react/classname@0.3.1...@bem-react/classname@0.3.2) (2018-09-04) |
@@ -1,7 +0,6 @@ | ||
import { INamingConvention } from '@bem/sdk.naming.presets'; | ||
export declare type NoStrictEntityMods = Record<string, string | boolean | number | undefined>; | ||
export declare type ClassNameInitilizer = (blockName: string, elemName?: string) => ClassNameFormatter; | ||
export declare type ClassNameFormatter = (elemNameOrBlockMods?: NoStrictEntityMods | string, elemMods?: NoStrictEntityMods) => string; | ||
export declare function withNaming(preset: INamingConvention): ClassNameInitilizer; | ||
export declare type ClassNameFormatter = (elemNameOrBlockMods?: NoStrictEntityMods | string | null, elemModsOrBlockMix?: NoStrictEntityMods | string | null, elemMix?: string) => string; | ||
export declare function withNaming(preset: any): ClassNameInitilizer; | ||
export declare const cn: ClassNameInitilizer; | ||
export declare const list: (...strings: (string | undefined)[]) => string; | ||
export declare const classnames: (...strings: (string | undefined)[]) => string; |
{ | ||
"name": "@bem-react/classname", | ||
"version": "0.3.2", | ||
"version": "1.0.0", | ||
"description": "BEM React ClassName", | ||
@@ -31,4 +31,3 @@ "repository": { | ||
"dependencies": { | ||
"@bem/sdk.naming.entity.stringify": "1.1.1", | ||
"@bem/sdk.naming.presets": "0.2.2" | ||
"@bem/sdk.naming.entity.stringify": "1.1.1" | ||
}, | ||
@@ -51,3 +50,3 @@ "nyc": { | ||
}, | ||
"gitHead": "f4fde44a2c96b40eb10241509d8702fa947635bf" | ||
"gitHead": "9a19c9c3f68d5388839a17ee40e4e185f74b967b" | ||
} |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
1
2
8894
81
- Removed@bem/sdk.naming.presets@0.2.2
- Removed@bem/sdk.naming.presets@0.2.2(transitive)