in packages/issue-dashboard-widgets/widgets/youtrack-issues-list/app/issue-line.js [73:116]
static getColoredSquareModel(issue) {
const makeColorFieldPresentationObject = issueField => {
const coloredValue = IssueLine.toArray(issueField.value).filter(
IssueLine.isColoredValue
)[0];
if (!coloredValue) {
return null;
}
const fieldName = IssueLine.getName(
issueField.projectCustomField.field || {}
);
return {
style: IssueLine.fieldColorToCss(coloredValue.color),
letter: IssueLine.getFirstLetter(coloredValue),
title: `${fieldName}: ${IssueLine.getName(coloredValue)}`,
issueField
};
};
const bundleFields = (issue.fields || []).filter(
issueField => !!issueField.projectCustomField.bundle
);
const priorityField = bundleFields.filter(
issueField => {
const field = issueField.projectCustomField.field || {};
return (field.name || '').toLowerCase() === 'priority';
}
)[0];
if (priorityField) {
if (priorityField.value) {
return makeColorFieldPresentationObject(priorityField);
}
return null;
}
const fieldWithColoredValues = (issue.fields || []).filter(
field =>
IssueLine.toArray(field.value || []).some(IssueLine.isColoredValue)
)[0];
if (!fieldWithColoredValues) {
return null;
}
return makeColorFieldPresentationObject(fieldWithColoredValues);
}