const varyColor = require('webpack-theme-color-replacer/client/varyColor') const client = require('webpack-theme-color-replacer/client') const generate = require('@ant-design/colors/lib/generate').default const themeColor = require('../config').themeColor module.exports = { primaryColor: themeColor, getThemeColors(color) { const lightens = new Array(9).fill().map((t, i) => { return varyColor.lighten(color, i / 10) }) const palettes = generate(color) const rgb = varyColor.toNum3(color.replace('#', '')).join(',') return palettes.concat(lightens).concat(rgb) }, changeThemeColor (newColor) { let lastColor = this.lastColor || this.primaryColor let options = { cssUrl: '/css/theme-colors.css', oldColors: this.getThemeColors(lastColor), newColors: this.getThemeColors(newColor) } let promise = client.changer.changeColor(options) this.lastColor = lastColor return promise } }