@thangk/easythemer
Version:
Easily generate shades from a colour palette for use in your app
38 lines (34 loc) • 1.44 kB
text/typescript
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;
}