1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | function hueRotationFn(rotation) {
|
4 | return (hue) => (360 + hue + rotation) % 360;
|
5 | }
|
6 | exports.hueRotationFn = hueRotationFn;
|
7 | function saturationAdjustmentFn(adjustment) {
|
8 | return (saturation) => Math.min(Math.max(saturation + adjustment, 0), 100);
|
9 | }
|
10 | exports.saturationAdjustmentFn = saturationAdjustmentFn;
|
11 | function mergeConfigs(base, extended) {
|
12 | return Object.entries(base).reduce((accumulator, [role, variants]) => {
|
13 | const extendedVariants = extended[role];
|
14 | const mergedVariants = variants;
|
15 | if (extendedVariants != null) {
|
16 | extendedVariants.forEach((variant) => {
|
17 | const { name } = variant;
|
18 | const indexToReplace = mergedVariants.findIndex((baseVariant) => baseVariant.name === name);
|
19 | if (indexToReplace === -1) {
|
20 | mergedVariants.push(variant);
|
21 | }
|
22 | else {
|
23 | mergedVariants.splice(indexToReplace, 1, variant);
|
24 | }
|
25 | });
|
26 | }
|
27 | return Object.assign(Object.assign({}, accumulator), { [role]: mergedVariants });
|
28 | }, {});
|
29 | }
|
30 | exports.mergeConfigs = mergeConfigs;
|