Blame view

天文台pc/tianwentai-ui/node_modules/classnames/bind.js 1.55 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  /*!
  	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;
  
  	function classNames () {
  		var classes = '';
  
  		for (var i = 0; i < arguments.length; i++) {
  			var arg = arguments[i];
  			if (arg) {
  				classes = appendClass(classes, parseValue.call(this, arg));
  			}
  		}
  
  		return classes;
  	}
  
  	function parseValue (arg) {
  		if (typeof arg === 'string' || typeof arg === 'number') {
  			return this && this[arg] || arg;
  		}
  
  		if (typeof arg !== 'object') {
  			return '';
  		}
  
  		if (Array.isArray(arg)) {
  			return classNames.apply(this, arg);
  		}
  
  		if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
  			return arg.toString();
  		}
  
  		var classes = '';
  
  		for (var key in arg) {
  			if (hasOwn.call(arg, key) && arg[key]) {
  				classes = appendClass(classes, this && this[key] || key);
  			}
  		}
  
  		return classes;
  	}
  
  	function appendClass (value, newClass) {
  		if (!newClass) {
  			return value;
  		}
  	
  		if (value) {
  			return value + ' ' + newClass;
  		}
  	
  		return value + newClass;
  	}
  
  	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;
  	}
  }());