Skip to content

Instantly share code, notes, and snippets.

@kalda341
Created November 27, 2019 03:47
Show Gist options
  • Save kalda341/bdd3321058351de73e84efc27ca8ecd5 to your computer and use it in GitHub Desktop.
Save kalda341/bdd3321058351de73e84efc27ca8ecd5 to your computer and use it in GitHub Desktop.
import { GISImageGenerator } from 'gis/images';
import { DocumentGenerator } from './document/document';
import { DocumentStyle } from './document/style';
import {
generateFirstPageHeader,
generateFirstPageFooter,
generateFooter,
generateHeader
} from './header-footer';
import { generateAppendices } from './appendices';
import { generateSiteDetails } from './site-details';
import { generateSiteDescription } from './site-description';
import { generateProposalDescription } from './proposal';
import {
generateUnitaryPlan,
generateResourceConsentsRequired
} from './unitary-plan';
import { generateAssessment } from './assessment';
import { generateNotification } from './notification';
import { generatePart2 } from './part-2';
import { generateSitePreCheck, generateProposalChecklist } from './checklists';
import { mergeDeepRight } from 'ramda';
import { Document } from './document/jsx';
export async function renderAssessmentOfEffects(
projectState,
layers,
customisations
) {
// eslint-disable-next-line
console.log(projectState);
const documentTitle = 'Assessment of Environmental Effects';
const docStyle = DocumentStyle(customisations.styleOverrides);
const docGen = DocumentGenerator(docStyle, documentTitle);
const gisImageGenerator = GISImageGenerator(layers || {});
const defaultSectionProps = {
headers: {
default: generateHeader(
docGen,
projectState,
customisations.regularPageWatermark
)
},
footers: {
default: await generateFooter(docGen, projectState)
}
};
// Title section
docGen.addSection(
mergeDeepRight(defaultSectionProps, {
properties: {
titlePage: true
},
headers: {
first: await generateFirstPageHeader(
docGen,
projectState,
customisations.titlePageWatermark
)
},
footers: {
first: await generateFirstPageFooter(docGen, projectState)
}
}),
[
docGen.text.title(documentTitle),
docGen.text.pageBreak(),
docGen.text.h1NoToC('Table of Contents'),
docGen.tableOfContents(),
generateAppendices(docGen, projectState),
docGen.text.pageBreak()
]
);
// Intro section
docGen.addSection(defaultSectionProps, [
generateSiteDetails(docGen, projectState),
docGen.text.pageBreak()
]);
// Aerial image section
const aerialImage = await gisImageGenerator.getAerialImage();
if (aerialImage) {
docGen.addSection(
{
properties: {
orientation: 'landscape'
}
},
[docGen.image.fullLandscapeImage(aerialImage), docGen.text.pageBreak()]
);
}
docGen.addSection(
defaultSectionProps,
await Promise.all([
generateSiteDescription(docGen, projectState),
generateProposalDescription(docGen, projectState),
generateUnitaryPlan(docGen, projectState),
generateResourceConsentsRequired(docGen, projectState),
generateNotification(docGen, projectState, gisImageGenerator),
generateAssessment(docGen, projectState),
generatePart2(docGen, projectState),
docGen.text.pageBreak()
])
);
docGen.addSection(
defaultSectionProps,
await Promise.all([
docGen.text.title('Appendices'),
await generateSitePreCheck(docGen, projectState, gisImageGenerator),
await generateProposalChecklist(docGen, projectState, gisImageGenerator)
])
);
return docGen.toBlob();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment