UNPKG

@thangk/easythemer

Version:

Easily generate shades from a colour palette for use in your app

38 lines (34 loc) 1.44 kB
import { getChannelValue } from "."; import { defaultChannelParams } from "../constants"; import { ShadeOption } from "../types"; export default function getBoundSteps(HSLInput: { [key: string]: number }, inputShadeOption: ShadeOption, shadeFactor: number) { const hslArray: string[] = ["h", "s", "l"]; let hslArrayIndex: number = 0; inputShadeOption.channelParams?.forEach((channelParam) => { for (const [key, value] of Object.entries(channelParam)) { if (hslArray[hslArrayIndex] === value) { // use default bounds if (!channelParam.useBounds) { const mergedChannelParams = Object.assign(defaultChannelParams, channelParam); HSLInput[hslArray[hslArrayIndex]] = getChannelValue({ shadeFactor, HSL_channel: HSLInput[hslArray[hslArrayIndex]], HSL_letter: hslArray[hslArrayIndex], workingObj: mergedChannelParams, }); } // use custom bounds if (channelParam.useBounds) { HSLInput[hslArray[hslArrayIndex]] = getChannelValue({ shadeFactor, HSL_channel: HSLInput[hslArray[hslArrayIndex]], HSL_letter: hslArray[hslArrayIndex], workingObj: defaultChannelParams, }); } } } hslArrayIndex++; }); return HSLInput; }