Files
ezbookkeeping/src/lib/color.ts
T
2025-08-30 00:40:33 +08:00

53 lines
1.3 KiB
TypeScript

import type {
ColorValue,
ColorStyleValue,
ColorInfo
} from '@/core/color.ts';
import {
DEFAULT_ICON_COLOR,
DEFAULT_ACCOUNT_COLOR,
DEFAULT_CATEGORY_COLOR,
DEFAULT_COLOR_STYLE_VARIABLE
} from '@/consts/color.ts';
export function getColorsInRows(allColorValues: ColorValue[], itemPerRow: number): ColorInfo[][] {
const ret: ColorInfo[][] = [];
let rowCount = -1;
for (let i = 0; i < allColorValues.length; i++) {
if (i % itemPerRow === 0) {
ret[++rowCount] = [];
}
ret[rowCount].push({
color: allColorValues[i]
});
}
return ret;
}
export function getDisplayColor(color?: ColorValue): ColorStyleValue {
if (color && color !== DEFAULT_ICON_COLOR) {
return `#${color}`;
} else {
return DEFAULT_COLOR_STYLE_VARIABLE;
}
}
export function getCategoryDisplayColor(color?: ColorValue): ColorStyleValue {
if (color && color !== DEFAULT_CATEGORY_COLOR) {
return `#${color}`;
} else {
return DEFAULT_COLOR_STYLE_VARIABLE;
}
}
export function getAccountDisplayColor(color?: ColorValue): ColorStyleValue {
if (color && color !== DEFAULT_ACCOUNT_COLOR) {
return `#${color}`;
} else {
return DEFAULT_COLOR_STYLE_VARIABLE;
}
}