47 lines
917 B
SCSS
47 lines
917 B
SCSS
|
///
|
||
|
/// Replaces `$old` by `$new` in `$list`.
|
||
|
///
|
||
|
/// @ignore Documentation: http://at-import.github.io/SassyLists/documentation/#function-sl-replace
|
||
|
///
|
||
|
/// @requires sl-is-true
|
||
|
/// @requires sl-purge
|
||
|
/// @requires sl-to-list
|
||
|
///
|
||
|
/// @param {List} $list - list to update
|
||
|
/// @param {*} $old - value to replace
|
||
|
/// @param {*} $value - new value for $old
|
||
|
///
|
||
|
/// @example
|
||
|
/// sl-replace(a b c, b, z)
|
||
|
/// // a z c
|
||
|
///
|
||
|
/// @example
|
||
|
/// sl-replace(a b c, y, z)
|
||
|
/// // a b c
|
||
|
///
|
||
|
/// @return {List}
|
||
|
///
|
||
|
|
||
|
@function sl-replace($list, $old, $value) {
|
||
|
$_: sl-missing-dependencies('sl-is-true', 'sl-purge', 'sl-to-list');
|
||
|
|
||
|
$running: true;
|
||
|
|
||
|
@while $running {
|
||
|
$index: index($list, $old);
|
||
|
|
||
|
@if not $index {
|
||
|
$running: false;
|
||
|
}
|
||
|
|
||
|
@else {
|
||
|
$list: set-nth($list, $index, $value);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
$list: if(sl-is-true($value), $list, sl-purge($list));
|
||
|
|
||
|
@return sl-to-list($list);
|
||
|
}
|