UNPKG

@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
"use strict"; 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, };