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.
		
		
		
		
		
			
		
			
				
					
					
						
							19 lines
						
					
					
						
							640 B
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							19 lines
						
					
					
						
							640 B
						
					
					
				
								// 合并 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;
							 | 
						|
								};
							 |