You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					53 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					53 lines
				
				1.9 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								function getRegisteredStyles(registered, registeredStyles, classNames) {
							 | 
						||
| 
								 | 
							
								  var rawClassName = '';
							 | 
						||
| 
								 | 
							
								  classNames.split(' ').forEach(function (className) {
							 | 
						||
| 
								 | 
							
								    if (registered[className] !== undefined) {
							 | 
						||
| 
								 | 
							
								      registeredStyles.push(registered[className] + ";");
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      rawClassName += className + " ";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  return rawClassName;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								var registerStyles = function registerStyles(cache, serialized, isStringTag) {
							 | 
						||
| 
								 | 
							
								  var className = cache.key + "-" + serialized.name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if ( // we only need to add the styles to the registered cache if the
							 | 
						||
| 
								 | 
							
								  // class name could be used further down
							 | 
						||
| 
								 | 
							
								  // the tree but if it's a string tag, we know it won't
							 | 
						||
| 
								 | 
							
								  // so we don't have to add it to registered cache.
							 | 
						||
| 
								 | 
							
								  // this improves memory usage since we can avoid storing the whole style string
							 | 
						||
| 
								 | 
							
								  (isStringTag === false || // we need to always store it if we're in compat mode and
							 | 
						||
| 
								 | 
							
								  // in node since emotion-server relies on whether a style is in
							 | 
						||
| 
								 | 
							
								  // the registered cache to know whether a style is global or not
							 | 
						||
| 
								 | 
							
								  // also, note that this check will be dead code eliminated in the browser
							 | 
						||
| 
								 | 
							
								   cache.compat !== undefined) && cache.registered[className] === undefined) {
							 | 
						||
| 
								 | 
							
								    cache.registered[className] = serialized.styles;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var insertStyles = function insertStyles(cache, serialized, isStringTag) {
							 | 
						||
| 
								 | 
							
								  registerStyles(cache, serialized, isStringTag);
							 | 
						||
| 
								 | 
							
								  var className = cache.key + "-" + serialized.name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (cache.inserted[serialized.name] === undefined) {
							 | 
						||
| 
								 | 
							
								    var stylesForSSR = '';
							 | 
						||
| 
								 | 
							
								    var current = serialized;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    do {
							 | 
						||
| 
								 | 
							
								      var maybeStyles = cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if ( maybeStyles !== undefined) {
							 | 
						||
| 
								 | 
							
								        stylesForSSR += maybeStyles;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      current = current.next;
							 | 
						||
| 
								 | 
							
								    } while (current !== undefined);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if ( stylesForSSR.length !== 0) {
							 | 
						||
| 
								 | 
							
								      return stylesForSSR;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export { getRegisteredStyles, insertStyles, registerStyles };
							 |