UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

70 lines 9.63 kB
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1sb3R0aWUtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvbmF2aWdhdGlvbi9sb3R0aWUtaWNvbnMvcmVwbGFjZS1sb3R0aWUtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsTUFBTSxZQUFZLEdBQTJCO0lBQzNDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUN2QixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU07SUFDNUIsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZO0lBQ25DLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVTtJQUNsQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUNuQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTTtDQUNyQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQTJCO0lBQzFDLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUN2QixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU07SUFDNUIsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZO0lBQ25DLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVTtJQUNsQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTTtJQUNuQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTTtDQUNyQyxDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUMzQixNQUFjLENBQUMsd0JBQXdCLElBQUksV0FBVyxDQUN4RCxDQUFDO0FBRUYsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQWEsRUFBRSxTQUFjO0lBQ3RFLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFakMsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUUsTUFBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7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LENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE1BQThCO0lBQ2xELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN6RCxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQy9CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgTElHSFRfQ09MT1JTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBtYWluOiAnIzdjN2U4MScsIC8vIG4tM1xuICBzZWNvbmRhcnk6ICcjYWViMGIzJywgLy8gbi01XG4gIGJhY2tncm91bmQ6ICcjZjdmOWZjJywgLy8gYnV0dG9uLWJnXG4gIG1haW5fYWN0aXZlOiAnIzAwN2FmNScsIC8vIHByaW1hcnlcbiAgc2Vjb25kYXJ5X2FjdGl2ZTogJyM2NmFmZjknLCAvLyBwLTNcbiAgYmFja2dyb3VuZF9hY3RpdmU6ICcjY2NlNGZkJywgLy8gcC01XG59O1xuXG5jb25zdCBEQVJLX0NPTE9SUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgbWFpbjogJyNiOGJhYzInLCAvLyBuLTNcbiAgc2Vjb25kYXJ5OiAnIzkwOTM5ZicsIC8vIG4tNVxuICBiYWNrZ3JvdW5kOiAnIzM4M2I0NycsIC8vIGJ1dHRvbi1iZ1xuICBtYWluX2FjdGl2ZTogJyMzZDhlZmYnLCAvLyBwcmltYXJ5XG4gIHNlY29uZGFyeV9hY3RpdmU6ICcjMzI2NWFkJywgLy8gcC0zXG4gIGJhY2tncm91bmRfYWN0aXZlOiAnIzI4MzY1MScsIC8vIHAtNVxufTtcblxuY29uc3QgY29sb3JzTWFwID0gcmVkdWNlQ29sb3JzKFxuICAod2luZG93IGFzIGFueSkuX19OQVZfSUNPTl9DVVNUT01fQ09MT1JTID8/IERBUktfQ09MT1JTLFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VMb3R0aWVDb2xvcnNCeVRoZW1lKHRoZW1lOiBzdHJpbmcsIGxvdHRpZU9iajogYW55KSB7XG4gIGxvdHRpZU9iaiA9IGNsb25lRGVlcChsb3R0aWVPYmopO1xuXG4gIGlmICh0aGVtZSA9PT0gJ2xpZ2h0JyAmJiAhKHdpbmRvdyBhcyBhbnkpLl9fTkFWX0lDT05fQ1VTVE9NX0NPTE9SUykge1xuICAgIHJldHVybiBsb3R0aWVPYmo7XG4gIH1cblxuICByZXR1cm4gcmVwbGFjZUxvdHRpZUNvbG9ycyhjb2xvcnNNYXAsIGxvdHRpZU9iaik7XG59XG5cbmZ1bmN0aW9uIGhleCh2OiBudW1iZXJbXSk6IHN0cmluZyB7XG4gIHJldHVybiB2LnNsaWNlKDAsIDMpLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgY29uc3QgaGV4ID0gTWF0aC5mbG9vcihjdXJyICogMjU1KS50b1N0cmluZygxNik7XG4gICAgcmV0dXJuIGFjYyArIChoZXgubGVuZ3RoIDwgMiA/ICcwJyArIGhleCA6IGhleCk7XG4gIH0sICcjJyk7XG59XG5cbmZ1bmN0aW9uIGxvdHRpZSh2OiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gIGNvbnN0IHJlc3VsdCA9IC9eIz8oW1xcZGEtZl17Mn0pKFtcXGRhLWZdezJ9KShbXFxkYS1mXXsyfSkkL2kuZXhlYyh2KTtcbiAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKS5tYXAoaXRlbSA9PiBwYXJzZUludChpdGVtLCAxNikgLyAyNTUpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlTG90dGllQ29sb3JzKG1hcHBlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgbG90dGllT2JqOiBhbnkpIHtcbiAgY29uc3QgcmVwbGFjZSA9IE9iamVjdC5lbnRyaWVzKG1hcHBlcikucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gbG90dGllKHZhbHVlKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXJbXT4pO1xuXG4gIGNvbnN0IGRvUmVwbGFjZSA9IChvYmo6IGFueSkgPT4ge1xuICAgIGlmIChvYmoucyAmJiBBcnJheS5pc0FycmF5KG9iai5zKSAmJiBvYmoucy5sZW5ndGggPT09IDQpIHtcbiAgICAgIG9iai5zID0gcmVwbGFjZVtoZXgob2JqLnMpXT8uY29uY2F0KG9iai5zWzNdKSB8fCBvYmoucztcbiAgICB9IGVsc2UgaWYgKG9iai5jPy5rKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmouYy5rKSAmJiB0eXBlb2Ygb2JqLmMua1swXSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgZG9SZXBsYWNlKG9iai5jLmspO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqLmMuayA9IHJlcGxhY2VbaGV4KG9iai5jLmspXSB8fCBvYmouYy5rO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBkb1JlcGxhY2Uob2JqW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH07XG5cbiAgcmV0dXJuIGRvUmVwbGFjZShsb3R0aWVPYmopO1xufVxuXG5mdW5jdGlvbiByZWR1Y2VDb2xvcnMobWFwcGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhtYXBwZXIpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBhY2NbTElHSFRfQ09MT1JTW2tleV1dID0gdmFsdWU7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG59XG4iXX0=