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.
		
		
		
		
			
				
					20 lines
				
				640 B
			
		
		
			
		
	
	
					20 lines
				
				640 B
			| 
											4 months ago
										 | // 合并 map
 | ||
|  | @function map-deep-merge($parent-map, $child-map){ | ||
|  | 	$result: $parent-map; | ||
|  | 	@each $key, $child in $child-map { | ||
|  | 		$parent-has-key: map-has-key($result, $key); | ||
|  | 		$parent-value: map-get($result, $key); | ||
|  | 		$parent-type: type-of($parent-value); | ||
|  | 		$child-type: type-of($child); | ||
|  | 		$parent-is-map: $parent-type == map; | ||
|  | 		$child-is-map: $child-type == map; | ||
|  | 			 | ||
|  | 		@if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ | ||
|  | 			$result: map-merge($result, ( $key: $child )); | ||
|  | 		}@else { | ||
|  | 			$result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	@return $result; | ||
|  | }; |