From b568aba752d8b24ad31750c00f384ca96d338a50 Mon Sep 17 00:00:00 2001 From: Alireza Mirian Date: Tue, 12 Mar 2019 14:21:53 +0000 Subject: [PATCH] fix(colors): handle null or undefined in md-colors If md-colors expression evaluates to an object like `{ backgroundColor: undefined }`, md-colors should handle it and remove backgroundColor css property. --- src/components/colors/colors.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/colors/colors.js b/src/components/colors/colors.js index 1f7d41f527a..d22491ca85a 100644 --- a/src/components/colors/colors.js +++ b/src/components/colors/colors.js @@ -121,6 +121,9 @@ * @returns rgba color string */ function parseColor(color, contrast) { + if(!color) { + return ''; + } contrast = contrast || false; var rgbValues = $mdTheming.PALETTES[color.palette][color.hue]; @@ -171,6 +174,9 @@ * For the evaluated expression, extract the color parts into a hash map */ function extractColorOptions(expression) { + if(!expression) { + return undefined; + } var parts = expression.split('-'); var hasTheme = angular.isDefined($mdTheming.THEMES[parts[0]]); var theme = hasTheme ? parts.splice(0, 1)[0] : $mdTheming.defaultTheme(); @@ -316,7 +322,7 @@ if (mdThemeController) { Object.keys(colors).forEach(function (prop) { var color = colors[prop]; - if (!$mdColors.hasTheme(color)) { + if (color && !$mdColors.hasTheme(color)) { colors[prop] = (theme || mdThemeController.$mdTheme) + '-' + color; } });