@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
40 lines (39 loc) • 1.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = __importDefault(require("./logger"));
exports.default = {
getCurrentVariantDefinition: (definitions, reportId, variantId) => {
if (!definitions) {
logger_1.default.info('No definitions');
return undefined;
}
let variantDef;
const reportDef = definitions.find((report) => report.id === reportId);
if (reportDef) {
variantDef = reportDef.variants.find((variant) => variantId === variant.id);
}
return variantDef || undefined;
},
getFieldDisplayName: (fields, fieldId) => {
const ids = fieldId.split('.');
const field = fields.find((f) => {
return f.name === ids[0];
});
if (field) {
return ids[1] ? `${field.display} ${ids[1]}` : field.display;
}
return fieldId;
},
getField: (fields, fieldId) => {
return fields.find((field) => {
return field.name === fieldId;
});
},
getReportSummary: async (reportId, reportingService, token, definitionPath) => {
const definitions = await reportingService.getDefinitions(token, definitionPath);
return definitions.find((def) => def.id === reportId);
},
};