Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F101074133
jss-plugin-compose.esm.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Feb 5, 11:43
Size
1 KB
Mime Type
text/x-java
Expires
Fri, Feb 7, 11:43 (2 d)
Engine
blob
Format
Raw Data
Handle
24087201
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
jss-plugin-compose.esm.js
View Options
import warning from 'tiny-warning';
/**
* Set selector.
*
* @param original rule
* @param className class string
* @return flag indicating function was successfull or not
*/
function registerClass(rule, className) {
// Skip falsy values
if (!className) return true; // Support array of class names `{composes: ['foo', 'bar']}`
if (Array.isArray(className)) {
for (var index = 0; index < className.length; index++) {
var isSetted = registerClass(rule, className[index]);
if (!isSetted) return false;
}
return true;
} // Support space separated class names `{composes: 'foo bar'}`
if (className.indexOf(' ') > -1) {
return registerClass(rule, className.split(' '));
}
var parent = rule.options.parent; // It is a ref to a local rule.
if (className[0] === '$') {
var refRule = parent.getRule(className.substr(1));
if (!refRule) {
process.env.NODE_ENV !== "production" ? warning(false, "[JSS] Referenced rule is not defined. \n" + rule.toString()) : void 0;
return false;
}
if (refRule === rule) {
process.env.NODE_ENV !== "production" ? warning(false, "[JSS] Cyclic composition detected. \n" + rule.toString()) : void 0;
return false;
}
parent.classes[rule.key] += " " + parent.classes[refRule.key];
return true;
}
parent.classes[rule.key] += " " + className;
return true;
}
/**
* Convert compose property to additional class, remove property from original styles.
*/
function jssCompose() {
function onProcessStyle(style, rule) {
if (!('composes' in style)) return style;
registerClass(rule, style.composes); // Remove composes property to prevent infinite loop.
delete style.composes;
return style;
}
return {
onProcessStyle: onProcessStyle
};
}
export default jssCompose;
Event Timeline
Log In to Comment