@bem-react/core
Advanced tools
Comparing version 2.0.11-dev.1 to 2.0.11-dev.2
@@ -39,2 +39,3 @@ 'use strict'; | ||
function withBemMod(blockName, mod, enhance) { | ||
if (enhance === void 0) { enhance = true; } | ||
var entity; | ||
@@ -68,3 +69,3 @@ var entityClassName; | ||
.replace(entityClassName + " ", ''); | ||
if (enhance !== undefined) { | ||
if (enhance !== undefined && typeof enhance !== 'boolean') { | ||
if (ModifiedComponent === undefined) { | ||
@@ -98,5 +99,9 @@ ModifiedComponent = enhance(WrappedComponent); | ||
}; | ||
var keys = Object.keys(mod); | ||
var isSimple = keys.length === 1 && typeof enhance !== 'boolean' ? !enhance : true; | ||
withMod.__blockName = blockName; | ||
withMod.__mod = mod; | ||
withMod.__isSimple = !enhance; | ||
withMod.__mod = keys[0]; | ||
withMod.__value = mod[keys[0]]; | ||
withMod.__isSimple = isSimple; | ||
withMod.__presentInProps = enhance; | ||
return withMod; | ||
@@ -107,12 +112,11 @@ } | ||
var allMods = {}; | ||
var allModsPresentProps = {}; | ||
var entity = classname.cn(__blockName); | ||
var _loop_1 = function (mod) { | ||
Object.keys(mod.__mod).forEach(function (key) { | ||
allMods[key] = allMods[key] || []; | ||
allMods[key].push(mod.__mod[key]); | ||
}); | ||
}; | ||
for (var _i = 0, mods_1 = mods; _i < mods_1.length; _i++) { | ||
var mod = mods_1[_i]; | ||
_loop_1(mod); | ||
var _a = mods_1[_i], __mod = _a.__mod, __value = _a.__value, __presentInProps = _a.__presentInProps; | ||
allMods[__mod] = allMods[__mod] || []; | ||
// для оптимизации поиска вводим простой массив вместо объекта | ||
allModsPresentProps[__mod] = allModsPresentProps[__mod] || []; | ||
allMods[__mod].push(__value); | ||
allModsPresentProps[__mod].push(__presentInProps); | ||
} | ||
@@ -124,24 +128,16 @@ var modNames = Object.keys(allMods); | ||
var newProps = __assign({}, props); | ||
var _loop_2 = function (key) { | ||
for (var _i = 0, modNames_1 = modNames; _i < modNames_1.length; _i++) { | ||
var key = modNames_1[_i]; | ||
var modValues = allMods[key]; | ||
var propValue = props[key]; | ||
if (modValues.indexOf(propValue) !== -1) { | ||
var foundInValues = modValues.indexOf(propValue); | ||
if (foundInValues !== -1) { | ||
modifiers[key] = propValue; | ||
// если стоит флаг PresentInProps = false, то не добавялем в пропсы | ||
if (!allModsPresentProps[key][foundInValues]) { | ||
delete newProps[key]; | ||
} | ||
} | ||
{ | ||
Object.defineProperty(newProps, key, { | ||
enumerable: false, | ||
get: function () { | ||
console.warn("Don't use modificator prop:" + key + ", it will be removed soon"); | ||
return props[key]; | ||
}, | ||
}); | ||
} | ||
}; | ||
for (var _i = 0, modNames_1 = modNames; _i < modNames_1.length; _i++) { | ||
var key = modNames_1[_i]; | ||
_loop_2(key); | ||
} | ||
var className = entity(modifiers, [props.className]); | ||
newProps.className = className; | ||
newProps.className = entity(modifiers, [props.className]); | ||
return react.createElement(Base, newProps); | ||
@@ -148,0 +144,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
'use strict';function e(e){for(var r={},c=t.cn(e[0].__blockName),o=function(e){Object.keys(e.__mod).forEach(function(n){r[n]=r[n]||[],r[n].push(e.__mod[n])})},u=0,s=e;u<s.length;u++)o(s[u]);var i=Object.keys(r);return function(e){return function(t){for(var o={},u=a({},t),s=function(e){var n=t[e];-1!==r[e].indexOf(n)&&(o[e]=n),Object.defineProperty(u,e,{enumerable:0})},l=0,f=i;l<f.length;l++)s(f[l]);var m=c(o,[t.className]);return u.className=m,n.createElement(e,u)}}}function r(){for(var r=[],n=[],t=0,c=[].slice.call(arguments);t<c.length;t++){var a=c[t];a.__isSimple?r.push(a):n.push(a)}return(r.length?[e(r)].concat(n):n).reduce(function(e,r){return function(){return e(r.apply(0,arguments))}},function(e){return e})}Object.defineProperty(exports,'__esModule',{value:1});var n=require('react'),t=require('@bem-react/classname'),c=require('@bem-react/classnames'),a=function(){return(a=Object.assign||function(e){for(var r,n=1,t=arguments.length;n<t;n++)for(var c in r=arguments[n])({}).hasOwnProperty.call(r,c)&&(e[c]=r[c]);return e}).apply(this,arguments)};exports.compose=r,exports.composeU=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return r.apply(void 0,e)},exports.withBemMod=function(e,r,a){var o,u,s,i=function(i){var l,f;return o=o||t.cn(e),u=u||o(),function(e){if((s=s||Object.keys(r)).every(function(n){var t=r[n],c=e[n];return t===c||'*'===t&&Boolean(c)})){var t=s.reduce(function(e,n){return'*'!==r[n]&&(e[n]=r[n]),e},{});f=f||o(t);var m=Object.assign({},e);return m.className=c.classnames(f,e.className).replace(u+" ",''),void 0!==a?void 0===l&&(l=a(i)):l=i,n.createElement(l,m)}return n.createElement(i,e)}};return i.__blockName=e,i.__mod=r,i.__isSimple=!a,i}; | ||
'use strict';function e(e){for(var r={},a={},c=t.cn(e[0].__blockName),s=0,u=e;s<u.length;s++){var l=u[s],i=l.__mod,p=l.__value,f=l.__presentInProps;r[i]=r[i]||[],a[i]=a[i]||[],r[i].push(p),a[i].push(f)}var v=Object.keys(r);return function(e){return function(t){for(var s={},u=o({},t),l=0,i=v;l<i.length;l++){var p=i[l],f=t[p],_=r[p].indexOf(f);-1!==_&&(s[p]=f,a[p][_]||delete u[p])}return u.className=c(s,[t.className]),n.createElement(e,u)}}}function r(){for(var r=[],n=[],t=0,a=[].slice.call(arguments);t<a.length;t++){var o=a[t];o.__isSimple?r.push(o):n.push(o)}return(r.length?[e(r)].concat(n):n).reduce(function(e,r){return function(){return e(r.apply(0,arguments))}},function(e){return e})}Object.defineProperty(exports,'__esModule',{value:1});var n=require('react'),t=require('@bem-react/classname'),a=require('@bem-react/classnames'),o=function(){return(o=Object.assign||function(e){for(var r,n=1,t=arguments.length;n<t;n++)for(var a in r=arguments[n])({}).hasOwnProperty.call(r,a)&&(e[a]=r[a]);return e}).apply(this,arguments)};exports.compose=r,exports.composeU=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return r.apply(void 0,e)},exports.withBemMod=function(e,r,o){var c,s,u;void 0===o&&(o=1);var l=function(l){var i,p;return c=c||t.cn(e),s=s||c(),function(e){if((u=u||Object.keys(r)).every(function(n){var t=r[n],a=e[n];return t===a||'*'===t&&Boolean(a)})){var t=u.reduce(function(e,n){return'*'!==r[n]&&(e[n]=r[n]),e},{});p=p||c(t);var f=Object.assign({},e);return f.className=a.classnames(p,e.className).replace(s+" ",''),void 0!==o&&'boolean'!=typeof o?void 0===i&&(i=o(l)):i=l,n.createElement(i,f)}return n.createElement(l,e)}},i=Object.keys(r),p=1===i.length&&'boolean'!=typeof o?!o:1;return l.__blockName=e,l.__mod=i[0],l.__value=r[i[0]],l.__isSimple=p,l.__presentInProps=o,l}; |
@@ -7,7 +7,10 @@ import { ComponentType, StatelessComponent } from 'react'; | ||
export declare type Enhance<T extends IClassNameProps> = (WrappedComponent: ComponentType<T>) => ComponentType<T>; | ||
export declare function withBemMod<T, U extends IClassNameProps = {}>(blockName: string, mod: NoStrictEntityMods, enhance?: Enhance<T & U>): { | ||
declare type PresentInProps = boolean; | ||
export declare function withBemMod<T, U extends IClassNameProps = {}>(blockName: string, mod: NoStrictEntityMods, enhance?: Enhance<T & U> | PresentInProps): { | ||
<K extends IClassNameProps = {}>(WrappedComponent: ComponentType<T & K>): (props: T & K) => import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, string | any | (new (props: any) => import("react").Component<any, any, any>)> | null) | (new (props: any) => import("react").Component<any, any, any>)>; | ||
__blockName: string; | ||
__mod: Record<string, string | number | boolean | undefined>; | ||
__mod: string; | ||
__value: string | number | boolean | undefined; | ||
__isSimple: boolean; | ||
__presentInProps: boolean | Enhance<T & U>; | ||
}; | ||
@@ -14,0 +17,0 @@ export declare type ExtractProps<T> = T extends ComponentType<infer K> ? { |
{ | ||
"name": "@bem-react/core", | ||
"version": "2.0.11-dev.1+40cec2c", | ||
"version": "2.0.11-dev.2+8b65208", | ||
"description": "BEM React Core", | ||
@@ -51,3 +51,3 @@ "homepage": "https://github.com/bem/bem-react/tree/master/packages/core", | ||
}, | ||
"gitHead": "40cec2c96f57f7b4927af00834a6de9fdb197d5f" | ||
"gitHead": "8b65208ad831a87676433b97b935a33a9416e2b3" | ||
} |
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
61281
1
251