function restructure(standard) {
let nestedData = d3.group(standard, data => data.section);
let result = {
performance_standard: "PS1",
sections: []
};
nestedData.forEach((sectionData, sectionName) => {
let section = {
section: sectionName,
ref: {
id: sectionData[0].id,
page: sectionData[0].page,
document_element: sectionData[0].document_element
},
paragraph_group: {
provisions: []
},
clauses: []
};
sectionData.forEach(item => {
if (item.provision_paragraph) {
section.paragraph_group.provisions.push({
provision_paragraph: item.provision_paragraph,
ref: {
id: item.id,
page: item.page,
paragraph: item.paragraph,
document_element: item.document_element
}
});
}
if (item.provision_clausal) {
section.clauses.push({
provision_clausal: item.provision_clausal,
ref: {
id: item.id,
page: item.page,
paragraph: item.paragraph,
clause_number: item.clause_number || "",
document_element: item.document_element
}
});
}
});
if (section.paragraph_group.provisions.length === 0) {
delete section.paragraph_group;
}
result.sections.push(section);
});
return result;
}