@alauda-fe/common
Version:
Alauda frontend team common codes.
70 lines • 9.63 kB
JavaScript
import { cloneDeep } from 'lodash-es';
const LIGHT_COLORS = {
main: '#7c7e81', // n-3
secondary: '#aeb0b3', // n-5
background: '#f7f9fc', // button-bg
main_active: '#007af5', // primary
secondary_active: '#66aff9', // p-3
background_active: '#cce4fd', // p-5
};
const DARK_COLORS = {
main: '#b8bac2', // n-3
secondary: '#90939f', // n-5
background: '#383b47', // button-bg
main_active: '#3d8eff', // primary
secondary_active: '#3265ad', // p-3
background_active: '#283651', // p-5
};
const colorsMap = reduceColors(window.__NAV_ICON_CUSTOM_COLORS ?? DARK_COLORS);
export function replaceLottieColorsByTheme(theme, lottieObj) {
lottieObj = cloneDeep(lottieObj);
if (theme === 'light' && !window.__NAV_ICON_CUSTOM_COLORS) {
return lottieObj;
}
return replaceLottieColors(colorsMap, lottieObj);
}
function hex(v) {
return v.slice(0, 3).reduce((acc, curr) => {
const hex = Math.floor(curr * 255).toString(16);
return acc + (hex.length < 2 ? '0' + hex : hex);
}, '#');
}
function lottie(v) {
const result = /^#?([\da-f]{2})([\da-f]{2})([\da-f]{2})$/i.exec(v);
return result.slice(1).map(item => parseInt(item, 16) / 255);
}
function replaceLottieColors(mapper, lottieObj) {
const replace = Object.entries(mapper).reduce((acc, [key, value]) => {
acc[key] = lottie(value);
return acc;
}, {});
const doReplace = (obj) => {
if (obj.s && Array.isArray(obj.s) && obj.s.length === 4) {
obj.s = replace[hex(obj.s)]?.concat(obj.s[3]) || obj.s;
}
else if (obj.c?.k) {
if (Array.isArray(obj.c.k) && typeof obj.c.k[0] !== 'number') {
doReplace(obj.c.k);
}
else {
obj.c.k = replace[hex(obj.c.k)] || obj.c.k;
}
}
else {
for (const key in obj) {
if (typeof obj[key] === 'object') {
doReplace(obj[key]);
}
}
}
return obj;
};
return doReplace(lottieObj);
}
function reduceColors(mapper) {
return Object.entries(mapper).reduce((acc, [key, value]) => {
acc[LIGHT_COLORS[key]] = value;
return acc;
}, {});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1sb3R0aWUtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9sb3R0aWUtaWNvbnMvcmVwbGFjZS1sb3R0aWUtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsTUFBTSxZQUFZLEdBQTJCO0lBQzNDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUN2QixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU07SUFDNUIsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZO0lBQ25DLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVTtJQUNsQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUNuQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTTtDQUNyQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQTJCO0lBQzFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUN2QixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU07SUFDNUIsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZO0lBQ25DLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVTtJQUNsQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUNuQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTTtDQUNyQyxDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUMzQixNQUFjLENBQUMsd0JBQXdCLElBQUksV0FBVyxDQUN4RCxDQUFDO0FBRUYsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQWEsRUFBRSxTQUFjO0lBQ3RFLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFakMsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUUsTUFBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDbkUsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sbUJBQW1CLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFXO0lBQ3RCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDVixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsQ0FBUztJQUN2QixNQUFNLE1BQU0sR0FBRywyQ0FBMkMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsTUFBOEIsRUFBRSxTQUFjO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDbEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUE4QixDQUFDLENBQUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRTtRQUM3QixJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEQsR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdELFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNqQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE1BQThCO0lBQ2xELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN6RCxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQy9CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgTElHSFRfQ09MT1JTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBtYWluOiAnIzdjN2U4MScsIC8vIG4tM1xuICBzZWNvbmRhcnk6ICcjYWViMGIzJywgLy8gbi01XG4gIGJhY2tncm91bmQ6ICcjZjdmOWZjJywgLy8gYnV0dG9uLWJnXG4gIG1haW5fYWN0aXZlOiAnIzAwN2FmNScsIC8vIHByaW1hcnlcbiAgc2Vjb25kYXJ5X2FjdGl2ZTogJyM2NmFmZjknLCAvLyBwLTNcbiAgYmFja2dyb3VuZF9hY3RpdmU6ICcjY2NlNGZkJywgLy8gcC01XG59O1xuXG5jb25zdCBEQVJLX0NPTE9SUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgbWFpbjogJyNiOGJhYzInLCAvLyBuLTNcbiAgc2Vjb25kYXJ5OiAnIzkwOTM5ZicsIC8vIG4tNVxuICBiYWNrZ3JvdW5kOiAnIzM4M2I0NycsIC8vIGJ1dHRvbi1iZ1xuICBtYWluX2FjdGl2ZTogJyMzZDhlZmYnLCAvLyBwcmltYXJ5XG4gIHNlY29uZGFyeV9hY3RpdmU6ICcjMzI2NWFkJywgLy8gcC0zXG4gIGJhY2tncm91bmRfYWN0aXZlOiAnIzI4MzY1MScsIC8vIHAtNVxufTtcblxuY29uc3QgY29sb3JzTWFwID0gcmVkdWNlQ29sb3JzKFxuICAod2luZG93IGFzIGFueSkuX19OQVZfSUNPTl9DVVNUT01fQ09MT1JTID8/IERBUktfQ09MT1JTLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VMb3R0aWVDb2xvcnNCeVRoZW1lKHRoZW1lOiBzdHJpbmcsIGxvdHRpZU9iajogYW55KSB7XG4gIGxvdHRpZU9iaiA9IGNsb25lRGVlcChsb3R0aWVPYmopO1xuXG4gIGlmICh0aGVtZSA9PT0gJ2xpZ2h0JyAmJiAhKHdpbmRvdyBhcyBhbnkpLl9fTkFWX0lDT05fQ1VTVE9NX0NPTE9SUykge1xuICAgIHJldHVybiBsb3R0aWVPYmo7XG4gIH1cblxuICByZXR1cm4gcmVwbGFjZUxvdHRpZUNvbG9ycyhjb2xvcnNNYXAsIGxvdHRpZU9iaik7XG59XG5cbmZ1bmN0aW9uIGhleCh2OiBudW1iZXJbXSk6IHN0cmluZyB7XG4gIHJldHVybiB2LnNsaWNlKDAsIDMpLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgY29uc3QgaGV4ID0gTWF0aC5mbG9vcihjdXJyICogMjU1KS50b1N0cmluZygxNik7XG4gICAgcmV0dXJuIGFjYyArIChoZXgubGVuZ3RoIDwgMiA/ICcwJyArIGhleCA6IGhleCk7XG4gIH0sICcjJyk7XG59XG5cbmZ1bmN0aW9uIGxvdHRpZSh2OiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gIGNvbnN0IHJlc3VsdCA9IC9eIz8oW1xcZGEtZl17Mn0pKFtcXGRhLWZdezJ9KShbXFxkYS1mXXsyfSkkL2kuZXhlYyh2KTtcbiAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKS5tYXAoaXRlbSA9PiBwYXJzZUludChpdGVtLCAxNikgLyAyNTUpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlTG90dGllQ29sb3JzKG1hcHBlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgbG90dGllT2JqOiBhbnkpIHtcbiAgY29uc3QgcmVwbGFjZSA9IE9iamVjdC5lbnRyaWVzKG1hcHBlcikucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gbG90dGllKHZhbHVlKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXJbXT4pO1xuXG4gIGNvbnN0IGRvUmVwbGFjZSA9IChvYmo6IGFueSkgPT4ge1xuICAgIGlmIChvYmoucyAmJiBBcnJheS5pc0FycmF5KG9iai5zKSAmJiBvYmoucy5sZW5ndGggPT09IDQpIHtcbiAgICAgIG9iai5zID0gcmVwbGFjZVtoZXgob2JqLnMpXT8uY29uY2F0KG9iai5zWzNdKSB8fCBvYmoucztcbiAgICB9IGVsc2UgaWYgKG9iai5jPy5rKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmouYy5rKSAmJiB0eXBlb2Ygb2JqLmMua1swXSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgZG9SZXBsYWNlKG9iai5jLmspO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqLmMuayA9IHJlcGxhY2VbaGV4KG9iai5jLmspXSB8fCBvYmouYy5rO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBkb1JlcGxhY2Uob2JqW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH07XG5cbiAgcmV0dXJuIGRvUmVwbGFjZShsb3R0aWVPYmopO1xufVxuXG5mdW5jdGlvbiByZWR1Y2VDb2xvcnMobWFwcGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhtYXBwZXIpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBhY2NbTElHSFRfQ09MT1JTW2tleV1dID0gdmFsdWU7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG59XG4iXX0=