stylesheets/flint/functions/lib/_calc-width.scss in flint-gs-1.6.5 vs stylesheets/flint/functions/lib/_calc-width.scss in flint-gs-1.7.0
- old
+ new
@@ -4,38 +4,47 @@
// @param $span [number] : span value of element
// @param $context [number] : context value of element
// -------------------------------------------------------------------------------
// @return calculated value | false
-@function calc-width($key, $span, $context: null) {
- @if get-value("settings", "grid") == "fluid" {
+@function flint-calc-width($key, $span, $context: null) {
+ $result: false;
+ // Check to see if value has been cached
+ @if map-has-key($flint__cached-values, "#{$key, $span, $context}::width") and $context != "auto" {
+ @return map-get($flint__cached-values, "#{$key, $span, $context}::width");
+ }
+
+ @if flint-get-value("settings", "grid") == "fluid" {
@if $key == "container" or $span == "container" {
- @return fluid-width(get-value($key, "breakpoint"), get-value($key, "breakpoint"));
+ $result: flint-fluid-width(flint-get-value($key, "breakpoint"), flint-get-value($key, "breakpoint"));
} @else if $context == null {
- @return fluid-width((get-value($key, "breakpoint") / get-value($key, "columns") * $span), get-value($key, "breakpoint"));
+ $result: flint-fluid-width((flint-get-value($key, "breakpoint") / flint-get-value($key, "columns") * $span), flint-get-value($key, "breakpoint"));
} @else {
- @return fluid-width((get-value($key, "breakpoint") / get-value($key, "columns") * $span), ((get-value($key, "breakpoint") / get-value($key, "columns") * $context)));
+ $result: flint-fluid-width((flint-get-value($key, "breakpoint") / flint-get-value($key, "columns") * $span), ((flint-get-value($key, "breakpoint") / flint-get-value($key, "columns") * $context)));
}
-
- } @if get-value("settings", "grid") == "fixed" {
-
+ } @if flint-get-value("settings", "grid") == "fixed" {
@if $key == "container" or $span == "container" {
- @return get-value($key, "breakpoint");
+ $result: flint-get-value($key, "breakpoint");
} @else {
- @return get-value($key, "breakpoint") / get-value($key, "columns") * $span;
+ $result: flint-get-value($key, "breakpoint") / flint-get-value($key, "columns") * $span;
}
+ }
- } @else {
- @return false;
+ // Save result to cache
+ @if $context != "auto" {
+ $flint__cached-values: map-merge($flint__cached-values, ("#{$key, $span, $context}::width": $result));
}
+
+ // Return result
+ @return $result;
}