@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
49 lines (46 loc) • 1.29 kB
JavaScript
import { validateVariant } from '../definitionUtils.js';
class TemplateBuilder {
variant;
specification;
columns = [];
sections = [];
data;
fields;
sectionFields = [];
template;
reportQuery;
pageSummaries;
summaries;
constructor(variant, defId) {
const { specification } = validateVariant(variant, defId);
const { template, fields, sections } = specification;
this.variant = variant;
this.specification = specification;
this.template = template;
this.fields = fields;
this.sections = sections;
}
withColumns(columns) {
this.columns = columns;
return this;
}
withData(data) {
this.data = data;
return this;
}
withQuery(reportQuery) {
this.reportQuery = reportQuery;
return this;
}
withSummaries(summariesData) {
this.pageSummaries = summariesData.filter(summary => {
return summary.template.includes('page');
});
this.summaries = summariesData.filter(summary => {
return summary.template.includes('section') || summary.template.includes('table');
});
return this;
}
}
export { TemplateBuilder };
//# sourceMappingURL=TemplateBuilder.js.map