"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.registerCssVars = exports.configCssVars = void 0;

var _colorVarsMap = require("../style/color-vars-map");

var _util = require("./util");

var _dynamicCss = require("./dynamicCss");

/**
 * css 变量 注册到 style 标签中
 * @param allCssVarsData css 变量对象(不加--前缀)
 * @param cssVarsPriority css 变量优先级
 * @param styleFlagPrefix style 标签 标识前缀
 */
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 ((0, _dynamicCss.canUseDom)()) {
    (0, _dynamicCss.updateCSS)(cssStr, "".concat(styleFlagPrefix, "-dynamic-theme"));
  }
};
/**
 * 配置 css 变量
 * @param varsData css 变量对象(不加--前缀)
 * @param cssVarsPriority css 变量优先级
 * @param styleFlagPrefix style 标签 标识前缀
 * @param colorVarsMap 颜色 css vars 级联关系, 默认值为组件库内部变量关系
 */


exports.registerCssVars = registerCssVars;

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] : _colorVarsMap.defaultColorCssVarsMap;
  if (!varsData) return;
  var allCssVarsData = (0, _util.getAllCssVars)(varsData, colorVarsMap);
  registerCssVars(allCssVarsData, cssVarsPriority, styleFlagPrefix);
};

exports.configCssVars = configCssVars;
//# sourceMappingURL=configCssVars.js.map
