UNPKG

eapp-amis-theme-editor

Version:

amis主题编辑器

85 lines (77 loc) 2.62 kB
/** * amis-theme-editor v2.0.11-beta.2 * Copyright 2018-2023 @fex */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var cloneDeep = require('lodash/cloneDeep'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var cloneDeep__default = /*#__PURE__*/_interopDefaultLegacy(cloneDeep); /** * 根据路径获取默认值 */ function getValueByPath(path, data) { try { if (!path || !data) { return null; } var res_1 = {}; var getValue_1 = function (p) { var keys = p.split('.'); var value = cloneDeep__default["default"](data.themeConfig.component); var defaultToken = ''; var _loop_1 = function (i) { var key = keys[i]; var isVar = /\$\{(.*)\}/.exec(key) || []; if (isVar[1]) { key = data[isVar[1]] || 'default'; } if (Array.isArray(value)) { value = value.find(function (n) { return n.type === key; }); } else { if (key === 'hover' || key === 'active' || key === 'disabled') { defaultToken = value['default'].token; } value = value[key]; } }; for (var i = 0; i < keys.length; i++) { _loop_1(i); } if (defaultToken && value) { // 继承default if (typeof value === 'object') { for (var key in value) { if (value[key] === "var(".concat(defaultToken).concat(key, ")")) { value[key] = 'inherit'; } } } else { if (value === "var(".concat(defaultToken).concat(keys[keys.length - 1], ")")) { value = 'inherit'; } } } return value; }; if (Array.isArray(path)) { path.forEach(function (p) { var value = getValue_1(p); if (typeof value === 'string') { value = { color: value }; } res_1 = Object.assign(res_1, value); }); } else { res_1 = getValue_1(path); } return res_1; } catch (e) { return null; } } exports.getValueByPath = getValueByPath;