@shopgate/pwa-common
Version:
Common library for the Shopgate Connect PWA.
9 lines • 1.44 kB
JavaScript
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{themeConfig as mockConfig}from"./mock";import{assignObjectDeep}from"../data";/**
* Provides a default theme config as a fallback.
* @type {Object}
*/var defaultConfig={typography:{},colors:{},variables:{},shadows:{}};/**
* Builds and returns a new theme config object.
* @param {Object} appConfig The app config.
* @returns {Object}
*/export function buildThemeConfig(appConfig){if(process.env.NODE_ENV==='test'){return mockConfig;}var _appConfig$colors=appConfig.colors,colors=_appConfig$colors===void 0?{}:_appConfig$colors,_appConfig$theme=appConfig.theme,theme=_appConfig$theme===void 0?{}:_appConfig$theme;var oldTheme=process.env.THEME_CONFIG||defaultConfig;var themeConfig=_extends({},theme);assignObjectDeep(themeConfig,{colors:_extends({},colors,{},oldTheme.colors),variables:_extends({},oldTheme.variables||{},{materialShadow:theme.shadows.material})});// Force cta colors
if(!themeConfig.colors.cta&&themeConfig.colors.primary){themeConfig.colors.cta=themeConfig.colors.primary;}if(!themeConfig.colors.ctaContrast&&themeConfig.colors.primaryContrast){themeConfig.colors.ctaContrast=themeConfig.colors.primaryContrast;}return themeConfig;}