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.
		
		
		
		
		
			
		
			
				
					61 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					61 lines
				
				1.4 KiB
			| 
											3 years ago
										 | /*! | ||
|  | 	Copyright (c) 2018 Jed Watson. | ||
|  | 	Licensed under the MIT License (MIT), see | ||
|  | 	http://jedwatson.github.io/classnames
 | ||
|  | */ | ||
|  | /* global define */ | ||
|  | 
 | ||
|  | (function () { | ||
|  | 	'use strict'; | ||
|  | 
 | ||
|  | 	var hasOwn = {}.hasOwnProperty; | ||
|  | 	var nativeCodeString = '[native code]'; | ||
|  | 
 | ||
|  | 	function classNames() { | ||
|  | 		var classes = []; | ||
|  | 
 | ||
|  | 		for (var i = 0; i < arguments.length; i++) { | ||
|  | 			var arg = arguments[i]; | ||
|  | 			if (!arg) continue; | ||
|  | 
 | ||
|  | 			var argType = typeof arg; | ||
|  | 
 | ||
|  | 			if (argType === 'string' || argType === 'number') { | ||
|  | 				classes.push(arg); | ||
|  | 			} else if (Array.isArray(arg)) { | ||
|  | 				if (arg.length) { | ||
|  | 					var inner = classNames.apply(null, arg); | ||
|  | 					if (inner) { | ||
|  | 						classes.push(inner); | ||
|  | 					} | ||
|  | 				} | ||
|  | 			} else if (argType === 'object') { | ||
|  | 				if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) { | ||
|  | 					classes.push(arg.toString()); | ||
|  | 					continue; | ||
|  | 				} | ||
|  | 
 | ||
|  | 				for (var key in arg) { | ||
|  | 					if (hasOwn.call(arg, key) && arg[key]) { | ||
|  | 						classes.push(key); | ||
|  | 					} | ||
|  | 				} | ||
|  | 			} | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return classes.join(' '); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	if (typeof module !== 'undefined' && module.exports) { | ||
|  | 		classNames.default = classNames; | ||
|  | 		module.exports = classNames; | ||
|  | 	} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) { | ||
|  | 		// register as 'classnames', consistent with npm package name
 | ||
|  | 		define('classnames', [], function () { | ||
|  | 			return classNames; | ||
|  | 		}); | ||
|  | 	} else { | ||
|  | 		window.classNames = classNames; | ||
|  | 	} | ||
|  | }()); |