| | |
| | | // 合并 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; |
| | | }; |
| | | // 合并 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;
|
| | | };
|