Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// we start iterating from the last score=0 entry
// to correctly inject pseudo classes etc.
const startIndex = renderer.scoreIndex[nodeReference] || 0
for (let i = startIndex, len = cssRules.length; i < len; ++i) {
if (cssRules[i].score > score) {
index = i
break
}
}
}
const cssRule = generateCSSRule(selector, declaration)
if (support.length > 0) {
const cssSupportRule = generateCSSSupportRule(support, cssRule)
node.sheet.insertRule(cssSupportRule, index)
} else {
node.sheet.insertRule(cssRule, index)
}
if (score === 0) {
renderer.scoreIndex[nodeReference] = index
}
cssRules[index].score = score
} catch (e) {
// We're disabled these warnings due to false-positive errors with browser prefixes
// See https://github.com/robinweser/fela/issues/634
// console.warn(
// `An error occurred while inserting the rules into DOM.\n`,
// declaration.replace(/;/g, ';\n'),
support,
property.slice(9).trim()
)
classNames += renderer._renderStyleToClassNames(
value,
pseudo,
media,
combinedSupport
)
} else {
console.warn(`The object key "${property}" is not a valid nested key in Fela.
Maybe you forgot to add a plugin to resolve it?
Check http://fela.js.org/docs/basics/Rules.html#styleobject for more information.`)
}
} else {
const declarationReference = generateDeclarationReference(
property,
value,
pseudo,
media,
support
)
if (!renderer.cache.hasOwnProperty(declarationReference)) {
// we remove undefined values to enable
// usage of optional props without side-effects
if (isUndefinedValue(value)) {
renderer.cache[declarationReference] = {
className: '',
}
/* eslint-disable no-continue */
continue
if (!theme) {
throw new Error(
"createComponent() can't render styles without the theme in the context. Wrap the root of your app with ."
);
}
// compose passThrough props from arrays or functions
const resolvedPassThrough = [
...resolvePassThrough(passThroughProps, ruleProps)
];
if (ruleProps.className) {
console.warn(`You cannot restyle Fela component ${componentName}`);
}
const componentProps = extractPassThroughProps(
resolvedPassThrough,
ruleProps
);
ruleProps.theme = theme || {};
if (ruleProps.style) {
componentProps.style = ruleProps.style;
}
componentProps.className = renderer.renderRule(rule, ruleProps);
if (ruleProps.id) {
componentProps.id = ruleProps.id;
}
// basic media query rules
if (
cacheCluster.mediaRules[media] &&
cacheCluster.mediaRules[media].length > 0
) {
markup += createStyleTagMarkup(
cacheCluster.mediaRules[media],
RULE_TYPE,
media,
rehydrationIndex
)
}
// support media rules
if (cacheCluster.supportMediaRules[media]) {
const mediaSupport = cssifySupportRules(
cacheCluster.supportMediaRules[media]
)
if (mediaSupport.length > 0) {
markup += createStyleTagMarkup(
mediaSupport,
RULE_TYPE,
media,
rehydrationIndex,
true
)
}
}
return markup
},
// basic media query rules
if (
cacheCluster.mediaRules[media] &&
cacheCluster.mediaRules[media].length > 0
) {
list.push({
css: cacheCluster.mediaRules[media],
type: RULE_TYPE,
rehydration: rehydrationIndex,
media,
})
}
// support media rules
if (cacheCluster.supportMediaRules[media]) {
const mediaSupport = cssifySupportRules(
cacheCluster.supportMediaRules[media]
)
if (mediaSupport.length > 0) {
list.push({
css: mediaSupport,
type: RULE_TYPE,
rehydration: rehydrationIndex,
support: true,
media,
})
}
}
return list
},
renderer.supportQueryOrder
)
let styleMarkup = objectReduce(
sheetMap,
(markup, type, key) => {
if (cacheCluster[key].length > 0) {
markup += createStyleTagMarkup(cacheCluster[key], type, '')
}
return markup
},
''
)
const support = cssifySupportRules(cacheCluster.supportRules)
if (support) {
styleMarkup += createStyleTagMarkup(support, RULE_TYPE, '', true)
}
const mediaKeys = Object.keys({
...cacheCluster.supportMediaRules,
...cacheCluster.mediaRules,
})
return arrayReduce(
mediaKeys,
(markup, media) => {
// basic media query rules
if (
cacheCluster.mediaRules[media] &&
(markup, media) => {
// basic media query rules
if (
cacheCluster.mediaRules[media] &&
cacheCluster.mediaRules[media].length > 0
) {
markup += createStyleTagMarkup(
cacheCluster.mediaRules[media],
RULE_TYPE,
media
)
}
// support media rules
if (cacheCluster.supportMediaRules[media]) {
const mediaSupport = cssifySupportRules(
cacheCluster.supportMediaRules[media]
)
if (mediaSupport.length > 0) {
markup += createStyleTagMarkup(mediaSupport, RULE_TYPE, media, true)
}
}
return markup
},
styleMarkup
Maybe you forgot to add a plugin to resolve it?
Check http://fela.js.org/docs/basics/Rules.html#styleobject for more information.`)
}
} else {
const declarationReference = generateDeclarationReference(
property,
value,
pseudo,
media,
support
)
if (!renderer.cache.hasOwnProperty(declarationReference)) {
// we remove undefined values to enable
// usage of optional props without side-effects
if (isUndefinedValue(value)) {
renderer.cache[declarationReference] = {
className: '',
}
/* eslint-disable no-continue */
continue
/* eslint-enable */
}
const className =
renderer.selectorPrefix +
generateClassName(
renderer.getNextRuleIdentifier,
renderer.filterClassName
)
const declaration = cssifyDeclaration(property, value)
} else if (isSupport(property)) {
const combinedSupport = generateCombinedMediaQuery(
support,
property.slice(9).trim()
)
renderer._renderStyleToCache(
className,
value,
pseudo,
media,
combinedSupport
)
} else {
// TODO: warning
}
} else if (!isUndefinedValue(value)) {
ruleset[property] = value
}
return ruleset
},
{}
renderKeyframe(keyframe: Function, props: Object = {}): string {
const resolvedKeyframe = keyframe(props, renderer)
const processedKeyframe = processStyleWithPlugins(
renderer,
resolvedKeyframe,
KEYFRAME_TYPE,
props
)
const keyframeReference = JSON.stringify(processedKeyframe)
if (!renderer.cache.hasOwnProperty(keyframeReference)) {
// use another unique identifier to ensure minimal css markup
const animationName =
renderer.selectorPrefix +
generateAnimationName(++renderer.uniqueKeyframeIdentifier)
const cssKeyframe = cssifyKeyframe(
processedKeyframe,