12345678910111213141516171819 |
- @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;
- };
|