choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
45 lines (40 loc) • 2.02 kB
JavaScript
import { defaultColorCssVarsMap } from '../style/color-vars-map';
import { getAllCssVars } from './util';
import { canUseDom, updateCSS } from './dynamicCss';
/**
* css 变量 注册到 style 标签中
* @param allCssVarsData css 变量对象(不加--前缀)
* @param cssVarsPriority css 变量优先级
* @param styleFlagPrefix style 标签 标识前缀
*/
export var registerCssVars = function registerCssVars(allCssVarsData) {
var cssVarsPriority = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var styleFlagPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'c7n-ui';
// Convert to css variables
var cssList = Object.keys(allCssVarsData).map(function (key) {
return "--".concat(key, ": ").concat(allCssVarsData[key], ";");
});
cssVarsPriority = Math.floor(cssVarsPriority);
var selector = ':root'.repeat(cssVarsPriority <= 1 || Number.isNaN(cssVarsPriority) ? 1 : cssVarsPriority);
var cssStr = "\n ".concat(selector, " {\n ").concat(cssList.join('\n'), "\n }\n ").trim();
if (canUseDom()) {
updateCSS(cssStr, "".concat(styleFlagPrefix, "-dynamic-theme"));
}
};
/**
* 配置 css 变量
* @param varsData css 变量对象(不加--前缀)
* @param cssVarsPriority css 变量优先级
* @param styleFlagPrefix style 标签 标识前缀
* @param colorVarsMap 颜色 css vars 级联关系, 默认值为组件库内部变量关系
*/
var configCssVars = function configCssVars(varsData) {
var cssVarsPriority = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var styleFlagPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'c7n-ui';
var colorVarsMap = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultColorCssVarsMap;
if (!varsData) return;
var allCssVarsData = getAllCssVars(varsData, colorVarsMap);
registerCssVars(allCssVarsData, cssVarsPriority, styleFlagPrefix);
};
export { configCssVars };
//# sourceMappingURL=configCssVars.js.map