| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/node_modules/vuetify/src/styles/tools/ |
Upload File : |
@function map-deep-set($map, $keys, $value)
$maps: ($map,)
$result: null
// If the last key is a map already
// Warn the user we will be overriding it with $value
@if type-of(nth($keys, -1)) == "map"
@warn "The last key you specified is a map; it will be overrided with `#{$value}`."
// If $keys is a single key
// Just merge and return
@if length($keys) == 1
@return map-merge($map, ( $keys: $value ))
// Loop from the first to the second to last key from $keys
// Store the associated map to this key in the $maps list
// If the key doesn't exist, throw an error
@for $i from 1 through length($keys) - 1
$current-key: nth($keys, $i)
$current-map: nth($maps, -1)
$current-get: map-get($current-map, $current-key)
@if $current-get == null
@error "Key `#{$key}` doesn't exist at current level in map."
$maps: append($maps, $current-get)
// Loop from the last map to the first one
// Merge it with the previous one
@for $i from length($maps) through 1
$current-map: nth($maps, $i)
$current-key: nth($keys, $i)
$current-val: if($i == length($maps), $value, $result)
$result: map-merge($current-map, ($current-key: $current-val))
// Return result
@return $result
@function map-deep-get($map, $keys...)
@each $key in $keys
$map: map-get($map, $key)
@return $map
@function breakpoint-min($name, $breakpoints: $grid-breakpoints)
$min: map-get($breakpoints, $name)
@return if($min != 0, $min, null)
@function breakpoint-infix($name, $breakpoints: $grid-breakpoints)
@return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}")
// Adapted from https://gist.github.com/pentzzsolt/4949bbd7691d43d00616dc4f1451cae9#file-non-destructive-map-merge-4-scss
@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