@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
32 lines (31 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const arrayUtils_1 = require("../../../utils/arrayUtils");
const mandatoryColumns = (fields) => fields.filter((field) => field.mandatory).map((field) => field.name);
const visibleColumns = (fields) => fields.filter((field) => field.visible).map((field) => field.name);
const ensureMandatoryColumns = (fields, queryColumns) => [...mandatoryColumns(fields), ...queryColumns].reduce(arrayUtils_1.distinct, []);
exports.default = {
/**
* Converts the columns from a DPD into a column readable format
*
* @param specification
* @param requestedColumns
*/
getColumns: (specification, requestedColumns = null) => {
const { fields } = specification;
const options = fields
.filter((field) => !specification.sections || !specification.sections.includes(field.name))
.map((field) => ({
text: field.display,
value: field.name,
disabled: field.mandatory,
}));
return {
name: 'columns',
options,
text: 'Select report columns',
value: ensureMandatoryColumns(fields, requestedColumns !== null && requestedColumns !== void 0 ? requestedColumns : visibleColumns(fields)),
};
},
ensureMandatoryColumns,
};