UNPKG

amis-theme-editor

Version:

amis主题编辑器

186 lines (178 loc) 5.75 kB
/** * amis-theme-editor v2.0.22-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; } } /** * 获取继承值 */ function getInheritValue(path, data) { try { if (!path || !data) { return null; } var res_2 = {}; var getValue_2 = function (p) { var keys = p.split('.'); var value = cloneDeep__default["default"](data.themeConfig.component); var defaultToken = ''; var _loop_2 = 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['default']; } else { value = value[key]; } } if (!value) { return "break"; } }; for (var i = 0; i < keys.length; i++) { var state_1 = _loop_2(i); if (state_1 === "break") break; } if (defaultToken && value) { return value; } return null; }; if (Array.isArray(path)) { path.forEach(function (p) { var value = getValue_2(p); if (typeof value === 'string') { value = { color: value }; } res_2 = Object.assign(res_2, value); }); } else { res_2 = getValue_2(path); } return res_2; } catch (e) { return null; } } // 处理传入的继承数据 function formatInheritData(data) { if (typeof data === 'string' && data.indexOf('inherit:') > -1) { return 'inherit'; } if (!data || typeof data !== 'object') { return data; } data = cloneDeep__default["default"](data); for (var key in data) { if (typeof data[key] === 'string' && data[key].indexOf('inherit:') > -1) { data[key] = 'inherit'; } } return data; } // 设置继承数据 function setInheritData(value, editorInheritValue) { if (value && editorInheritValue) { if (typeof value === 'string') { if (value === 'inherit') { value = 'inherit:' + (editorInheritValue || ''); } } else { value = cloneDeep__default["default"](value); for (var key in value) { if (value[key] === 'inherit') { value[key] = 'inherit:' + (editorInheritValue[key] || ''); } } } } return value; } exports.formatInheritData = formatInheritData; exports.getInheritValue = getInheritValue; exports.getValueByPath = getValueByPath; exports.setInheritData = setInheritData;