From a0405345f6b4f150e22a0b476123a513cb0192cb Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Sun, 30 Aug 2026 20:50:13 +0100 Subject: [PATCH] feat(templates): add the EditorialProposal structured proposal preset The structured proposal model had one consumer. EditorialProposal is the second, and it renders the same document in a different hand: an orange accent, section headings set in the display serif over short accent rules rather than in the body sans inside icon badges, a brand mark drawn from vector paths rather than set as a monogram letter, an untitled fact card, a scope ordinal in plain accent text, and a hairline page foot instead of a filled band. It ports the rendered layout of the published standalone northline-proposal-orange template and needed no change to the model - which is what the model's second consumer was meant to prove. The preset owns its session geometry and draws the brand line and page numbers as footer chrome; it issues no explicit page break, because the page-two masthead is keepWithNext. Its SVG icon set ships inside the artifact, and each icon node is named after its token so a swapped token reaches the layout snapshot rather than only the pixels. A goal cell takes the goal's own icon token and falls back to the band's, which is how this design marks every cell alike. Moving a document between the two proposal presets is a one-line change plus two data checks, both now stated in the class documentation and pinned by a test: the badge and goal tokens are preset-scoped vocabulary while the four fact tokens are shared, and headings are drawn as authored. qa: one fixtures class feeds the smoke, the exact two-page layout snapshot and the pixel gate; the smoke drives full layout and render, asserts the table content on the text layer, and names both data contracts. Examples gain EditorialProposalV2Example (proposal-editorial-v2) with its preview. --- CHANGELOG.md | 16 + .../readme/examples/proposal-editorial-v2.pdf | Bin 0 -> 41501 bytes .../demcha/examples/GenerateAllExamples.java | 2 + .../support/EditorialProposalSampleData.java | 147 + .../examples/support/ShowcaseMetadata.java | 1 + .../v2/EditorialProposalV2Example.java | 53 + .../presets/EditorialProposalFixtures.java | 148 + .../EditorialProposalLayoutSnapshotTest.java | 30 + .../presets/EditorialProposalSmokeTest.java | 172 + .../EditorialProposalVisualParityTest.java | 42 + .../proposal/editorial_proposal_layout.json | 5567 +++++++++++++++++ .../editorial_proposal-page-0.png | Bin 0 -> 104056 bytes .../editorial_proposal-page-1.png | Bin 0 -> 82687 bytes .../proposal/presets/EditorialIcons.java | 66 + .../proposal/presets/EditorialPageOne.java | 307 + .../proposal/presets/EditorialPageTwo.java | 360 ++ .../proposal/presets/EditorialProposal.java | 162 + .../proposal/presets/EditorialStyles.java | 219 + .../proposal/presets/EditorialWidgets.java | 224 + .../proposal/presets/package-info.java | 34 +- .../proposal/editorial/icons/fact-contact.svg | 1 + .../editorial/icons/fact-duration.svg | 1 + .../proposal/editorial/icons/fact-start.svg | 1 + .../editorial/icons/fact-validity.svg | 1 + .../proposal/editorial/icons/goal-check.svg | 1 + 25 files changed, 7544 insertions(+), 11 deletions(-) create mode 100644 assets/readme/examples/proposal-editorial-v2.pdf create mode 100644 examples/src/main/java/com/demcha/examples/support/EditorialProposalSampleData.java create mode 100644 examples/src/main/java/com/demcha/examples/templates/proposal/v2/EditorialProposalV2Example.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalFixtures.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalLayoutSnapshotTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalSmokeTest.java create mode 100644 qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalVisualParityTest.java create mode 100644 qa/src/test/resources/layout-snapshots/canonical-templates/proposal/editorial_proposal_layout.json create mode 100644 qa/src/test/resources/visual-baselines/proposal-v2-layered/editorial_proposal-page-0.png create mode 100644 qa/src/test/resources/visual-baselines/proposal-v2-layered/editorial_proposal-page-1.png create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialIcons.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageOne.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageTwo.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposal.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialStyles.java create mode 100644 templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialWidgets.java create mode 100644 templates/src/main/resources/templates/proposal/editorial/icons/fact-contact.svg create mode 100644 templates/src/main/resources/templates/proposal/editorial/icons/fact-duration.svg create mode 100644 templates/src/main/resources/templates/proposal/editorial/icons/fact-start.svg create mode 100644 templates/src/main/resources/templates/proposal/editorial/icons/fact-validity.svg create mode 100644 templates/src/main/resources/templates/proposal/editorial/icons/goal-check.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 35441123d..111f047b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,22 @@ follow semantic versioning; release dates are ISO 8601. ### Templates +- **A second structured proposal preset: `EditorialProposal`.** The same document the + `NorthlineProposal` preset renders, in a different hand: an orange accent, section + headings set in the display serif over short accent rules instead of in the body sans + inside icon badges, a brand mark drawn from vector paths instead of a monogram letter, + an untitled fact card, a scope ordinal set in plain accent text, and a hairline page + foot. Moving a document between the two presets is a one-line change plus two data + checks — the badge and goal icon tokens are preset-scoped (the four `fact-*` tokens + are not), and headings are drawn as authored, so the sibling's tracked capitals stay + capitals here. Ships as + `proposal.presets.EditorialProposal` on the structured proposal model, porting the + rendered layout of the published standalone `northline-proposal-orange` template, + with its SVG icon set packaged in the artifact. Guarded by a smoke test (including + the empty document, both data contracts, and the proof that one document renders + through both proposal presets), an exact two-page layout snapshot, and a + pixel-parity gate; the examples showcase gains `proposal-editorial-v2`. + - **A professional-services invoice preset: `ConsultingInvoice`.** A corporate masthead — brand lockup and contact channels beside the document title and its metadata — over priced service lines that carry a service period and a unit per line, closing diff --git a/assets/readme/examples/proposal-editorial-v2.pdf b/assets/readme/examples/proposal-editorial-v2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..03baf9ce29e90be1a3e2abdfa1f2221bcc216852 GIT binary patch literal 41501 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 T^^*KN+(NuqOiZ$Ba#;ThwYcSD literal 0 HcmV?d00001 diff --git a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java index f70158ec1..0032601a4 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -101,6 +101,7 @@ import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; import com.demcha.examples.templates.invoice.ModernInvoiceV2Example; import com.demcha.examples.templates.proposal.CinematicProposalFileExample; +import com.demcha.examples.templates.proposal.EditorialProposalV2Example; import com.demcha.examples.templates.proposal.NorthlineProposalV2Example; import com.demcha.examples.templates.proposal.ProposalCinematicFileExample; import com.demcha.examples.templates.proposal.ModernProposalV2Example; @@ -172,6 +173,7 @@ public static void main(String[] args) throws Exception { System.out.println("Generated: " + ProposalCinematicFileExample.generate()); System.out.println("Generated: " + ModernProposalV2Example.generate()); System.out.println("Generated: " + NorthlineProposalV2Example.generate()); + System.out.println("Generated: " + EditorialProposalV2Example.generate()); System.out.println("Generated: " + CinematicProposalFileExample.generate()); // Schedule diff --git a/examples/src/main/java/com/demcha/examples/support/EditorialProposalSampleData.java b/examples/src/main/java/com/demcha/examples/support/EditorialProposalSampleData.java new file mode 100644 index 000000000..343a08e61 --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/support/EditorialProposalSampleData.java @@ -0,0 +1,147 @@ +package com.demcha.examples.support; + +import com.demcha.compose.document.templates.data.proposal.ProposalAcceptance; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; +import com.demcha.compose.document.templates.data.proposal.ProposalDeliverables; +import com.demcha.compose.document.templates.data.proposal.ProposalGlance; +import com.demcha.compose.document.templates.data.proposal.ProposalGoals; +import com.demcha.compose.document.templates.data.proposal.ProposalInvestment; +import com.demcha.compose.document.templates.data.proposal.ProposalMetaLine; +import com.demcha.compose.document.templates.data.proposal.ProposalPhaseGrid; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +import com.demcha.compose.document.templates.data.proposal.ProposalSummaryBlock; +import com.demcha.compose.document.templates.data.proposal.ProposalTermsBlock; +import com.demcha.compose.document.templates.data.proposal.ProposalTitleLines; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec; + +import java.util.List; + +/** + * Shared sample data for the Editorial proposal example. + * + *

Kept in lockstep with the qa module's + * {@code EditorialProposalFixtures} — the two modules cannot share a source + * file, so a content change here belongs there too.

+ * + *

The sample is the preset's reference content: a two-page + * brand-refresh proposal exercising every band — all four glance facts + * (one with the optional note), four goal cells, five scope rows, both + * deliverable columns, the four-phase grid, an investment table with + * ordinary, subtotal and optional rows plus the total band, four terms, + * and the three-field signing card.

+ * + */ +public final class EditorialProposalSampleData { + + private EditorialProposalSampleData() { + } + + public static StructuredProposalDocumentSpec sample() { + return StructuredProposalDocumentSpec.from(StructuredProposalData.builder() + .brand(new ProposalBrand("N", "NORTHLINE", "STUDIO", "PROPOSAL", + "northlinestudio.com", "NORTHLINE STUDIO")) + .title(new ProposalTitleLines("Proposal —", "Brand Refresh &", + "Website Redesign")) + .meta(new ProposalMetaLine("PREPARED FOR ASTERA HEALTH CO.", + "PREPARED BY NORTHLINE STUDIO", "25 AUGUST 2026")) + .executiveSummary(new ProposalSummaryBlock("Executive Summary", "", List.of( + "Thank you for the opportunity to partner with Astera Health Co. " + + "on your next chapter. This proposal outlines our approach to " + + "refreshing your brand identity and redesigning your website to " + + "better reflect your mission, elevate credibility, and deliver a " + + "seamless experience for the people you serve.", + "Our process blends strategic thinking with thoughtful design to " + + "create a cohesive brand system and a modern, conversion-focused " + + "website. The outcome will be a clear, confident presence that " + + "strengthens trust, improves engagement, and supports your " + + "growth goals."))) + .glance(new ProposalGlance("", List.of( + new ProposalGlance.Fact("fact-duration", "PROJECT DURATION", + "6 weeks", null), + new ProposalGlance.Fact("fact-start", "START WINDOW", + "September 2026", null), + new ProposalGlance.Fact("fact-contact", "PRIMARY CONTACT", + "Project Lead", null), + new ProposalGlance.Fact("fact-validity", "PROPOSAL VALIDITY", + "14 days", "(until 8 September 2026)")))) + .goals(new ProposalGoals("Project Goals", "goal-check", List.of( + new ProposalGoals.Goal("", + "Strengthen brand credibility and visual consistency."), + new ProposalGoals.Goal("", + "Improve website usability and drive meaningful action."), + new ProposalGoals.Goal("", + "Communicate your value clearly across all touchpoints."), + new ProposalGoals.Goal("", + "Build a scalable digital foundation for future growth.")))) + .scope(new ProposalScope("Scope of Work", "", List.of( + new ProposalScope.Item("01", "Discovery & Research", + "Stakeholder interviews, brand audit, competitor review, and " + + "audience insights to inform strategy."), + new ProposalScope.Item("02", "Visual Identity Refinement", + "Refine logo system, color palette, typography, and visual " + + "guidelines for a cohesive, modern identity."), + new ProposalScope.Item("03", "Website UX/UI Design", + "Design a responsive, accessibility-minded website with " + + "intuitive navigation and clear conversion pathways."), + new ProposalScope.Item("04", "Content Structure & Messaging", + "Define site architecture, key messaging, and content " + + "hierarchy to communicate value and build trust."), + new ProposalScope.Item("05", "Launch Support", + "Developer handoff, QA support, training, and go-live " + + "assistance to ensure a smooth launch.")))) + .deliverables(new ProposalDeliverables("Deliverables", "", + List.of("Brand strategy summary", + "Refined logo suite & brand guidelines", + "Color, typography & design system", + "Website UX wireframes", + "High-fidelity website designs"), + List.of("Responsive design for desktop, tablet & mobile", + "Content strategy & page templates", + "Developer-ready assets & specifications", + "Launch checklist & training session"))) + .timeline(new ProposalPhaseGrid("Timeline", "", + List.of("PHASE", "FOCUS", "DURATION", "OUTPUT"), List.of( + new ProposalPhaseGrid.Phase("01", "Discover", + "Research, audit, insights, and strategy", "1 week", + "Discovery report & creative direction"), + new ProposalPhaseGrid.Phase("02", "Design", + "Brand refinement and website UX/UI design", "2 weeks", + "Design system & high-fidelity designs"), + new ProposalPhaseGrid.Phase("03", "Develop Prep", + "Content structure, developer handoff & asset preparation", + "1 week", "Specs, assets & content framework"), + new ProposalPhaseGrid.Phase("04", "Launch Support", + "QA, training & go-live assistance", "2 weeks", + "QA sign-off & successful launch")))) + .investment(new ProposalInvestment("Investment", "", + "ITEM", "AMOUNT (GBP)", List.of( + new ProposalInvestment.Row("Discovery & Strategy", "£2,500", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Brand Identity Refinement", "£4,500", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Website UX/UI Design", "£7,000", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Content Structure & Messaging", "£2,000", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Launch Support", "£1,500", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Subtotal", "£17,500", + ProposalInvestment.Role.SUBTOTAL), + new ProposalInvestment.Row("Optional: 3 Months Post-Launch Support", + "£1,750", ProposalInvestment.Role.OPTIONAL)), + "TOTAL INVESTMENT", "£19,250")) + .terms(new ProposalTermsBlock("Terms", "", List.of( + "50% deposit is required to secure the project and schedule the " + + "kick-off.", + "Includes two rounds of revisions per major deliverable.", + "Final files and handoff delivered upon final payment.", + "Ownership of all final deliverables transfers to Astera Health Co. " + + "after full payment is received."))) + .acceptance(new ProposalAcceptance("Acceptance", "", + "By signing below, you agree to the scope, timeline, investment, " + + "and terms outlined in this proposal.", + List.of("Accepted by:", "Signature:", "Date:"))) + .build()); + } +} diff --git a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java index 4af47d427..d12d6b205 100644 --- a/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java +++ b/examples/src/main/java/com/demcha/examples/support/ShowcaseMetadata.java @@ -95,6 +95,7 @@ record Entry(String title, String description, List tags, String codeUrl proposal("proposal-cinematic", "ProposalCinematicFileExample", "Cinematic Proposal", "Layered ModernProposal layout with cover panel, hero spread, and rich typography.", "proposal", "cinematic"); proposal("project-proposal-cinematic", "CinematicProposalFileExample", "Project Proposal (cinematic)", "End-to-end project proposal with mountain hero, scope panels, and pricing summary.", "proposal", "cinematic"); proposal("proposal-modern-v2", "v2/ModernProposalV2Example", "Modern Proposal", "The ModernProposal preset composed straight from its document spec — cover, scope sections and pricing table themed through BrandTheme.", "proposal"); + proposal("proposal-editorial-v2", "v2/EditorialProposalV2Example", "Editorial Proposal", "The EditorialProposal preset — the same structured proposal document as Northline, set in a serif display face with an orange accent, a drawn brand mark and headings over accent rules.", "proposal"); proposal("proposal-northline-v2", "v2/NorthlineProposalV2Example", "Northline Proposal", "The NorthlineProposal preset on the structured proposal model — brand header, stacked title, glance card, goal cells, numbered scope, phase grid, investment table and signing card across two pages.", "proposal"); // ===== Templates / Schedule ===== diff --git a/examples/src/main/java/com/demcha/examples/templates/proposal/v2/EditorialProposalV2Example.java b/examples/src/main/java/com/demcha/examples/templates/proposal/v2/EditorialProposalV2Example.java new file mode 100644 index 000000000..ae4d35bec --- /dev/null +++ b/examples/src/main/java/com/demcha/examples/templates/proposal/v2/EditorialProposalV2Example.java @@ -0,0 +1,53 @@ +package com.demcha.examples.templates.proposal; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec; +import com.demcha.compose.document.templates.proposal.presets.EditorialProposal; +import com.demcha.examples.support.EditorialProposalSampleData; +import com.demcha.examples.support.ExampleOutputPaths; + +import java.nio.file.Path; + +/** + * Renders the layered {@code proposal.v2} Editorial Proposal preset against + * the structured proposal sample data. + * + *

Output: + * {@code examples/target/generated-pdfs/templates/proposal/proposal-editorial-v2.pdf}.

+ * + *

The same document shape the Northline example renders, in the serif + * editorial look: the preset owns its page geometry, so the session starts + * unconfigured.

+ */ +public final class EditorialProposalV2Example { + + private EditorialProposalV2Example() { + } + + /** + * @return absolute path of the rendered PDF + * @throws Exception if rendering fails + */ + public static Path generate() throws Exception { + Path outputFile = ExampleOutputPaths.prepare( + "templates/proposal", "proposal-editorial-v2.pdf"); + StructuredProposalDocumentSpec spec = EditorialProposalSampleData.sample(); + DocumentTemplate template = EditorialProposal.create(); + + try (DocumentSession document = GraphCompose.document(outputFile).create()) { + template.compose(document, spec); + document.buildPdf(); + } + return outputFile; + } + + /** + * @param args ignored + * @throws Exception if rendering fails + */ + public static void main(String[] args) throws Exception { + System.out.println("Generated: " + generate()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalFixtures.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalFixtures.java new file mode 100644 index 000000000..ecc8e686a --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalFixtures.java @@ -0,0 +1,148 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.templates.data.proposal.ProposalAcceptance; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; +import com.demcha.compose.document.templates.data.proposal.ProposalDeliverables; +import com.demcha.compose.document.templates.data.proposal.ProposalGlance; +import com.demcha.compose.document.templates.data.proposal.ProposalGoals; +import com.demcha.compose.document.templates.data.proposal.ProposalInvestment; +import com.demcha.compose.document.templates.data.proposal.ProposalMetaLine; +import com.demcha.compose.document.templates.data.proposal.ProposalPhaseGrid; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +import com.demcha.compose.document.templates.data.proposal.ProposalSummaryBlock; +import com.demcha.compose.document.templates.data.proposal.ProposalTermsBlock; +import com.demcha.compose.document.templates.data.proposal.ProposalTitleLines; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec; + +import java.util.List; + +/** + * Shared fixture data for the Editorial proposal gates — the SAME spec + * feeds the smoke, layout-snapshot, and pixel gates, so a geometry shift + * the pixel budget absorbs still trips the exact snapshot, and vice versa. + * + *

The canonical fixture is the preset's reference content: a two-page + * brand-refresh proposal exercising every band — all four glance facts + * (one with the optional note), four goal cells, five scope rows, both + * deliverable columns, the four-phase grid, an investment table with + * ordinary, subtotal and optional rows plus the total band, four terms, + * and the three-field signing card.

+ * + *

Kept in lockstep with the examples module's + * {@code EditorialProposalSampleData} — the two modules cannot share a + * source file, so a content change here belongs there too.

+ */ +final class EditorialProposalFixtures { + + private EditorialProposalFixtures() { + } + + static StructuredProposalDocumentSpec canonicalProposal() { + return StructuredProposalDocumentSpec.from(StructuredProposalData.builder() + .brand(new ProposalBrand("N", "NORTHLINE", "STUDIO", "PROPOSAL", + "northlinestudio.com", "NORTHLINE STUDIO")) + .title(new ProposalTitleLines("Proposal —", "Brand Refresh &", + "Website Redesign")) + .meta(new ProposalMetaLine("PREPARED FOR ASTERA HEALTH CO.", + "PREPARED BY NORTHLINE STUDIO", "25 AUGUST 2026")) + .executiveSummary(new ProposalSummaryBlock("Executive Summary", "", List.of( + "Thank you for the opportunity to partner with Astera Health Co. " + + "on your next chapter. This proposal outlines our approach to " + + "refreshing your brand identity and redesigning your website to " + + "better reflect your mission, elevate credibility, and deliver a " + + "seamless experience for the people you serve.", + "Our process blends strategic thinking with thoughtful design to " + + "create a cohesive brand system and a modern, conversion-focused " + + "website. The outcome will be a clear, confident presence that " + + "strengthens trust, improves engagement, and supports your " + + "growth goals."))) + .glance(new ProposalGlance("", List.of( + new ProposalGlance.Fact("fact-duration", "PROJECT DURATION", + "6 weeks", null), + new ProposalGlance.Fact("fact-start", "START WINDOW", + "September 2026", null), + new ProposalGlance.Fact("fact-contact", "PRIMARY CONTACT", + "Project Lead", null), + new ProposalGlance.Fact("fact-validity", "PROPOSAL VALIDITY", + "14 days", "(until 8 September 2026)")))) + .goals(new ProposalGoals("Project Goals", "goal-check", List.of( + new ProposalGoals.Goal("", + "Strengthen brand credibility and visual consistency."), + new ProposalGoals.Goal("", + "Improve website usability and drive meaningful action."), + new ProposalGoals.Goal("", + "Communicate your value clearly across all touchpoints."), + new ProposalGoals.Goal("", + "Build a scalable digital foundation for future growth.")))) + .scope(new ProposalScope("Scope of Work", "", List.of( + new ProposalScope.Item("01", "Discovery & Research", + "Stakeholder interviews, brand audit, competitor review, and " + + "audience insights to inform strategy."), + new ProposalScope.Item("02", "Visual Identity Refinement", + "Refine logo system, color palette, typography, and visual " + + "guidelines for a cohesive, modern identity."), + new ProposalScope.Item("03", "Website UX/UI Design", + "Design a responsive, accessibility-minded website with " + + "intuitive navigation and clear conversion pathways."), + new ProposalScope.Item("04", "Content Structure & Messaging", + "Define site architecture, key messaging, and content " + + "hierarchy to communicate value and build trust."), + new ProposalScope.Item("05", "Launch Support", + "Developer handoff, QA support, training, and go-live " + + "assistance to ensure a smooth launch.")))) + .deliverables(new ProposalDeliverables("Deliverables", "", + List.of("Brand strategy summary", + "Refined logo suite & brand guidelines", + "Color, typography & design system", + "Website UX wireframes", + "High-fidelity website designs"), + List.of("Responsive design for desktop, tablet & mobile", + "Content strategy & page templates", + "Developer-ready assets & specifications", + "Launch checklist & training session"))) + .timeline(new ProposalPhaseGrid("Timeline", "", + List.of("PHASE", "FOCUS", "DURATION", "OUTPUT"), List.of( + new ProposalPhaseGrid.Phase("01", "Discover", + "Research, audit, insights, and strategy", "1 week", + "Discovery report & creative direction"), + new ProposalPhaseGrid.Phase("02", "Design", + "Brand refinement and website UX/UI design", "2 weeks", + "Design system & high-fidelity designs"), + new ProposalPhaseGrid.Phase("03", "Develop Prep", + "Content structure, developer handoff & asset preparation", + "1 week", "Specs, assets & content framework"), + new ProposalPhaseGrid.Phase("04", "Launch Support", + "QA, training & go-live assistance", "2 weeks", + "QA sign-off & successful launch")))) + .investment(new ProposalInvestment("Investment", "", + "ITEM", "AMOUNT (GBP)", List.of( + new ProposalInvestment.Row("Discovery & Strategy", "£2,500", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Brand Identity Refinement", "£4,500", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Website UX/UI Design", "£7,000", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Content Structure & Messaging", "£2,000", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Launch Support", "£1,500", + ProposalInvestment.Role.NONE), + new ProposalInvestment.Row("Subtotal", "£17,500", + ProposalInvestment.Role.SUBTOTAL), + new ProposalInvestment.Row("Optional: 3 Months Post-Launch Support", + "£1,750", ProposalInvestment.Role.OPTIONAL)), + "TOTAL INVESTMENT", "£19,250")) + .terms(new ProposalTermsBlock("Terms", "", List.of( + "50% deposit is required to secure the project and schedule the " + + "kick-off.", + "Includes two rounds of revisions per major deliverable.", + "Final files and handoff delivered upon final payment.", + "Ownership of all final deliverables transfers to Astera Health Co. " + + "after full payment is received."))) + .acceptance(new ProposalAcceptance("Acceptance", "", + "By signing below, you agree to the scope, timeline, investment, " + + "and terms outlined in this proposal.", + List.of("Accepted by:", "Signature:", "Date:"))) + .build()); + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalLayoutSnapshotTest.java new file mode 100644 index 000000000..b9956ab81 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalLayoutSnapshotTest.java @@ -0,0 +1,30 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.TemplateTestSupport; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Exact layout snapshot gate for {@link EditorialProposal} — freezes the + * resolved geometry of both pages, including the natural page-one → page-two + * break the masthead's {@code keepWithNext} guarantees. + * + *

Refresh with {@code -Dgraphcompose.updateSnapshots=true} after a + * deliberate layout change, and commit the JSON with the change.

+ */ +class EditorialProposalLayoutSnapshotTest { + + @Test + void canonicalProposalMatchesLayoutSnapshot() throws Exception { + try (DocumentSession session = GraphCompose.document().create()) { + EditorialProposal.create().compose( + session, EditorialProposalFixtures.canonicalProposal()); + assertThat(session.layoutSnapshot().totalPages()).isEqualTo(2); + TemplateTestSupport.assertCanonicalSnapshot( + session, "editorial_proposal_layout", "proposal"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalSmokeTest.java new file mode 100644 index 000000000..8ff267bf7 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalSmokeTest.java @@ -0,0 +1,172 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.proposal.ProposalAcceptance; +import com.demcha.compose.document.templates.data.proposal.ProposalDeliverables; +import com.demcha.compose.document.templates.data.proposal.ProposalInvestment; +import com.demcha.compose.document.templates.data.proposal.ProposalGoals; +import com.demcha.compose.document.templates.data.proposal.ProposalPhaseGrid; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +import com.demcha.compose.document.templates.data.proposal.ProposalSummaryBlock; +import com.demcha.compose.document.templates.data.proposal.ProposalTermsBlock; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec; +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.text.PDFTextStripper; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * Smoke test for {@link EditorialProposal} — proves the preset renders a + * {@link StructuredProposalDocumentSpec} end-to-end with its packaged SVG + * icon set, renders an empty document through its guards, puts the table + * content on the text layer where the layout snapshot cannot see it, and + * reports its two data contracts (unknown icon token, phase-grid header + * count) by name. + * + *

It also pins what the two proposal presets do and do not share: the + * document model and the four {@code fact-*} tokens, yes; the badge and + * goal tokens, no — each preset packages its own set.

+ */ +class EditorialProposalSmokeTest { + + private static byte[] render(StructuredProposalDocumentSpec spec) throws Exception { + // The preset owns its page geometry, so the session starts unconfigured. + try (DocumentSession session = GraphCompose.document().create()) { + EditorialProposal.create().compose(session, spec); + assertThat(session.roots()).isNotEmpty(); + byte[] pdfBytes = session.toPdfBytes(); + assertThat(pdfBytes).isNotEmpty(); + return pdfBytes; + } + } + + private static String textOf(byte[] pdfBytes) throws Exception { + try (PDDocument document = Loader.loadPDF(pdfBytes)) { + return new PDFTextStripper().getText(document); + } + } + + @Test + void exposesStableIdentity() { + DocumentTemplate template = EditorialProposal.create(); + assertThat(template.id()).isEqualTo(EditorialProposal.ID); + assertThat(template.displayName()).isEqualTo(EditorialProposal.DISPLAY_NAME); + } + + @Test + void rendersCanonicalProposalWithPackagedIcons() throws Exception { + render(EditorialProposalFixtures.canonicalProposal()); + } + + @Test + void rendersEmptyProposal() throws Exception { + // Exercises the guards: no goal cells, no phase grid, no signature + // row — and the blank icon tokens that carry no packaged mark. + render(StructuredProposalDocumentSpec.from(StructuredProposalData.builder().build())); + } + + @Test + void canonicalRenderCarriesTheTableText() throws Exception { + // The phase grid and the investment table are single leaf nodes in + // the layout snapshot, so their content is asserted on the text layer. + String text = textOf(render(EditorialProposalFixtures.canonicalProposal())); + assertThat(text) + .contains("Discovery report") + .contains("Brand Identity Refinement") + .contains("2 weeks") + .contains("TOTAL INVESTMENT") + .contains("£19,250"); + } + + @Test + void theSameDocumentRendersThroughBothProposalPresets() throws Exception { + // The point of the structured model: one document, two looks. The + // fact tokens are named alike in both packaged sets, so they stay in + // the document; the badge and goal tokens are not, so those are the + // ones a move has to clear. + StructuredProposalDocumentSpec spec = + StructuredProposalDocumentSpec.from(withoutSectionIconTokens( + EditorialProposalFixtures.canonicalProposal().proposal())); + String editorial = textOf(render(spec)); + byte[] northline; + try (DocumentSession session = GraphCompose.document().create()) { + NorthlineProposal.create().compose(session, spec); + northline = session.toPdfBytes(); + } + assertThat(textOf(northline)) + .contains("Executive Summary") + .contains("TOTAL INVESTMENT"); + assertThat(editorial).contains("Executive Summary"); + } + + /** + * The same document with the preset-scoped tokens cleared — every + * section badge and the goal mark — and the shared {@code fact-*} tokens + * left in place, since both packaged sets name those alike. + */ + private static StructuredProposalData withoutSectionIconTokens( + StructuredProposalData data) { + return StructuredProposalData.builder() + .brand(data.brand()) + .title(data.title()) + .meta(data.meta()) + .executiveSummary(new ProposalSummaryBlock(data.executiveSummary().heading(), + "", data.executiveSummary().paragraphs())) + .glance(data.glance()) + .goals(new ProposalGoals(data.goals().heading(), "", + data.goals().items().stream() + .map(g -> new ProposalGoals.Goal("", g.text())) + .toList())) + .scope(new ProposalScope(data.scope().heading(), "", data.scope().items())) + .deliverables(new ProposalDeliverables(data.deliverables().heading(), "", + data.deliverables().leftColumn(), data.deliverables().rightColumn())) + .timeline(new ProposalPhaseGrid(data.timeline().heading(), "", + data.timeline().columnHeaders(), data.timeline().phases())) + .investment(new ProposalInvestment(data.investment().heading(), "", + data.investment().itemHeader(), data.investment().amountHeader(), + data.investment().rows(), data.investment().totalLabel(), + data.investment().totalAmount())) + .terms(new ProposalTermsBlock(data.terms().heading(), "", data.terms().items())) + .acceptance(new ProposalAcceptance(data.acceptance().heading(), "", + data.acceptance().statement(), data.acceptance().fields())) + .build(); + } + + @Test + void rejectsUnknownIconTokenByName() { + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .goals(new ProposalGoals("Project Goals", "no-such-icon", + List.of(new ProposalGoals.Goal("", "A goal.")))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> EditorialProposal.create().compose(session, spec)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("no-such-icon"); + } + } + + @Test + void phaseGridRejectsHeaderCountMismatchByName() { + StructuredProposalDocumentSpec spec = StructuredProposalDocumentSpec.from( + StructuredProposalData.builder() + .timeline(new ProposalPhaseGrid("Timeline", "", + List.of("PHASE", "FOCUS", "DURATION"), + List.of(new ProposalPhaseGrid.Phase("01", "Discover", + "Research", "1 week", "Report")))) + .build()); + try (DocumentSession session = GraphCompose.document().create()) { + assertThatThrownBy(() -> EditorialProposal.create().compose(session, spec)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("one header per column"); + } + } +} diff --git a/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalVisualParityTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalVisualParityTest.java new file mode 100644 index 000000000..f3033ff56 --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposalVisualParityTest.java @@ -0,0 +1,42 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.testing.visual.PdfVisualRegression; +import org.junit.jupiter.api.Test; + +import java.nio.file.Path; + +/** + * Pixel-diff visual parity gate for {@link EditorialProposal} — both pages + * of the canonical fixture against checked-in baselines. + * + *

Re-blessing baselines — after a deliberate visual + * change, re-run with {@code -Dgraphcompose.visual.approve=true} and commit + * the updated PNGs with the change. Baselines live under + * {@code src/test/resources/visual-baselines/proposal-v2-layered/}.

+ */ +class EditorialProposalVisualParityTest { + + private static final Path BASELINE_ROOT = Path.of( + "src", "test", "resources", "visual-baselines", "proposal-v2-layered"); + + private static final long PIXEL_DIFF_BUDGET = 50_000L; + private static final int PER_PIXEL_TOLERANCE = 8; + + @Test + void rendersWithinPixelDiffBudget() throws Exception { + byte[] pdfBytes; + try (DocumentSession document = GraphCompose.document().create()) { + EditorialProposal.create().compose( + document, EditorialProposalFixtures.canonicalProposal()); + pdfBytes = document.toPdfBytes(); + } + + PdfVisualRegression.standard() + .baselineRoot(BASELINE_ROOT) + .perPixelTolerance(PER_PIXEL_TOLERANCE) + .mismatchedPixelBudget(PIXEL_DIFF_BUDGET) + .assertMatchesBaseline("editorial_proposal", pdfBytes); + } +} diff --git a/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/editorial_proposal_layout.json b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/editorial_proposal_layout.json new file mode 100644 index 000000000..59abca9ef --- /dev/null +++ b/qa/src/test/resources/layout-snapshots/canonical-templates/proposal/editorial_proposal_layout.json @@ -0,0 +1,5567 @@ +{ + "formatVersion" : "2.0", + "canvas" : { + "pageWidth" : 595.276, + "pageHeight" : 841.89, + "innerWidth" : 535.276, + "innerHeight" : 773.19, + "margin" : { + "top" : 19.7, + "right" : 30.0, + "bottom" : 49.0, + "left" : 30.0 + } + }, + "totalPages" : 2, + "nodes" : [ { + "path" : "Proposal[0]", + "entityName" : "Proposal", + "entityKind" : "ContainerNode", + "parentPath" : null, + "childIndex" : 0, + "depth" : 1, + "layer" : 1, + "computedX" : 30.0, + "computedY" : -673.275, + "placementX" : 30.0, + "placementY" : -673.275, + "placementWidth" : 535.276, + "placementHeight" : 1495.465, + "startPage" : 0, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 1495.465, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]", + "entityName" : "Masthead", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 0, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 775.788, + "placementX" : 30.0, + "placementY" : 775.788, + "placementWidth" : 535.276, + "placementHeight" : 46.402, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 46.402, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]", + "entityName" : "MastheadRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Masthead[0]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 792.888, + "placementX" : 30.0, + "placementY" : 792.888, + "placementWidth" : 535.276, + "placementHeight" : 29.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 29.302, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]", + "entityName" : "LogoMark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]/MarkStem[0]", + "entityName" : "MarkStem", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]/MarkDiagonal[1]", + "entityName" : "MarkDiagonal", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]/MarkSlash[2]", + "entityName" : "MarkSlash", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]/MarkRightStem[3]", + "entityName" : "MarkRightStem", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/Wordmark[1]", + "entityName" : "Wordmark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 69.0, + "computedY" : 792.888, + "placementX" : 69.0, + "placementY" : 792.888, + "placementWidth" : 101.702, + "placementHeight" : 29.302, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 101.702, + "contentHeight" : 29.302, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/Wordmark[1]/WordmarkLine1[0]", + "entityName" : "WordmarkLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/Wordmark[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 69.0, + "computedY" : 802.87, + "placementX" : 69.0, + "placementY" : 802.87, + "placementWidth" : 92.672, + "placementHeight" : 19.32, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.672, + "contentHeight" : 19.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/Wordmark[1]/WordmarkLine2[1]", + "entityName" : "WordmarkLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/Wordmark[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 69.0, + "computedY" : 792.188, + "placementX" : 69.0, + "placementY" : 792.188, + "placementWidth" : 52.612, + "placementHeight" : 16.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 52.612, + "contentHeight" : 16.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/SpacerNode[2]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 179.702, + "computedY" : 807.539, + "placementX" : 179.702, + "placementY" : 807.539, + "placementWidth" : 0.0, + "placementHeight" : 0.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 0.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]", + "entityName" : "DocumentLabel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 495.69, + "computedY" : 799.259, + "placementX" : 495.69, + "placementY" : 799.259, + "placementWidth" : 69.586, + "placementHeight" : 16.56, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 69.586, + "contentHeight" : 16.56, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.5, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 495.69, + "computedY" : 805.859, + "placementX" : 495.69, + "placementY" : 805.859, + "placementWidth" : 61.086, + "placementHeight" : 9.96, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.086, + "contentHeight" : 9.96, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]/Align[1]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 495.69, + "computedY" : 799.259, + "placementX" : 495.69, + "placementY" : 799.259, + "placementWidth" : 61.086, + "placementHeight" : 6.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.086, + "contentHeight" : 6.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]/Align[1]/DocumentLabelRule[0]", + "entityName" : "DocumentLabelRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Masthead[0]/MastheadRow[0]/DocumentLabel[3]/Align[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 495.69, + "computedY" : 799.259, + "placementX" : 495.69, + "placementY" : 799.259, + "placementWidth" : 61.557, + "placementHeight" : 1.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 61.557, + "contentHeight" : 1.6, + "margin" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Masthead[0]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 775.788, + "placementX" : 30.0, + "placementY" : 775.788, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 16.1, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleBlock[1]", + "entityName" : "TitleBlock", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 1, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 634.688, + "placementX" : 30.0, + "placementY" : 634.688, + "placementWidth" : 535.276, + "placementHeight" : 125.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 125.6, + "margin" : { + "top" : 15.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleBlock[1]/TitleLines[0]", + "entityName" : "TitleLines", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/TitleBlock[1]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 634.688, + "placementX" : 30.0, + "placementY" : 634.688, + "placementWidth" : 535.276, + "placementHeight" : 125.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 125.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleBlock[1]/TitleLines[0]/TitleLinesLine1[0]", + "entityName" : "TitleLinesLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleBlock[1]/TitleLines[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 696.668, + "placementX" : 30.0, + "placementY" : 696.668, + "placementWidth" : 222.376, + "placementHeight" : 63.62, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 222.376, + "contentHeight" : 63.62, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleBlock[1]/TitleLines[0]/TitleLinesLine2[1]", + "entityName" : "TitleLinesLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleBlock[1]/TitleLines[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 654.768, + "placementX" : 30.0, + "placementY" : 654.768, + "placementWidth" : 321.108, + "placementHeight" : 63.62, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 321.108, + "contentHeight" : 63.62, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleBlock[1]/TitleLines[0]/TitleLinesLine3[2]", + "entityName" : "TitleLinesLine3", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleBlock[1]/TitleLines[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 612.868, + "placementX" : 30.0, + "placementY" : 612.868, + "placementWidth" : 344.975, + "placementHeight" : 63.62, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 344.975, + "contentHeight" : 63.62, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleMeta[2]", + "entityName" : "TitleMeta", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 2, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 606.088, + "placementX" : 30.0, + "placementY" : 606.088, + "placementWidth" : 476.889, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 476.889, + "contentHeight" : 12.6, + "margin" : { + "top" : 16.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/TitleMeta[2]/MetaLine[0]", + "entityName" : "MetaLine", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/TitleMeta[2]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 606.088, + "placementX" : 30.0, + "placementY" : 606.088, + "placementWidth" : 476.889, + "placementHeight" : 12.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 476.889, + "contentHeight" : 12.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]", + "entityName" : "SummaryBand", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 3, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 359.121, + "placementX" : 30.0, + "placementY" : 359.121, + "placementWidth" : 535.276, + "placementHeight" : 229.167, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 229.167, + "margin" : { + "top" : 17.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "entityName" : "SummaryColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 359.121, + "placementX" : 30.0, + "placementY" : 359.121, + "placementWidth" : 318.63, + "placementHeight" : 229.167, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 318.63, + "contentHeight" : 229.167, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 560.879, + "placementX" : 30.0, + "placementY" : 560.879, + "placementWidth" : 148.672, + "placementHeight" : 27.409, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 148.672, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 563.479, + "placementX" : 30.0, + "placementY" : 563.479, + "placementWidth" : 148.672, + "placementHeight" : 24.809, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 148.672, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 560.879, + "placementX" : 30.0, + "placementY" : 560.879, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 479.179, + "placementX" : 30.0, + "placementY" : 479.179, + "placementWidth" : 318.63, + "placementHeight" : 72.2, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 318.63, + "contentHeight" : 72.2, + "margin" : { + "top" : 9.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 413.029, + "placementX" : 30.0, + "placementY" : 413.029, + "placementWidth" : 314.24, + "placementHeight" : 57.15, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 314.24, + "contentHeight" : 57.15, + "margin" : { + "top" : 9.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SpacerNode[3]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 386.529, + "placementX" : 30.0, + "placementY" : 386.529, + "placementWidth" : 0.0, + "placementHeight" : 26.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 0.0, + "contentHeight" : 26.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]", + "childIndex" : 4, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 359.121, + "placementX" : 30.0, + "placementY" : 359.121, + "placementWidth" : 100.783, + "placementHeight" : 27.409, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.783, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 361.721, + "placementX" : 30.0, + "placementY" : 361.721, + "placementWidth" : 100.783, + "placementHeight" : 24.809, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 100.783, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/SummaryColumn[0]/SectionHeading[4]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 359.121, + "placementX" : 30.0, + "placementY" : 359.121, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]", + "entityName" : "GlanceColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 384.353, + "computedY" : 361.97, + "placementX" : 384.353, + "placementY" : 361.97, + "placementWidth" : 180.923, + "placementHeight" : 226.318, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 180.923, + "contentHeight" : 226.318, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 5.246, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "entityName" : "GlancePanel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 384.353, + "computedY" : 361.97, + "placementX" : 384.353, + "placementY" : 361.97, + "placementWidth" : 180.923, + "placementHeight" : 221.072, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 180.923, + "contentHeight" : 221.072, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 17.0, + "right" : 17.0, + "bottom" : 17.0, + "left" : 17.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 533.863, + "placementX" : 401.353, + "placementY" : 533.863, + "placementWidth" : 146.923, + "placementHeight" : 32.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 32.18, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/Icon-fact-duration[0]", + "entityName" : "Icon-fact-duration", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 401.353, + "computedY" : 539.952, + "placementX" : 401.353, + "placementY" : 539.952, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/Icon-fact-duration[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/Icon-fact-duration[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 401.353, + "computedY" : 539.952, + "placementX" : 401.353, + "placementY" : 539.952, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/Icon-fact-duration[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/Icon-fact-duration[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 401.353, + "computedY" : 539.952, + "placementX" : 401.353, + "placementY" : 539.952, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 435.353, + "computedY" : 537.052, + "placementX" : 435.353, + "placementY" : 537.052, + "placementWidth" : 74.235, + "placementHeight" : 25.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 74.235, + "contentHeight" : 25.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 553.852, + "placementX" : 435.353, + "placementY" : 553.852, + "placementWidth" : 74.235, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 74.235, + "contentHeight" : 9.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[0]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 537.052, + "placementX" : 435.353, + "placementY" : 537.052, + "placementWidth" : 51.366, + "placementHeight" : 16.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 51.366, + "contentHeight" : 16.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 525.763, + "placementX" : 401.353, + "placementY" : 525.763, + "placementWidth" : 146.923, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.1, + "right" : 0.0, + "bottom" : 7.1, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 486.483, + "placementX" : 401.353, + "placementY" : 486.483, + "placementWidth" : 146.923, + "placementHeight" : 32.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 32.18, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/Icon-fact-start[0]", + "entityName" : "Icon-fact-start", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 401.353, + "computedY" : 492.573, + "placementX" : 401.353, + "placementY" : 492.573, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/Icon-fact-start[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/Icon-fact-start[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 401.353, + "computedY" : 492.573, + "placementX" : 401.353, + "placementY" : 492.573, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/Icon-fact-start[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/Icon-fact-start[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 401.353, + "computedY" : 492.573, + "placementX" : 401.353, + "placementY" : 492.573, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 435.353, + "computedY" : 489.673, + "placementX" : 435.353, + "placementY" : 489.673, + "placementWidth" : 104.062, + "placementHeight" : 25.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.062, + "contentHeight" : 25.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 506.473, + "placementX" : 435.353, + "placementY" : 506.473, + "placementWidth" : 60.518, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 60.518, + "contentHeight" : 9.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[2]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 489.673, + "placementX" : 435.353, + "placementY" : 489.673, + "placementWidth" : 104.062, + "placementHeight" : 16.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 104.062, + "contentHeight" : 16.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/LineNode[3]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 478.383, + "placementX" : 401.353, + "placementY" : 478.383, + "placementWidth" : 146.923, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.1, + "right" : 0.0, + "bottom" : 7.1, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 439.104, + "placementX" : 401.353, + "placementY" : 439.104, + "placementWidth" : 146.923, + "placementHeight" : 32.18, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 32.18, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/Icon-fact-contact[0]", + "entityName" : "Icon-fact-contact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 401.353, + "computedY" : 445.193, + "placementX" : 401.353, + "placementY" : 445.193, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/Icon-fact-contact[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/Icon-fact-contact[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 401.353, + "computedY" : 445.193, + "placementX" : 401.353, + "placementY" : 445.193, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/Icon-fact-contact[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/Icon-fact-contact[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 401.353, + "computedY" : 445.193, + "placementX" : 401.353, + "placementY" : 445.193, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 435.353, + "computedY" : 442.293, + "placementX" : 435.353, + "placementY" : 442.293, + "placementWidth" : 78.148, + "placementHeight" : 25.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.148, + "contentHeight" : 25.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 459.093, + "placementX" : 435.353, + "placementY" : 459.093, + "placementWidth" : 71.483, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 71.483, + "contentHeight" : 9.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[4]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 442.293, + "placementX" : 435.353, + "placementY" : 442.293, + "placementWidth" : 78.148, + "placementHeight" : 16.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 78.148, + "contentHeight" : 16.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/LineNode[5]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 431.004, + "placementX" : 401.353, + "placementY" : 431.004, + "placementWidth" : 146.923, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 1.0, + "margin" : { + "top" : 7.1, + "right" : 0.0, + "bottom" : 7.1, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]", + "entityName" : "GlanceFact", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 401.353, + "computedY" : 378.97, + "placementX" : 401.353, + "placementY" : 378.97, + "placementWidth" : 146.923, + "placementHeight" : 44.934, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 146.923, + "contentHeight" : 44.934, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/Icon-fact-validity[0]", + "entityName" : "Icon-fact-validity", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 401.353, + "computedY" : 391.437, + "placementX" : 401.353, + "placementY" : 391.437, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/Icon-fact-validity[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/Icon-fact-validity[0]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 401.353, + "computedY" : 391.437, + "placementX" : 401.353, + "placementY" : 391.437, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/Icon-fact-validity[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/Icon-fact-validity[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 8, + "layer" : 8, + "computedX" : 401.353, + "computedY" : 391.437, + "placementX" : 401.353, + "placementY" : 391.437, + "placementWidth" : 20.0, + "placementHeight" : 20.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 20.0, + "contentHeight" : 20.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]", + "entityName" : "FactText", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]", + "childIndex" : 1, + "depth" : 6, + "layer" : 6, + "computedX" : 435.353, + "computedY" : 383.737, + "placementX" : 435.353, + "placementY" : 383.737, + "placementWidth" : 87.576, + "placementHeight" : 35.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.576, + "contentHeight" : 35.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]", + "childIndex" : 0, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 410.137, + "placementX" : 435.353, + "placementY" : 410.137, + "placementWidth" : 75.128, + "placementHeight" : 9.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 75.128, + "contentHeight" : 9.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]", + "childIndex" : 1, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 393.337, + "placementX" : 435.353, + "placementY" : 393.337, + "placementWidth" : 48.258, + "placementHeight" : 16.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 48.258, + "contentHeight" : 16.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/SummaryBand[3]/GlanceColumn[1]/GlancePanel[0]/GlanceFact[6]/FactText[1]", + "childIndex" : 2, + "depth" : 7, + "layer" : 7, + "computedX" : 435.353, + "computedY" : 383.737, + "placementX" : 435.353, + "placementY" : 383.737, + "placementWidth" : 87.576, + "placementHeight" : 9.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.576, + "contentHeight" : 9.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]", + "entityName" : "GoalCells", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 4, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 299.42, + "placementX" : 30.0, + "placementY" : 299.42, + "placementWidth" : 535.276, + "placementHeight" : 41.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 41.901, + "margin" : { + "top" : 17.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[0]", + "entityName" : "Icon-goal-check", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 325.321, + "placementX" : 30.0, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[0]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 325.321, + "placementX" : 30.0, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[0]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[0]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 325.321, + "placementX" : 30.0, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 54.0, + "computedY" : 302.821, + "placementX" : 54.0, + "placementY" : 302.821, + "placementWidth" : 80.352, + "placementHeight" : 38.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 80.352, + "contentHeight" : 38.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/LineNode[2]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 159.294, + "computedY" : 299.42, + "placementX" : 159.294, + "placementY" : 299.42, + "placementWidth" : 1.0, + "placementHeight" : 41.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 41.901, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[3]", + "entityName" : "Icon-goal-check", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 167.994, + "computedY" : 325.321, + "placementX" : 167.994, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[3]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[3]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 167.994, + "computedY" : 325.321, + "placementX" : 167.994, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[3]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[3]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 167.994, + "computedY" : 325.321, + "placementX" : 167.994, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 191.994, + "computedY" : 302.821, + "placementX" : 191.994, + "placementY" : 302.821, + "placementWidth" : 72.54, + "placementHeight" : 38.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 72.54, + "contentHeight" : 38.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/LineNode[5]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 5, + "depth" : 3, + "layer" : 3, + "computedX" : 297.288, + "computedY" : 299.42, + "placementX" : 297.288, + "placementY" : 299.42, + "placementWidth" : 1.0, + "placementHeight" : 41.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 41.901, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[6]", + "entityName" : "Icon-goal-check", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 6, + "depth" : 3, + "layer" : 3, + "computedX" : 305.988, + "computedY" : 325.321, + "placementX" : 305.988, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[6]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[6]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 305.988, + "computedY" : 325.321, + "placementX" : 305.988, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[6]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[6]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 305.988, + "computedY" : 325.321, + "placementX" : 305.988, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/ParagraphNode[7]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 7, + "depth" : 3, + "layer" : 3, + "computedX" : 329.988, + "computedY" : 302.821, + "placementX" : 329.988, + "placementY" : 302.821, + "placementWidth" : 87.291, + "placementHeight" : 38.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 87.291, + "contentHeight" : 38.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/LineNode[8]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 8, + "depth" : 3, + "layer" : 3, + "computedX" : 435.282, + "computedY" : 299.42, + "placementX" : 435.282, + "placementY" : 299.42, + "placementWidth" : 1.0, + "placementHeight" : 41.901, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 1.0, + "contentHeight" : 41.901, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[9]", + "entityName" : "Icon-goal-check", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 9, + "depth" : 3, + "layer" : 3, + "computedX" : 443.982, + "computedY" : 325.321, + "placementX" : 443.982, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[9]/SvgIcon[0]", + "entityName" : "SvgIcon", + "entityKind" : "LayerStackNode", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[9]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 443.982, + "computedY" : 325.321, + "placementX" : 443.982, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/Icon-goal-check[9]/SvgIcon[0]/SvgLayer0[0]", + "entityName" : "SvgLayer0", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/GoalCells[4]/Icon-goal-check[9]/SvgIcon[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 443.982, + "computedY" : 325.321, + "placementX" : 443.982, + "placementY" : 325.321, + "placementWidth" : 16.0, + "placementHeight" : 16.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 16.0, + "contentHeight" : 16.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/GoalCells[4]/ParagraphNode[10]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/GoalCells[4]", + "childIndex" : 10, + "depth" : 3, + "layer" : 3, + "computedX" : 467.982, + "computedY" : 302.821, + "placementX" : 467.982, + "placementY" : 302.821, + "placementWidth" : 86.607, + "placementHeight" : 38.5, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 86.607, + "contentHeight" : 38.5, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]", + "entityName" : "ScopeOfWork", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 5, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 88.911, + "placementX" : 30.0, + "placementY" : 88.911, + "placementWidth" : 535.276, + "placementHeight" : 192.709, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 192.709, + "margin" : { + "top" : 17.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 254.211, + "placementX" : 30.0, + "placementY" : 254.211, + "placementWidth" : 109.585, + "placementHeight" : 27.409, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.585, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 256.811, + "placementX" : 30.0, + "placementY" : 256.811, + "placementWidth" : 109.585, + "placementHeight" : 24.809, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 109.585, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 254.211, + "placementX" : 30.0, + "placementY" : 254.211, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 243.711, + "placementX" : 30.0, + "placementY" : 243.711, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 9.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]", + "entityName" : "ScopeRow01", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 2, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 213.551, + "placementX" : 30.0, + "placementY" : 213.551, + "placementWidth" : 535.276, + "placementHeight" : 30.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 30.16, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 2.9, + "right" : 0.0, + "bottom" : 2.9, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 230.011, + "placementX" : 30.0, + "placementY" : 230.011, + "placementWidth" : 10.44, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.44, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 64.0, + "computedY" : 229.411, + "placementX" : 64.0, + "placementY" : 229.411, + "placementWidth" : 92.748, + "placementHeight" : 11.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 92.748, + "contentHeight" : 11.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow01[2]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 260.169, + "computedY" : 216.451, + "placementX" : 260.169, + "placementY" : 216.451, + "placementWidth" : 259.311, + "placementHeight" : 24.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 259.311, + "contentHeight" : 24.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/LineNode[3]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 3, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 212.551, + "placementX" : 30.0, + "placementY" : 212.551, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]", + "entityName" : "ScopeRow02", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 4, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 182.391, + "placementX" : 30.0, + "placementY" : 182.391, + "placementWidth" : 535.276, + "placementHeight" : 30.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 30.16, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 2.9, + "right" : 0.0, + "bottom" : 2.9, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 198.851, + "placementX" : 30.0, + "placementY" : 198.851, + "placementWidth" : 10.44, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.44, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 64.0, + "computedY" : 198.251, + "placementX" : 64.0, + "placementY" : 198.251, + "placementWidth" : 112.87, + "placementHeight" : 11.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 112.87, + "contentHeight" : 11.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow02[4]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 260.169, + "computedY" : 185.291, + "placementX" : 260.169, + "placementY" : 185.291, + "placementWidth" : 244.342, + "placementHeight" : 24.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 244.342, + "contentHeight" : 24.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/LineNode[5]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 5, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 181.391, + "placementX" : 30.0, + "placementY" : 181.391, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]", + "entityName" : "ScopeRow03", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 6, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 151.231, + "placementX" : 30.0, + "placementY" : 151.231, + "placementWidth" : 535.276, + "placementHeight" : 30.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 30.16, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 2.9, + "right" : 0.0, + "bottom" : 2.9, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 167.691, + "placementX" : 30.0, + "placementY" : 167.691, + "placementWidth" : 10.44, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.44, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 64.0, + "computedY" : 167.091, + "placementX" : 64.0, + "placementY" : 167.091, + "placementWidth" : 97.28, + "placementHeight" : 11.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 97.28, + "contentHeight" : 11.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow03[6]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 260.169, + "computedY" : 154.131, + "placementX" : 260.169, + "placementY" : 154.131, + "placementWidth" : 276.032, + "placementHeight" : 24.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 276.032, + "contentHeight" : 24.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/LineNode[7]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 7, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 150.231, + "placementX" : 30.0, + "placementY" : 150.231, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]", + "entityName" : "ScopeRow04", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 8, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 120.071, + "placementX" : 30.0, + "placementY" : 120.071, + "placementWidth" : 535.276, + "placementHeight" : 30.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 30.16, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 2.9, + "right" : 0.0, + "bottom" : 2.9, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 136.531, + "placementX" : 30.0, + "placementY" : 136.531, + "placementWidth" : 10.44, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.44, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 64.0, + "computedY" : 135.931, + "placementX" : 64.0, + "placementY" : 135.931, + "placementWidth" : 133.19, + "placementHeight" : 11.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 133.19, + "contentHeight" : 11.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow04[8]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 260.169, + "computedY" : 122.971, + "placementX" : 260.169, + "placementY" : 122.971, + "placementWidth" : 282.091, + "placementHeight" : 24.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 282.091, + "contentHeight" : 24.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/LineNode[9]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 9, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 119.071, + "placementX" : 30.0, + "placementY" : 119.071, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]", + "entityName" : "ScopeRow05", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]", + "childIndex" : 10, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 88.911, + "placementX" : 30.0, + "placementY" : 88.911, + "placementWidth" : 535.276, + "placementHeight" : 30.16, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 535.276, + "contentHeight" : 30.16, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 2.9, + "right" : 0.0, + "bottom" : 2.9, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 105.371, + "placementX" : 30.0, + "placementY" : 105.371, + "placementWidth" : 10.44, + "placementHeight" : 10.8, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 10.44, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 64.0, + "computedY" : 104.771, + "placementX" : 64.0, + "placementY" : 104.771, + "placementWidth" : 66.633, + "placementHeight" : 11.4, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 66.633, + "contentHeight" : 11.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/ScopeOfWork[5]/ScopeRow05[10]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 260.169, + "computedY" : 91.811, + "placementX" : 260.169, + "placementY" : 91.811, + "placementWidth" : 274.933, + "placementHeight" : 24.36, + "startPage" : 0, + "endPage" : 0, + "contentWidth" : 274.933, + "contentHeight" : 24.36, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]", + "entityName" : "Masthead", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 6, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 775.788, + "placementX" : 30.0, + "placementY" : 775.788, + "placementWidth" : 535.276, + "placementHeight" : 46.402, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 46.402, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]", + "entityName" : "MastheadRow", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Masthead[6]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 792.888, + "placementX" : 30.0, + "placementY" : 792.888, + "placementWidth" : 535.276, + "placementHeight" : 29.302, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 29.302, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]", + "entityName" : "LogoMark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]/MarkStem[0]", + "entityName" : "MarkStem", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]/MarkDiagonal[1]", + "entityName" : "MarkDiagonal", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]/MarkSlash[2]", + "entityName" : "MarkSlash", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]/MarkRightStem[3]", + "entityName" : "MarkRightStem", + "entityKind" : "Path", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/LogoMark[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 794.539, + "placementX" : 30.0, + "placementY" : 794.539, + "placementWidth" : 30.0, + "placementHeight" : 26.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 30.0, + "contentHeight" : 26.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/Wordmark[1]", + "entityName" : "Wordmark", + "entityKind" : "ShapeContainerNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 69.0, + "computedY" : 792.888, + "placementX" : 69.0, + "placementY" : 792.888, + "placementWidth" : 101.702, + "placementHeight" : 29.302, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 101.702, + "contentHeight" : 29.302, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/Wordmark[1]/WordmarkLine1[0]", + "entityName" : "WordmarkLine1", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/Wordmark[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 69.0, + "computedY" : 802.87, + "placementX" : 69.0, + "placementY" : 802.87, + "placementWidth" : 92.672, + "placementHeight" : 19.32, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 92.672, + "contentHeight" : 19.32, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/Wordmark[1]/WordmarkLine2[1]", + "entityName" : "WordmarkLine2", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/Wordmark[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 69.0, + "computedY" : 792.188, + "placementX" : 69.0, + "placementY" : 792.188, + "placementWidth" : 52.612, + "placementHeight" : 16.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 52.612, + "contentHeight" : 16.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/SpacerNode[2]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 179.702, + "computedY" : 807.539, + "placementX" : 179.702, + "placementY" : 807.539, + "placementWidth" : 0.0, + "placementHeight" : 0.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 0.0, + "contentHeight" : 0.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]", + "entityName" : "DocumentLabel", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]", + "childIndex" : 3, + "depth" : 4, + "layer" : 4, + "computedX" : 495.69, + "computedY" : 799.259, + "placementX" : 495.69, + "placementY" : 799.259, + "placementWidth" : 69.586, + "placementHeight" : 16.56, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 69.586, + "contentHeight" : 16.56, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 8.5, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 495.69, + "computedY" : 805.859, + "placementX" : 495.69, + "placementY" : 805.859, + "placementWidth" : 61.086, + "placementHeight" : 9.96, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 61.086, + "contentHeight" : 9.96, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]/Align[1]", + "entityName" : null, + "entityKind" : "Align", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 495.69, + "computedY" : 799.259, + "placementX" : 495.69, + "placementY" : 799.259, + "placementWidth" : 61.086, + "placementHeight" : 6.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 61.086, + "contentHeight" : 6.6, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]/Align[1]/DocumentLabelRule[0]", + "entityName" : "DocumentLabelRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Masthead[6]/MastheadRow[0]/DocumentLabel[3]/Align[1]", + "childIndex" : 0, + "depth" : 6, + "layer" : 6, + "computedX" : 495.69, + "computedY" : 799.259, + "placementX" : 495.69, + "placementY" : 799.259, + "placementWidth" : 61.557, + "placementHeight" : 1.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 61.557, + "contentHeight" : 1.6, + "margin" : { + "top" : 5.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Masthead[6]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Masthead[6]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 775.788, + "placementX" : 30.0, + "placementY" : 775.788, + "placementWidth" : 535.276, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 1.0, + "margin" : { + "top" : 16.1, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]", + "entityName" : "Deliverables", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 7, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 629.479, + "placementX" : 30.0, + "placementY" : 629.479, + "placementWidth" : 535.276, + "placementHeight" : 127.309, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 127.309, + "margin" : { + "top" : 19.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Deliverables[7]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 729.379, + "placementX" : 30.0, + "placementY" : 729.379, + "placementWidth" : 93.073, + "placementHeight" : 27.409, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 93.073, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 731.979, + "placementX" : 30.0, + "placementY" : 731.979, + "placementWidth" : 93.073, + "placementHeight" : 24.809, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 93.073, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Deliverables[7]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 729.379, + "placementX" : 30.0, + "placementY" : 729.379, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]", + "entityName" : "DeliverableColumns", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Deliverables[7]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 629.479, + "placementX" : 30.0, + "placementY" : 629.479, + "placementWidth" : 535.276, + "placementHeight" : 99.9, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 99.9, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "entityName" : "DeliverablesLeft", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 629.479, + "placementX" : 30.0, + "placementY" : 629.479, + "placementWidth" : 174.6, + "placementHeight" : 90.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 174.6, + "contentHeight" : 90.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 707.879, + "placementX" : 30.0, + "placementY" : 707.879, + "placementWidth" : 118.56, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 118.56, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 688.279, + "placementX" : 30.0, + "placementY" : 688.279, + "placementWidth" : 174.6, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 174.6, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 668.679, + "placementX" : 30.0, + "placementY" : 668.679, + "placementWidth" : 164.43, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 164.43, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 649.079, + "placementX" : 30.0, + "placementY" : 649.079, + "placementWidth" : 116.23, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 116.23, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]/ParagraphNode[4]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesLeft[0]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 629.479, + "placementX" : 30.0, + "placementY" : 629.479, + "placementWidth" : 138.3, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 138.3, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]", + "entityName" : "DeliverablesRight", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 292.821, + "computedY" : 635.259, + "placementX" : 292.821, + "placementY" : 635.259, + "placementWidth" : 186.8, + "placementHeight" : 84.62, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 186.8, + "contentHeight" : 84.62, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 292.821, + "computedY" : 694.059, + "placementX" : 292.821, + "placementY" : 694.059, + "placementWidth" : 185.14, + "placementHeight" : 25.82, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 185.14, + "contentHeight" : 25.82, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 292.821, + "computedY" : 674.459, + "placementX" : 292.821, + "placementY" : 674.459, + "placementWidth" : 164.67, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 164.67, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 292.821, + "computedY" : 654.859, + "placementX" : 292.821, + "placementY" : 654.859, + "placementWidth" : 186.8, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 186.8, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Deliverables[7]/DeliverableColumns[1]/DeliverablesRight[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 292.821, + "computedY" : 635.259, + "placementX" : 292.821, + "placementY" : 635.259, + "placementWidth" : 163.73, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 163.73, + "contentHeight" : 12.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Timeline[8]", + "entityName" : "Timeline", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 8, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 405.621, + "placementX" : 30.0, + "placementY" : 405.621, + "placementWidth" : 535.276, + "placementHeight" : 206.059, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 206.059, + "margin" : { + "top" : 17.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Timeline[8]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Timeline[8]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 584.271, + "placementX" : 30.0, + "placementY" : 584.271, + "placementWidth" : 68.525, + "placementHeight" : 27.409, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 68.525, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Timeline[8]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Timeline[8]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 586.871, + "placementX" : 30.0, + "placementY" : 586.871, + "placementWidth" : 68.525, + "placementHeight" : 24.809, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 68.525, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Timeline[8]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Timeline[8]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 584.271, + "placementX" : 30.0, + "placementY" : 584.271, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Timeline[8]/TimelineTable[1]", + "entityName" : "TimelineTable", + "entityKind" : "TableNode", + "parentPath" : "Proposal[0]/Timeline[8]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 405.621, + "placementX" : 30.0, + "placementY" : 405.621, + "placementWidth" : 535.276, + "placementHeight" : 164.95, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 164.95, + "margin" : { + "top" : 13.7, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]", + "entityName" : "MoneyBand", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]", + "childIndex" : 9, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 164.512, + "placementX" : 30.0, + "placementY" : 164.512, + "placementWidth" : 535.276, + "placementHeight" : 223.309, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 223.309, + "margin" : { + "top" : 17.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]", + "entityName" : "InvestmentColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 30.0, + "computedY" : 164.512, + "placementX" : 30.0, + "placementY" : 164.512, + "placementWidth" : 319.024, + "placementHeight" : 223.309, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 319.024, + "contentHeight" : 223.309, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 360.412, + "placementX" : 30.0, + "placementY" : 360.412, + "placementWidth" : 85.2, + "placementHeight" : 27.409, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 85.2, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 363.012, + "placementX" : 30.0, + "placementY" : 363.012, + "placementWidth" : 85.2, + "placementHeight" : 24.809, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 85.2, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 30.0, + "computedY" : 360.412, + "placementX" : 30.0, + "placementY" : 360.412, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]/InvestmentTable[1]", + "entityName" : "InvestmentTable", + "entityKind" : "TableNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/InvestmentColumn[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 30.0, + "computedY" : 164.512, + "placementX" : 30.0, + "placementY" : 164.512, + "placementWidth" : 319.024, + "placementHeight" : 182.2, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 319.024, + "contentHeight" : 182.2, + "margin" : { + "top" : 13.7, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]", + "entityName" : "TermsColumn", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]", + "childIndex" : 1, + "depth" : 3, + "layer" : 3, + "computedX" : 388.635, + "computedY" : 211.012, + "placementX" : 388.635, + "placementY" : 211.012, + "placementWidth" : 176.54, + "placementHeight" : 176.809, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 176.54, + "contentHeight" : 176.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 388.635, + "computedY" : 360.412, + "placementX" : 388.635, + "placementY" : 360.412, + "placementWidth" : 48.248, + "placementHeight" : 27.409, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 48.248, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 388.635, + "computedY" : 363.012, + "placementX" : 388.635, + "placementY" : 363.012, + "placementWidth" : 48.248, + "placementHeight" : 24.809, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 48.248, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 388.635, + "computedY" : 360.412, + "placementX" : 388.635, + "placementY" : 360.412, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]", + "entityName" : "TermsList", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 388.635, + "computedY" : 211.012, + "placementX" : 388.635, + "placementY" : 211.012, + "placementWidth" : 176.54, + "placementHeight" : 149.4, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 176.54, + "contentHeight" : 149.4, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 388.635, + "computedY" : 325.092, + "placementX" : 388.635, + "placementY" : 325.092, + "placementWidth" : 175.09, + "placementHeight" : 25.82, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 175.09, + "contentHeight" : 25.82, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 388.635, + "computedY" : 291.672, + "placementX" : 388.635, + "placementY" : 291.672, + "placementWidth" : 170.41, + "placementHeight" : 25.82, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 170.41, + "contentHeight" : 25.82, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]/ParagraphNode[2]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 388.635, + "computedY" : 258.252, + "placementX" : 388.635, + "placementY" : 258.252, + "placementWidth" : 176.54, + "placementHeight" : 25.82, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 176.54, + "contentHeight" : 25.82, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/MoneyBand[9]/TermsColumn[1]/TermsList[1]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 388.635, + "computedY" : 211.012, + "placementX" : 388.635, + "placementY" : 211.012, + "placementWidth" : 166.306, + "placementHeight" : 39.64, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 166.306, + "contentHeight" : 39.64, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]", + "entityName" : "Acceptance", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]", + "childIndex" : 10, + "depth" : 2, + "layer" : 2, + "computedX" : 30.0, + "computedY" : 60.004, + "placementX" : 30.0, + "placementY" : 60.004, + "placementWidth" : 535.276, + "placementHeight" : 86.709, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 535.276, + "contentHeight" : 86.709, + "margin" : { + "top" : 17.8, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.0, + "right" : 9.0, + "bottom" : 9.0, + "left" : 9.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]", + "entityName" : "AcceptanceBody", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Acceptance[10]", + "childIndex" : 0, + "depth" : 3, + "layer" : 3, + "computedX" : 39.0, + "computedY" : 69.004, + "placementX" : 39.0, + "placementY" : 69.004, + "placementWidth" : 517.276, + "placementHeight" : 68.709, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 517.276, + "contentHeight" : 68.709, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 9.0, + "bottom" : 0.0, + "left" : 9.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SectionHeading[0]", + "entityName" : "SectionHeading", + "entityKind" : "SectionNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]", + "childIndex" : 0, + "depth" : 4, + "layer" : 4, + "computedX" : 48.0, + "computedY" : 110.304, + "placementX" : 48.0, + "placementY" : 110.304, + "placementWidth" : 86.814, + "placementHeight" : 27.409, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 86.814, + "contentHeight" : 27.409, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SectionHeading[0]/SectionHeadingTitle[0]", + "entityName" : "SectionHeadingTitle", + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SectionHeading[0]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 48.0, + "computedY" : 112.904, + "placementX" : 48.0, + "placementY" : 112.904, + "placementWidth" : 86.814, + "placementHeight" : 24.809, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 86.814, + "contentHeight" : 24.809, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SectionHeading[0]/SectionHeadingRule[1]", + "entityName" : "SectionHeadingRule", + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SectionHeading[0]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 48.0, + "computedY" : 110.304, + "placementX" : 48.0, + "placementY" : 110.304, + "placementWidth" : 25.693, + "placementHeight" : 1.6, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 25.693, + "contentHeight" : 1.6, + "margin" : { + "top" : 1.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/ParagraphNode[1]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]", + "childIndex" : 1, + "depth" : 4, + "layer" : 4, + "computedX" : 48.0, + "computedY" : 88.804, + "placementX" : 48.0, + "placementY" : 88.804, + "placementWidth" : 432.25, + "placementHeight" : 12.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 432.25, + "contentHeight" : 12.0, + "margin" : { + "top" : 9.5, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "entityName" : "SignatureFields", + "entityKind" : "RowNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]", + "childIndex" : 2, + "depth" : 4, + "layer" : 4, + "computedX" : 48.0, + "computedY" : 69.004, + "placementX" : 48.0, + "placementY" : 69.004, + "placementWidth" : 499.276, + "placementHeight" : 19.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 499.276, + "contentHeight" : 19.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 9.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/ParagraphNode[0]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 0, + "depth" : 5, + "layer" : 5, + "computedX" : 48.0, + "computedY" : 69.004, + "placementX" : 48.0, + "placementY" : 69.004, + "placementWidth" : 51.759, + "placementHeight" : 10.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 51.759, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/LineNode[1]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 1, + "depth" : 5, + "layer" : 5, + "computedX" : 103.759, + "computedY" : 69.004, + "placementX" : 103.759, + "placementY" : 69.004, + "placementWidth" : 128.36, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 128.36, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/SpacerNode[2]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 2, + "depth" : 5, + "layer" : 5, + "computedX" : 236.119, + "computedY" : 69.004, + "placementX" : 236.119, + "placementY" : 69.004, + "placementWidth" : 7.5, + "placementHeight" : 0.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 7.5, + "contentHeight" : 0.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/ParagraphNode[3]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 3, + "depth" : 5, + "layer" : 5, + "computedX" : 247.619, + "computedY" : 69.004, + "placementX" : 247.619, + "placementY" : 69.004, + "placementWidth" : 39.753, + "placementHeight" : 10.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 39.753, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/LineNode[4]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 4, + "depth" : 5, + "layer" : 5, + "computedX" : 291.372, + "computedY" : 69.004, + "placementX" : 291.372, + "placementY" : 69.004, + "placementWidth" : 132.135, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 132.135, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/SpacerNode[5]", + "entityName" : null, + "entityKind" : "SpacerNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 5, + "depth" : 5, + "layer" : 5, + "computedX" : 427.508, + "computedY" : 69.004, + "placementX" : 427.508, + "placementY" : 69.004, + "placementWidth" : 7.5, + "placementHeight" : 0.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 7.5, + "contentHeight" : 0.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/ParagraphNode[6]", + "entityName" : null, + "entityKind" : "ParagraphNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 6, + "depth" : 5, + "layer" : 5, + "computedX" : 439.008, + "computedY" : 69.004, + "placementX" : 439.008, + "placementY" : 69.004, + "placementWidth" : 21.555, + "placementHeight" : 10.8, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 21.555, + "contentHeight" : 10.8, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + }, { + "path" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]/LineNode[7]", + "entityName" : null, + "entityKind" : "LineNode", + "parentPath" : "Proposal[0]/Acceptance[10]/AcceptanceBody[0]/SignatureFields[2]", + "childIndex" : 7, + "depth" : 5, + "layer" : 5, + "computedX" : 464.563, + "computedY" : 69.004, + "placementX" : 464.563, + "placementY" : 69.004, + "placementWidth" : 82.713, + "placementHeight" : 1.0, + "startPage" : 1, + "endPage" : 1, + "contentWidth" : 82.713, + "contentHeight" : 1.0, + "margin" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + }, + "padding" : { + "top" : 0.0, + "right" : 0.0, + "bottom" : 0.0, + "left" : 0.0 + } + } ] +} diff --git a/qa/src/test/resources/visual-baselines/proposal-v2-layered/editorial_proposal-page-0.png b/qa/src/test/resources/visual-baselines/proposal-v2-layered/editorial_proposal-page-0.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e627b1edd163bc755cf54dd5675f98d0a74656 GIT binary patch literal 104056 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 literal 0 HcmV?d00001 diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialIcons.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialIcons.java new file mode 100644 index 000000000..33a66bfd8 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialIcons.java @@ -0,0 +1,66 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.svg.SvgIcon; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.nio.charset.StandardCharsets; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Classpath loader for the Editorial Proposal icon set — the marks beside + * the at-a-glance facts and the check that opens every goal cell. + * + *

They ship inside the templates artifact under + * {@code templates/proposal/editorial/icons/} as SVG, so they scale with + * the box they are drawn into rather than being resampled. Parsed icons are + * cached per token, so a two-page proposal reads each file once per JVM.

+ */ +final class EditorialIcons { + + private static final String ICON_ROOT = "/templates/proposal/editorial/icons/"; + private static final Map CACHE = new ConcurrentHashMap<>(); + + private EditorialIcons() { + } + + /** + * Builds an icon node at a given width. + * + * @param token the icon token carried by the data + * @param width the drawn width; the height follows the icon's ratio + * @return the icon node + * @throws IllegalArgumentException when the token names no packaged icon + * — an icon token is data, so a wrong one is a data error + */ + static DocumentNode icon(String token, double width) { + // Named after the token: an icon swapped in the data then reaches the + // layout snapshot as a changed node path, not just as moved pixels. + return new ShapeContainerBuilder() + .name("Icon-" + token) + .rectangle(width, width) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .centerLeft(CACHE.computeIfAbsent(token, EditorialIcons::read).node(width)) + .build(); + } + + private static SvgIcon read(String token) { + String resourcePath = ICON_ROOT + token + ".svg"; + try (InputStream input = EditorialIcons.class.getResourceAsStream(resourcePath)) { + if (input == null) { + throw new IllegalArgumentException( + "Unknown editorial proposal icon token '" + token + + "' — no packaged icon at " + resourcePath + "."); + } + return SvgIcon.parse(new String(input.readAllBytes(), StandardCharsets.UTF_8)); + } catch (IOException e) { + throw new UncheckedIOException( + "Failed to read editorial proposal icon: " + resourcePath, e); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageOne.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageOne.java new file mode 100644 index 000000000..380322ea4 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageOne.java @@ -0,0 +1,307 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.templates.data.proposal.ProposalGlance; +import com.demcha.compose.document.templates.data.proposal.ProposalGoals; +import com.demcha.compose.document.templates.data.proposal.ProposalScope; +import com.demcha.compose.document.templates.data.proposal.ProposalSummaryBlock; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BAND_TOP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_DIVIDER_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_ICON; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_LABEL; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_NOTE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_VALUE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FACT_VALUE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_AFTER_RULE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_BEFORE_GOALS_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_META; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_PARAGRAPH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_TITLE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GLANCE_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GLANCE_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GOAL_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GOAL_ICON; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GOAL_TEXT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GOAL_TEXT_LINES; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HAIRLINE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HEADING_CAP_LEAD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HEADING_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.LABEL_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.META; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.META_SEPARATOR; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PANEL_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PANEL_PADDING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.RULE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.RULE_QUIET; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_BODY; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_DESC_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_NUMBER; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_NUMBER_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_ROW_PAD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_TITLE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SCOPE_TITLE_SPLIT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SUMMARY_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SUMMARY_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TABLE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TITLE_ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TITLE_INK; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TITLE_PITCH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TITLE_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.lineHeight; +import static com.demcha.compose.document.templates.proposal.presets.EditorialWidgets.sectionHeading; +import static com.demcha.compose.document.templates.proposal.presets.EditorialWidgets.stackedLines; + +/** + * Page one of the Editorial Proposal: the stacked title, the meta line, the + * summary beside the fact card, the goal cells, and the numbered scope list. + */ +final class EditorialPageOne { + + private EditorialPageOne() { + } + + static void compose(PageFlowBuilder page, StructuredProposalData data) { + renderTitleBlock(page, data); + renderTitleMeta(page, data); + renderSummaryBand(page, data); + renderGoalCells(page, data.goals()); + renderScopeOfWork(page, data.scope()); + } + + /** The three title lines, stacked on the reference's own pitch. */ + private static void renderTitleBlock(PageFlowBuilder page, StructuredProposalData data) { + page.addSection("TitleBlock", block -> { + block.margin(GAP_TITLE, 0f, 0f, 0f); + block.spacing(0); + block.add(stackedLines("TitleLines", CONTENT_WIDTH, TITLE_PITCH, TITLE_SIZE, + List.of(data.title().lead(), data.title().second(), data.title().third()), + List.of(TITLE_INK, TITLE_ACCENT, TITLE_ACCENT))); + }); + } + + /** Prepared-for, prepared-by and date, split by accent pipes. */ + private static void renderTitleMeta(PageFlowBuilder page, StructuredProposalData data) { + page.addSection("TitleMeta", section -> { + section.margin(GAP_META, 0f, 0f, 0f); + section.addParagraph(p -> p + .name("MetaLine") + .inlineText(data.meta().preparedFor(), META) + .inlineText(" | ", META_SEPARATOR) + .inlineText(data.meta().preparedBy(), META) + .inlineText(" | ", META_SEPARATOR) + .inlineText(data.meta().date(), META)); + }); + } + + /** The two-column band: summary and the goals heading left, fact card right. */ + private static void renderSummaryBand(PageFlowBuilder page, StructuredProposalData data) { + page.addRow("SummaryBand", row -> { + row.margin(DocumentInsets.top(BAND_TOP)); + row.verticalAlign(RowVerticalAlign.TOP) + .gap(SUMMARY_GAP) + .weights(SUMMARY_WEIGHT, GLANCE_WEIGHT); + row.addSection("SummaryColumn", column -> { + renderExecutiveSummary(column, data.executiveSummary()); + column.addSpacer(spacer -> spacer.height(GAP_BEFORE_GOALS_HEADING)); + column.add(sectionHeading(data.goals().heading())); + }); + row.addSection("GlanceColumn", column -> { + // The card's top edge lines up with the heading's CAP top, not + // with its line box, which starts HEADING_CAP_LEAD of the type + // size higher. Both children start at the band's top, so the + // card is padded down by the difference — stated once here + // rather than baked into BAND_TOP, which every band follows. + column.padding((float) (HEADING_SIZE * HEADING_CAP_LEAD - 1.6), 0f, 0f, 0f); + renderGlancePanel(column, data.glance()); + }); + }); + } + + private static void renderExecutiveSummary(SectionBuilder column, + ProposalSummaryBlock summary) { + column.spacing(0); + column.add(sectionHeading(summary.heading())); + List paragraphs = summary.paragraphs(); + for (int i = 0; i < paragraphs.size(); i++) { + String text = paragraphs.get(i); + float top = i == 0 ? GAP_AFTER_RULE : GAP_PARAGRAPH; + column.addParagraph(p -> p + .text(text) + .textStyle(BODY) + .lineSpacing(BODY_LEADING) + .margin(top, 0f, 0f, 0f)); + } + } + + /** + * The fact card. Unlike its teal sibling the card is untitled — the + * data's glance heading is not drawn — and its facts are divided by + * quiet rules inside a stroked panel. + */ + private static void renderGlancePanel(SectionBuilder column, ProposalGlance glance) { + List facts = glance.facts(); + double inner = GLANCE_WIDTH - 2 * PANEL_PADDING; + column.addSection("GlancePanel", panel -> { + panel.spacing(0).softPanel(PANEL_BACKGROUND, PANEL_RADIUS, PANEL_PADDING, + DocumentStroke.of(RULE_QUIET, HAIRLINE)); + for (int i = 0; i < facts.size(); i++) { + panel.add(renderGlanceFact(facts.get(i), inner)); + if (i < facts.size() - 1) { + panel.addLine(line -> line + .fill() + .thickness(HAIRLINE) + .color(RULE_QUIET) + .margin(DocumentInsets.symmetric(FACT_DIVIDER_GAP, 0))); + } + } + }); + } + + /** + * One fact: the icon anchored left of a label-over-value stack. The + * container's height derives from the lines the fact actually has, so an + * optional note makes its own room. + */ + private static DocumentNode renderGlanceFact(ProposalGlance.Fact fact, double width) { + boolean hasNote = !fact.note().isBlank(); + double height = lineHeight(LABEL_SIZE) + + lineHeight(FACT_VALUE_SIZE) + + (hasNote ? lineHeight(LABEL_SIZE + 0.5) : 0); + + SectionBuilder text = new SectionBuilder(); + text.name("FactText"); + text.spacing(0); + text.addParagraph(p -> p.text(fact.label()).textStyle(FACT_LABEL)); + text.addParagraph(p -> p.text(fact.value()).textStyle(FACT_VALUE)); + if (hasNote) { + text.addParagraph(p -> p.text(fact.note()).textStyle(FACT_NOTE)); + } + + ShapeContainerBuilder container = new ShapeContainerBuilder() + .name("GlanceFact") + .rectangle(width, height) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE); + if (!fact.icon().isBlank()) { + container.position(EditorialIcons.icon(fact.icon(), FACT_ICON), + 0, 0, LayerAlign.CENTER_LEFT); + } + return container + .position(text.build(), FACT_ICON + FACT_GAP, 0, LayerAlign.CENTER_LEFT) + .build(); + } + + /** + * The goal cells, flattened into one row: the engine refuses a row inside + * a row cell, so the column widths carry the structure. A cell opens with + * the goal's own icon token, falling back to the band's — which is how + * this design marks every cell alike, since its goals name no token. + */ + private static void renderGoalCells(PageFlowBuilder page, ProposalGoals goals) { + List items = goals.items(); + if (items.isEmpty()) { + return; + } + double dividerHeight = GOAL_TEXT_LINES * lineHeight(TABLE_SIZE); + page.addRow("GoalCells", row -> { + row.margin(DocumentInsets.top(BAND_TOP)); + row.verticalAlign(RowVerticalAlign.TOP).gap(GOAL_GAP); + row.columns(goalColumns(items.size())); + for (int i = 0; i < items.size(); i++) { + if (i > 0) { + row.addLine(line -> line + .vertical(dividerHeight) + .thickness(HAIRLINE) + .color(RULE)); + } + ProposalGoals.Goal goal = items.get(i); + // The goal's own token when it carries one; the band's token + // otherwise, which is how this design marks every cell the + // same. A goal that names neither keeps the column mapping of + // the flattened row with a spacer. + String mark = goal.icon().isBlank() ? goals.icon() : goal.icon(); + if (mark.isBlank()) { + row.addSpacer(GOAL_ICON); + } else { + row.add(EditorialIcons.icon(mark, GOAL_ICON)); + } + row.addParagraph(p -> p + .text(goal.text()) + .textStyle(GOAL_TEXT) + .lineSpacing(BODY_LEADING)); + } + }); + } + + private static DocumentRowColumn[] goalColumns(int goalCount) { + DocumentRowColumn[] columns = new DocumentRowColumn[goalCount * 2 + (goalCount - 1)]; + int at = 0; + for (int i = 0; i < goalCount; i++) { + if (i > 0) { + columns[at++] = DocumentRowColumn.fixed(HAIRLINE); + } + columns[at++] = DocumentRowColumn.fixed(GOAL_ICON); + columns[at++] = DocumentRowColumn.weight(1); + } + return columns; + } + + /** + * The numbered scope list: rows plus hairlines. The ordinal is plain + * accent text — the teal sibling encloses the same number in a pill. + */ + private static void renderScopeOfWork(PageFlowBuilder page, ProposalScope scope) { + double titleWidth = + CONTENT_WIDTH * SCOPE_TITLE_SPLIT - SCOPE_NUMBER_WIDTH - 2 * SCOPE_GAP; + page.addSection("ScopeOfWork", section -> { + section.margin(BAND_TOP, 0f, 0f, 0f); + section.spacing(0); + section.add(sectionHeading(scope.heading())); + section.addLine(line -> line + .fill() + .thickness(HAIRLINE) + .color(RULE) + .margin(DocumentInsets.top(GAP_AFTER_RULE))); + List items = scope.items(); + for (int i = 0; i < items.size(); i++) { + ProposalScope.Item item = items.get(i); + section.addRow("ScopeRow" + item.number(), row -> { + row.verticalAlign(RowVerticalAlign.TOP) + .gap(SCOPE_GAP) + .padding(DocumentInsets.symmetric(SCOPE_ROW_PAD, 0)) + .columns(DocumentRowColumn.fixed(SCOPE_NUMBER_WIDTH), + DocumentRowColumn.fixed(titleWidth), + DocumentRowColumn.fixed(CONTENT_WIDTH * SCOPE_DESC_WEIGHT)); + row.addParagraph(p -> p.text(item.number()).textStyle(SCOPE_NUMBER)); + row.addParagraph(p -> p.text(item.title()).textStyle(SCOPE_TITLE)); + row.addParagraph(p -> p + .text(item.description()) + .textStyle(SCOPE_BODY) + .lineSpacing(SCOPE_LEADING)); + }); + if (i < items.size() - 1) { + section.addLine(line -> line.fill().thickness(HAIRLINE).color(RULE)); + } + } + }); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageTwo.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageTwo.java new file mode 100644 index 000000000..a99370f96 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialPageTwo.java @@ -0,0 +1,360 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.RowBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentStroke; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.table.DocumentTableCell; +import com.demcha.compose.document.table.DocumentTableColumn; +import com.demcha.compose.document.table.DocumentTableStyle; +import com.demcha.compose.document.table.DocumentTableTextAnchor; +import com.demcha.compose.document.templates.data.proposal.ProposalAcceptance; +import com.demcha.compose.document.templates.data.proposal.ProposalDeliverables; +import com.demcha.compose.document.templates.data.proposal.ProposalInvestment; +import com.demcha.compose.document.templates.data.proposal.ProposalPhaseGrid; +import com.demcha.compose.document.templates.data.proposal.ProposalTermsBlock; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.ACCEPTANCE_FIELD_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.ACCEPTANCE_PADDING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.ACCEPTANCE_SIDE_PADDING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BAND_TOP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BODY_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.DELIVERABLES_COLUMN_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.DELIVERABLES_LEFT_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_AFTER_RULE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_BEFORE_TABLE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_BULLET; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_PAGE_TWO_OPENING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HAIRLINE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INVESTMENT_EMPHASIS_PAD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INVESTMENT_LABEL_SPLIT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INVESTMENT_ROW_PAD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INVESTMENT_TOTAL_PAD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INVESTMENT_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INVESTMENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.MONEY_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PANEL_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PANEL_RADIUS; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.RULE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.RULE_QUIET; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SIGNATURE_LABEL; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SIGNATURE_LABEL_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SIGNATURE_RULE_WEIGHTS; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SIGNATURE_SPACER; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SUBTOTAL_FILL; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TABLE_BODY; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TABLE_BODY_BOLD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TABLE_CELL_INSET; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TABLE_HEADER; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TERMS_WEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TIMELINE_ROW_PAD; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TIMELINE_WEIGHTS; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.TOTAL_TEXT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialWidgets.renderBullet; +import static com.demcha.compose.document.templates.proposal.presets.EditorialWidgets.sectionHeading; + +/** + * Page two of the Editorial Proposal: the deliverable columns, the phase + * grid, the investment / terms band, and the signing card. + */ +final class EditorialPageTwo { + + private EditorialPageTwo() { + } + + static void compose(PageFlowBuilder page, StructuredProposalData data) { + renderDeliverables(page, data.deliverables()); + renderTimelineTable(page, data.timeline()); + renderMoneyBand(page, data); + renderAcceptance(page, data.acceptance()); + } + + /** Heading plus two bullet columns of measured width. */ + private static void renderDeliverables(PageFlowBuilder page, + ProposalDeliverables deliverables) { + page.addSection("Deliverables", section -> { + section.margin(GAP_PAGE_TWO_OPENING, 0f, 0f, 0f); + section.spacing(0); + section.add(sectionHeading(deliverables.heading())); + section.addRow("DeliverableColumns", row -> { + row.verticalAlign(RowVerticalAlign.TOP) + .gap(0) + .padding(DocumentInsets.top(GAP_AFTER_RULE)) + // Fixed, not weights: weights would divide the whole + // band between the two columns and neither would wrap + // where the reference wraps. The left column places the + // right one; the right one is its own measure, and the + // rest of the band stays empty as the reference leaves it. + .columns(DocumentRowColumn.fixed( + CONTENT_WIDTH * DELIVERABLES_LEFT_WEIGHT), + DocumentRowColumn.fixed( + CONTENT_WIDTH * DELIVERABLES_COLUMN_WEIGHT)); + row.addSection("DeliverablesLeft", column -> { + column.spacing(GAP_BULLET); + deliverables.leftColumn().forEach(item -> renderBullet(column, item)); + }); + row.addSection("DeliverablesRight", column -> { + column.spacing(GAP_BULLET); + deliverables.rightColumn().forEach(item -> renderBullet(column, item)); + }); + }); + }); + } + + /** + * The phase grid. Requires one authored header per rendered column, and + * is skipped entirely when the data carries no phases. + * + *

The two single-line columns are centred in their row rather than + * sat on its first line; the prose columns keep TOP because they are + * what makes the row tall, so centring them would be a no-op.

+ */ + private static void renderTimelineTable(PageFlowBuilder page, ProposalPhaseGrid timeline) { + if (timeline.phases().isEmpty()) { + return; + } + List headers = timeline.columnHeaders(); + if (headers.size() != TIMELINE_WEIGHTS.length) { + throw new IllegalArgumentException( + "The phase grid renders " + TIMELINE_WEIGHTS.length + + " columns and needs exactly one header per column; " + + "columnHeaders carries " + headers.size() + "."); + } + DocumentTableStyle headerStyle = DocumentTableStyle.builder() + .fillColor(INK) + .stroke(DocumentStroke.of(INK, HAIRLINE)) + .padding(DocumentInsets.symmetric(7, TABLE_CELL_INSET)) + .textStyle(TABLE_HEADER) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + DocumentTableStyle cellStyle = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(RULE, HAIRLINE)) + .padding(DocumentInsets.symmetric(TIMELINE_ROW_PAD, TABLE_CELL_INSET)) + .textStyle(TABLE_BODY) + .textAnchor(DocumentTableTextAnchor.TOP_LEFT) + .lineSpacing(BODY_LEADING) + .build(); + DocumentTableStyle centredCellStyle = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(RULE, HAIRLINE)) + .padding(DocumentInsets.symmetric(TIMELINE_ROW_PAD, TABLE_CELL_INSET)) + .textStyle(TABLE_BODY) + .textAnchor(DocumentTableTextAnchor.CENTER_LEFT) + .build(); + + page.addSection("Timeline", section -> { + section.margin(BAND_TOP, 0f, 0f, 0f); + section.spacing(0); + section.add(sectionHeading(timeline.heading())); + section.addTable(table -> { + table.name("TimelineTable") + .width(CONTENT_WIDTH) + .margin(DocumentInsets.top(GAP_BEFORE_TABLE)) + .columns(DocumentTableColumn.fixed(CONTENT_WIDTH * TIMELINE_WEIGHTS[0]), + DocumentTableColumn.fixed(CONTENT_WIDTH * TIMELINE_WEIGHTS[1]), + DocumentTableColumn.fixed(CONTENT_WIDTH * TIMELINE_WEIGHTS[2]), + DocumentTableColumn.fixed(CONTENT_WIDTH * TIMELINE_WEIGHTS[3])) + .defaultCellStyle(cellStyle); + table.headerCells( + DocumentTableCell.text(headers.get(0)).withStyle(headerStyle), + DocumentTableCell.text(headers.get(1)).withStyle(headerStyle), + DocumentTableCell.text(headers.get(2)).withStyle(headerStyle), + DocumentTableCell.text(headers.get(3)).withStyle(headerStyle)); + for (ProposalPhaseGrid.Phase phase : timeline.phases()) { + table.rowCells( + DocumentTableCell.text(phase.number() + " " + phase.name()) + .withStyle(centredCellStyle), + DocumentTableCell.node(wrappingCell(phase.focus())) + .withStyle(cellStyle), + DocumentTableCell.text(phase.duration()) + .withStyle(centredCellStyle), + DocumentTableCell.node(wrappingCell(phase.output())) + .withStyle(cellStyle)); + } + table.repeatHeader(); + }); + }); + } + + /** A table cell that has to wrap: a composed paragraph wraps to its column. */ + private static DocumentNode wrappingCell(String text) { + return new ParagraphBuilder() + .name("Cell") + .text(text) + .textStyle(TABLE_BODY) + .lineSpacing(BODY_LEADING) + .build(); + } + + /** The two-column money band: the priced table left, the terms right. */ + private static void renderMoneyBand(PageFlowBuilder page, StructuredProposalData data) { + page.addRow("MoneyBand", row -> { + row.margin(DocumentInsets.top(BAND_TOP)); + row.verticalAlign(RowVerticalAlign.TOP) + .gap(MONEY_GAP) + .weights(INVESTMENT_WEIGHT, TERMS_WEIGHT); + row.addSection("InvestmentColumn", + column -> renderInvestmentTable(column, data.investment())); + row.addSection("TermsColumn", column -> renderTerms(column, data.terms())); + }); + } + + /** The priced block; the total band closes it in the accent. */ + private static void renderInvestmentTable(SectionBuilder column, + ProposalInvestment investment) { + double labelWidth = INVESTMENT_WIDTH * INVESTMENT_LABEL_SPLIT; + double amountWidth = INVESTMENT_WIDTH - labelWidth; + + DocumentTableStyle headerLabel = investmentStyle(INK, TABLE_HEADER, + DocumentTableTextAnchor.CENTER_LEFT, INVESTMENT_ROW_PAD + 1.5, INK); + DocumentTableStyle headerAmount = investmentStyle(INK, TABLE_HEADER, + DocumentTableTextAnchor.CENTER_RIGHT, INVESTMENT_ROW_PAD + 1.5, INK); + DocumentTableStyle rowLabel = investmentStyle(null, TABLE_BODY, + DocumentTableTextAnchor.CENTER_LEFT, INVESTMENT_ROW_PAD, RULE_QUIET); + DocumentTableStyle rowAmount = investmentStyle(null, TABLE_BODY, + DocumentTableTextAnchor.CENTER_RIGHT, INVESTMENT_ROW_PAD, RULE_QUIET); + DocumentTableStyle subtotalLabel = investmentStyle(SUBTOTAL_FILL, TABLE_BODY_BOLD, + DocumentTableTextAnchor.CENTER_LEFT, INVESTMENT_EMPHASIS_PAD, RULE_QUIET); + DocumentTableStyle subtotalAmount = investmentStyle(SUBTOTAL_FILL, TABLE_BODY_BOLD, + DocumentTableTextAnchor.CENTER_RIGHT, INVESTMENT_EMPHASIS_PAD, RULE_QUIET); + DocumentTableStyle optionalAmount = investmentStyle(null, TABLE_BODY_BOLD, + DocumentTableTextAnchor.CENTER_RIGHT, INVESTMENT_ROW_PAD, RULE_QUIET); + DocumentTableStyle totalLabel = investmentStyle(ACCENT, TOTAL_TEXT, + DocumentTableTextAnchor.CENTER_LEFT, INVESTMENT_TOTAL_PAD, ACCENT); + DocumentTableStyle totalAmount = investmentStyle(ACCENT, TOTAL_TEXT, + DocumentTableTextAnchor.CENTER_RIGHT, INVESTMENT_TOTAL_PAD, ACCENT); + + column.spacing(0); + column.add(sectionHeading(investment.heading())); + column.addTable(table -> { + table.name("InvestmentTable") + .width(INVESTMENT_WIDTH) + .margin(DocumentInsets.top(GAP_BEFORE_TABLE)) + .columns(DocumentTableColumn.fixed(labelWidth), + DocumentTableColumn.fixed(amountWidth)) + .defaultCellStyle(rowLabel); + table.headerCells( + DocumentTableCell.text(investment.itemHeader()).withStyle(headerLabel), + DocumentTableCell.text(investment.amountHeader()).withStyle(headerAmount)); + for (ProposalInvestment.Row line : investment.rows()) { + switch (line.role()) { + case SUBTOTAL -> table.rowCells( + DocumentTableCell.text(line.label()).withStyle(subtotalLabel), + DocumentTableCell.text(line.amount()).withStyle(subtotalAmount)); + case OPTIONAL -> table.rowCells( + DocumentTableCell.text(line.label()).withStyle(rowLabel), + DocumentTableCell.text(line.amount()).withStyle(optionalAmount)); + default -> table.rowCells( + DocumentTableCell.text(line.label()).withStyle(rowLabel), + DocumentTableCell.text(line.amount()).withStyle(rowAmount)); + } + } + table.rowCells( + DocumentTableCell.text(investment.totalLabel()).withStyle(totalLabel), + DocumentTableCell.text(investment.totalAmount()).withStyle(totalAmount)); + table.repeatHeader(); + }); + } + + /** One investment cell style; {@code fill} may be null for the plain rows. */ + private static DocumentTableStyle investmentStyle(DocumentColor fill, + DocumentTextStyle text, + DocumentTableTextAnchor anchor, + double verticalPad, + DocumentColor strokeColor) { + DocumentTableStyle.Builder builder = DocumentTableStyle.builder() + .stroke(DocumentStroke.of(strokeColor, HAIRLINE)) + .padding(DocumentInsets.symmetric(verticalPad, TABLE_CELL_INSET)) + .textStyle(text) + .textAnchor(anchor); + if (fill != null) { + builder.fillColor(fill); + } + return builder.build(); + } + + /** Heading plus the bulleted terms, reusing the deliverables bullet. */ + private static void renderTerms(SectionBuilder column, ProposalTermsBlock terms) { + column.spacing(0); + column.add(sectionHeading(terms.heading())); + column.addSection("TermsList", list -> { + list.spacing(GAP_BULLET).padding(GAP_AFTER_RULE, 0f, 0f, 0f); + terms.items().forEach(item -> renderBullet(list, item)); + }); + } + + /** + * The signing card. {@code softPanel} carries one padding for all four + * sides, so the wider horizontal inset the reference uses belongs to the + * body section inside it. + */ + private static void renderAcceptance(PageFlowBuilder page, ProposalAcceptance acceptance) { + double side = ACCEPTANCE_SIDE_PADDING - ACCEPTANCE_PADDING; + page.addSection("Acceptance", card -> { + card.margin(BAND_TOP, 0f, 0f, 0f); + card.spacing(0).keepTogether().softPanel(PANEL_BACKGROUND, PANEL_RADIUS, + ACCEPTANCE_PADDING, DocumentStroke.of(RULE, HAIRLINE)); + card.addSection("AcceptanceBody", body -> { + body.spacing(0).padding(0f, (float) side, 0f, (float) side); + body.add(sectionHeading(acceptance.heading())); + body.addParagraph(p -> p + .text(acceptance.statement()) + .textStyle(BODY) + .lineSpacing(BODY_LEADING) + .margin(GAP_AFTER_RULE, 0f, 0f, 0f)); + if (!acceptance.fields().isEmpty()) { + body.addRow("SignatureFields", + row -> renderSignatureFields(row, acceptance.fields())); + } + }); + }); + } + + /** label, rule, spacer, label, rule, spacer, label, rule. */ + private static void renderSignatureFields(RowBuilder row, List fields) { + DocumentRowColumn[] columns = new DocumentRowColumn[fields.size() * 3 - 1]; + int at = 0; + for (int i = 0; i < fields.size(); i++) { + if (i > 0) { + columns[at++] = DocumentRowColumn.fixed(SIGNATURE_SPACER); + } + columns[at++] = DocumentRowColumn.auto(); + columns[at++] = DocumentRowColumn.weight(signatureRuleWeight(i, fields.size())); + } + row.verticalAlign(RowVerticalAlign.BOTTOM) + .gap(SIGNATURE_LABEL_GAP) + .padding(DocumentInsets.top(ACCEPTANCE_FIELD_GAP)) + .columns(columns); + for (int i = 0; i < fields.size(); i++) { + if (i > 0) { + row.addSpacer(SIGNATURE_SPACER); + } + String field = fields.get(i); + row.addParagraph(p -> p.text(field).textStyle(SIGNATURE_LABEL)); + row.addLine(line -> line.fill().thickness(HAIRLINE).color(INK)); + } + } + + /** + * The measured rule widths apply to the three-field card the reference + * sets; any other count divides the row evenly. + */ + private static double signatureRuleWeight(int index, int fieldCount) { + return fieldCount == SIGNATURE_RULE_WEIGHTS.length + ? SIGNATURE_RULE_WEIGHTS[index] + : 1.0 / fieldCount; + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposal.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposal.java new file mode 100644 index 000000000..1ecc0b218 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialProposal.java @@ -0,0 +1,162 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.api.PageBackgroundFill; +import com.demcha.compose.document.output.DocumentHeaderFooter; +import com.demcha.compose.document.output.DocumentHeaderFooterZone; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.templates.api.DocumentTemplate; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalData; +import com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec; + +import java.util.List; +import java.util.Objects; + +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.CONTENT_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FOOTER_BAND; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FOOTER_RULE_Y; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FOOTER_TEXT_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.FOOTER_ZONE_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HAIRLINE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.MARGIN_SIDE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.MARGIN_TOP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PAGE_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PAGE_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PAGE_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.RULE; + +/** + * Editorial Proposal — the second structured proposal preset: a two-page + * business proposal set in a serif display face with an orange accent. + * + *

Page one opens with the masthead — a drawn brand mark, the stacked + * wordmark, the tracked document label — then the three title lines, the + * meta line, the executive summary beside an at-a-glance fact card, the + * goal cells, and the numbered scope list. Page two repeats the masthead + * and carries the deliverable columns, the phase grid, the investment / + * terms band, and the signing card.

+ * + *

What sets it apart from {@link NorthlineProposal}, which renders the + * same {@link StructuredProposalDocumentSpec}: section headings are set in + * the display serif over a short accent rule rather than in the body sans + * inside an icon badge, so the data's section icon tokens are not drawn; + * the brand mark is drawn from vector paths rather than set as a monogram + * letter; the fact card is untitled, so its heading is not drawn either; + * the scope ordinal is plain accent text rather than a filled pill; and the + * page foot is a hairline over the content width rather than a filled band. + * Both presets set their titles in the same display face.

+ * + *

Moving a document between the two presets is a + * one-line change in the code and two things to check in the data. Icon + * tokens are preset-scoped vocabulary — each preset packages its own set, + * and a token this one does not carry is reported as a data error; the four + * {@code fact-*} tokens are named alike in both sets, the badge and goal + * tokens are not. Heading text is drawn as authored, so a document written + * for the sibling's tracked capitals keeps them here, where this design + * sets its headings in title case.

+ * + *

The preset owns its session geometry — A4, the margins published as + * {@link #RECOMMENDED_MARGIN}, the near-white page fill — and draws the + * brand line and page numbers as footer chrome, so they repeat on every + * page. It issues no explicit page break: the page-two masthead is + * {@code keepWithNext}, which is what stops it being orphaned at the foot + * of page one, and a break issued after the compiler has already advanced + * would leave a blank page between the two.

+ */ +public final class EditorialProposal { + + /** + * Stable template identifier. + */ + public static final String ID = "proposal-editorial"; + + /** + * Human-readable display name. + */ + public static final String DISPLAY_NAME = "Editorial Proposal"; + + /** + * The side margin (in points) the preset sets. It is published so a + * caller can measure against the same frame; the preset applies its own + * margins inside {@code compose}, so callers leave the session + * unconfigured. + */ + public static final double RECOMMENDED_MARGIN = MARGIN_SIDE; + + private EditorialProposal() { + } + + /** + * Builds the preset. + * + * @return ready-to-use template + */ + public static DocumentTemplate create() { + return new Template(); + } + + private record Template() implements DocumentTemplate { + + @Override + public String id() { + return ID; + } + + @Override + public String displayName() { + return DISPLAY_NAME; + } + + @Override + public void compose(DocumentSession document, StructuredProposalDocumentSpec spec) { + Objects.requireNonNull(document, "document"); + StructuredProposalData data = Objects.requireNonNull(spec, "spec").proposal(); + + document.pageSize(PAGE_WIDTH, PAGE_HEIGHT) + // The bottom margin is the footer band: content stops + // above it, so nothing runs under the chrome. + .margin(new DocumentInsets(MARGIN_TOP, MARGIN_SIDE, + FOOTER_BAND, MARGIN_SIDE)) + .pageBackground(PAGE_BACKGROUND); + + renderChrome(document, data.brand()); + + document.pageFlow(page -> { + // spacing(0): flow spacing survives a page break, so a band + // opening a page would inherit a gap the first never had. + page.name("Proposal").spacing(0); + EditorialWidgets.renderMasthead(page, data.brand()); + EditorialPageOne.compose(page, data); + EditorialWidgets.renderMasthead(page, data.brand()); + EditorialPageTwo.compose(page, data); + }); + } + + /** + * The page foot: a hairline across the content width as a page-ratio + * background fill, and the brand line with the page number as + * FOOTER-zone chrome, both repeating on every page. The number is + * written {@code 0{page}} because the reference numbers its pages 01 + * and 02 and there is no zero-padded page-number style. + */ + private static void renderChrome(DocumentSession document, ProposalBrand brand) { + document.pageBackgrounds(List.of(new PageBackgroundFill( + MARGIN_SIDE / PAGE_WIDTH, + FOOTER_RULE_Y / PAGE_HEIGHT, + CONTENT_WIDTH / PAGE_WIDTH, + HAIRLINE / PAGE_HEIGHT, + RULE))); + + document.footer(DocumentHeaderFooter.builder() + .zone(DocumentHeaderFooterZone.FOOTER) + .height((float) FOOTER_ZONE_HEIGHT) + .leftText(brand.footerName() + " | " + brand.website()) + .rightText("0{page}") + .fontSize((float) FOOTER_TEXT_SIZE) + .textColor(INK) + .build()); + } + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialStyles.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialStyles.java new file mode 100644 index 000000000..88c310867 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialStyles.java @@ -0,0 +1,219 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentTextDecoration; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.font.FontName; + +/** + * The Editorial Proposal look: page geometry, the colour roles, the + * Spectral/Lato scale, and the measured widths every band works against. + * + *

Preset-local for the same reason as its sibling's tokens: every value + * was measured against the ported template's reference render, and no other + * family shares this look.

+ */ +final class EditorialStyles { + + private EditorialStyles() { + } + + // --- page --------------------------------------------------------------- + static final double PAGE_WIDTH = 595.276; // A4 portrait, points + static final double PAGE_HEIGHT = 841.890; + static final double MARGIN_SIDE = 30.0; + static final double MARGIN_TOP = 19.7; + static final double CONTENT_WIDTH = PAGE_WIDTH - 2 * MARGIN_SIDE; + static final double FOOTER_BAND = 49.0; + + // --- band splits, measured from the reference --------------------------- + static final double SUMMARY_WEIGHT = 0.60; + static final double GLANCE_WEIGHT = 0.338; + static final double SUMMARY_GAP = CONTENT_WIDTH * (1 - SUMMARY_WEIGHT - GLANCE_WEIGHT); + static final double INVESTMENT_WEIGHT = 0.596; + static final double TERMS_WEIGHT = 0.330; + static final double MONEY_GAP = CONTENT_WIDTH * (1 - INVESTMENT_WEIGHT - TERMS_WEIGHT); + static final double DELIVERABLES_LEFT_WEIGHT = 0.491; + static final double DELIVERABLES_COLUMN_WEIGHT = 0.362; + /** PHASE / FOCUS / DURATION / OUTPUT. */ + static final double[] TIMELINE_WEIGHTS = {0.222, 0.307, 0.179, 0.291}; + static final double SCOPE_TITLE_SPLIT = 0.430; + static final double SCOPE_DESC_WEIGHT = 0.532; + static final double INVESTMENT_LABEL_SPLIT = 0.64; + + static final double GLANCE_WIDTH = CONTENT_WIDTH * GLANCE_WEIGHT; + static final double INVESTMENT_WIDTH = CONTENT_WIDTH * INVESTMENT_WEIGHT; + + // --- independent dimensions --------------------------------------------- + static final double LOGO_WIDTH = 30.0; + static final double LOGO_HEIGHT = 26.0; + static final double LOGO_GAP = 9.0; + /** Wordmark line pitch, as a fraction of its type size. */ + static final double WORDMARK_LINE = 0.82; + static final double WORDMARK_WIDTH = CONTENT_WIDTH * 0.19; + static final double DOC_LABEL_WIDTH = CONTENT_WIDTH * 0.13; + static final double DOC_LABEL_RULE_WIDTH = CONTENT_WIDTH * 0.115; + static final double DOC_LABEL_INSET = 8.5; + static final double FACT_ICON = 20.0; + static final double FACT_GAP = 14.0; + static final double GOAL_ICON = 16.0; + static final double GOAL_GAP = 8.0; + static final int GOAL_TEXT_LINES = 3; + static final double PANEL_PADDING = 17.0; + static final double PANEL_RADIUS = 5.0; + static final double ACCEPTANCE_PADDING = 9.0; + static final double ACCEPTANCE_SIDE_PADDING = 18.0; + static final double SIGNATURE_LABEL_GAP = 4.0; + static final double SIGNATURE_FIELD_GAP = 15.5; + static final double SIGNATURE_SPACER = SIGNATURE_FIELD_GAP - 2 * SIGNATURE_LABEL_GAP; + /** Rule widths of the three signature fields the reference sets. */ + static final double[] SIGNATURE_RULE_WEIGHTS = {0.374, 0.385, 0.241}; + static final double SCOPE_NUMBER_WIDTH = 22.0; + static final double SCOPE_GAP = 12.0; + static final double HAIRLINE = 0.7; + static final double MASTHEAD_RULE = 1.1; + static final double HEADING_RULE_WIDTH = CONTENT_WIDTH * 0.048; + static final double HEADING_RULE_THICKNESS = 1.6; + + // --- vertical rhythm ----------------------------------------------------- + /** + * The gap above a band, carried by the band rather than by the page flow: + * flow spacing survives a page break, so a band opening a page would + * inherit a leading gap the first band never had. + */ + static final float BAND_TOP = 17.8f; + static final double GAP_MASTHEAD_RULE = 16.1; + static final float GAP_TITLE = 15.5f; + static final float GAP_META = 16.0f; + static final float GAP_PAGE_TWO_OPENING = 19.0f; + static final double GAP_HEADING = 1.0; + static final float GAP_AFTER_RULE = 9.5f; + static final float GAP_BEFORE_TABLE = 13.7f; + static final float GAP_PARAGRAPH = 9.0f; + static final double GAP_BEFORE_GOALS_HEADING = 26.5; + static final double FACT_DIVIDER_GAP = 7.1; + static final double SCOPE_ROW_PAD = 2.9; + static final double INVESTMENT_ROW_PAD = 4.0; + static final double INVESTMENT_EMPHASIS_PAD = 7.0; + static final double INVESTMENT_TOTAL_PAD = 5.4; + static final double TIMELINE_ROW_PAD = 7.0; + static final double TABLE_CELL_INSET = 10.0; + static final double ACCEPTANCE_FIELD_GAP = 9.0; + static final float GAP_BULLET = 7.6f; + static final double LIST_LEADING = 0.87; + + // --- type scale ---------------------------------------------------------- + static final double BODY_SIZE = 10.0; + /** EXTRA leading in points (the engine adds it to the font's line height). */ + static final double BODY_LEADING = 3.05; + /** Lato line height as a multiple of the type size (measured). */ + static final double LATO_LINE = 1.213; + static final double TITLE_SIZE = 41.8; + static final double TITLE_PITCH = 41.9; + static final double HEADING_SIZE = 16.3; + static final double WORDMARK_SIZE = 16.1; + static final double WORDMARK_SUB_SIZE = 14.0; + static final double TABLE_SIZE = 9.0; + static final double LABEL_SIZE = 7.5; + static final double DOC_LABEL_SIZE = 8.3; + static final double META_SIZE = 10.5; + static final double FACT_VALUE_SIZE = 14.0; + static final double SCOPE_BODY_SIZE = 9.9; + static final double SCOPE_LEADING = 0.6; + static final double FOOTER_TEXT_SIZE = 8.5; + /** Helvetica cap height as a fraction of the type size. */ + static final double HELVETICA_CAP = 0.717; + /** + * Not the band height: the backend places the footer baseline at + * (height - fontSize) above the page edge, so this seats the cap band in + * the middle of the footer band. + */ + static final double FOOTER_ZONE_HEIGHT = + (FOOTER_BAND - FOOTER_TEXT_SIZE * HELVETICA_CAP) / 2 + FOOTER_TEXT_SIZE; + static final double FOOTER_RULE_Y = PAGE_HEIGHT - FOOTER_BAND; + /** How far a heading's line box starts above its cap top, as a fraction of the size. */ + static final double HEADING_CAP_LEAD = 0.42; + + // --- colour roles: named for the job, not the hue ------------------------ + static final DocumentColor ACCENT = DocumentColor.rgb(237, 76, 15); + static final DocumentColor INK = DocumentColor.rgb(35, 35, 35); + static final DocumentColor BODY_TEXT = DocumentColor.rgb(46, 46, 46); + static final DocumentColor MUTED_TEXT = DocumentColor.rgb(90, 90, 90); + static final DocumentColor PAGE_BACKGROUND = DocumentColor.rgb(254, 254, 254); + static final DocumentColor PANEL_BACKGROUND = DocumentColor.rgb(250, 246, 243); + static final DocumentColor SUBTOTAL_FILL = DocumentColor.rgb(243, 241, 239); + static final DocumentColor RULE = DocumentColor.rgb(216, 213, 210); + static final DocumentColor RULE_QUIET = DocumentColor.rgb(231, 227, 223); + static final DocumentColor ON_DARK = DocumentColor.rgb(255, 255, 255); + + static final FontName TITLE_FONT = FontName.SPECTRAL; + static final FontName BODY_FONT = FontName.LATO; + + // --- text roles ----------------------------------------------------------- + static final DocumentTextStyle TITLE_INK = + style(TITLE_FONT, TITLE_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle TITLE_ACCENT = + style(TITLE_FONT, TITLE_SIZE, DocumentTextDecoration.BOLD, ACCENT); + static final DocumentTextStyle SECTION_HEADING = + style(TITLE_FONT, HEADING_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle BODY = + style(BODY_FONT, BODY_SIZE, DocumentTextDecoration.DEFAULT, BODY_TEXT); + static final DocumentTextStyle META = + style(BODY_FONT, META_SIZE, DocumentTextDecoration.DEFAULT, BODY_TEXT); + static final DocumentTextStyle META_SEPARATOR = + style(BODY_FONT, META_SIZE, DocumentTextDecoration.DEFAULT, ACCENT); + static final DocumentTextStyle FACT_LABEL = + style(BODY_FONT, LABEL_SIZE, DocumentTextDecoration.BOLD, MUTED_TEXT); + static final DocumentTextStyle FACT_VALUE = + style(BODY_FONT, FACT_VALUE_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle FACT_NOTE = + style(BODY_FONT, LABEL_SIZE + 0.5, DocumentTextDecoration.DEFAULT, MUTED_TEXT); + static final DocumentTextStyle GOAL_TEXT = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, BODY_TEXT); + static final DocumentTextStyle SCOPE_NUMBER = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.BOLD, ACCENT); + static final DocumentTextStyle SCOPE_TITLE = + style(BODY_FONT, TABLE_SIZE + 0.5, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SCOPE_BODY = + style(BODY_FONT, SCOPE_BODY_SIZE, DocumentTextDecoration.DEFAULT, MUTED_TEXT); + static final DocumentTextStyle TABLE_HEADER = + style(BODY_FONT, TABLE_SIZE - 0.5, DocumentTextDecoration.BOLD, ON_DARK); + static final DocumentTextStyle TABLE_BODY = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, BODY_TEXT); + static final DocumentTextStyle TABLE_BODY_BOLD = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle TOTAL_TEXT = + style(BODY_FONT, TABLE_SIZE + 1.5, DocumentTextDecoration.BOLD, ON_DARK); + static final DocumentTextStyle WORDMARK = + style(BODY_FONT, WORDMARK_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle WORDMARK_SUB = + style(BODY_FONT, WORDMARK_SUB_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle DOC_LABEL = + style(BODY_FONT, DOC_LABEL_SIZE, DocumentTextDecoration.BOLD, INK); + static final DocumentTextStyle SIGNATURE_LABEL = + style(BODY_FONT, TABLE_SIZE, DocumentTextDecoration.DEFAULT, INK); + + /** + * The height one line of body-scale text occupies: the font's own line + * height plus the additive leading. Multiplying the size by the leading + * is the wrong model and makes derived heights half again too tall. + * + * @param size the type size + * @return the line height in points + */ + static double lineHeight(double size) { + return size * LATO_LINE + BODY_LEADING; + } + + private static DocumentTextStyle style(FontName font, + double size, + DocumentTextDecoration decoration, + DocumentColor color) { + return DocumentTextStyle.builder() + .fontName(font) + .size(size) + .decoration(decoration) + .color(color) + .build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialWidgets.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialWidgets.java new file mode 100644 index 000000000..51ad20784 --- /dev/null +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/EditorialWidgets.java @@ -0,0 +1,224 @@ +package com.demcha.compose.document.templates.proposal.presets; + +import com.demcha.compose.document.dsl.LineBuilder; +import com.demcha.compose.document.dsl.PageFlowBuilder; +import com.demcha.compose.document.dsl.ParagraphBuilder; +import com.demcha.compose.document.dsl.PathBuilder; +import com.demcha.compose.document.dsl.SectionBuilder; +import com.demcha.compose.document.dsl.ShapeContainerBuilder; +import com.demcha.compose.document.node.DocumentNode; +import com.demcha.compose.document.node.HorizontalAlign; +import com.demcha.compose.document.node.LayerAlign; +import com.demcha.compose.document.node.RowVerticalAlign; +import com.demcha.compose.document.node.TextAlign; +import com.demcha.compose.document.style.ClipPolicy; +import com.demcha.compose.document.style.DocumentColor; +import com.demcha.compose.document.style.DocumentInsets; +import com.demcha.compose.document.style.DocumentRowColumn; +import com.demcha.compose.document.style.DocumentTextIndent; +import com.demcha.compose.document.style.DocumentTextStyle; +import com.demcha.compose.document.svg.SvgPath; +import com.demcha.compose.document.templates.core.text.TextOrnaments; +import com.demcha.compose.document.templates.data.proposal.ProposalBrand; + +import java.util.List; + +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.ACCENT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.BODY; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.DOC_LABEL; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.DOC_LABEL_INSET; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.DOC_LABEL_RULE_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.DOC_LABEL_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.GAP_MASTHEAD_RULE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HEADING_RULE_THICKNESS; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.HEADING_RULE_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.INK; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.LIST_LEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.LOGO_GAP; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.LOGO_HEIGHT; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.LOGO_WIDTH; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.MASTHEAD_RULE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.PAGE_BACKGROUND; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.SECTION_HEADING; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.WORDMARK; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.WORDMARK_LINE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.WORDMARK_SIZE; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.WORDMARK_SUB; +import static com.demcha.compose.document.templates.proposal.presets.EditorialStyles.WORDMARK_WIDTH; + +/** + * The building blocks the Editorial Proposal bands share: the masthead that + * opens every page, the drawn logo mark, the serif section heading over its + * accent rule, the bullet, and the stacked-line box both the wordmark and + * the title are set in. + */ +final class EditorialWidgets { + + private EditorialWidgets() { + } + + /** + * The masthead: the drawn mark, the stacked wordmark, the tracked + * document label over its accent rule, and the full-width rule beneath. + * + *

It is {@code keepWithNext}, which is what stops the page-two + * masthead from being orphaned at the foot of page one — the preset + * issues no explicit page break.

+ */ + static void renderMasthead(PageFlowBuilder page, ProposalBrand brand) { + page.addSection("Masthead", masthead -> { + masthead.spacing(0); + masthead.keepWithNext(); + masthead.addRow("MastheadRow", row -> { + row.verticalAlign(RowVerticalAlign.CENTER) + .gap(LOGO_GAP) + // Not auto(): a section's natural width is the width + // it is offered, so two auto columns would each claim + // the whole row. Both ends are measured strips. + .columns(DocumentRowColumn.fixed(LOGO_WIDTH), + DocumentRowColumn.fixed(WORDMARK_WIDTH), + DocumentRowColumn.weight(1), + DocumentRowColumn.fixed(DOC_LABEL_WIDTH)); + row.add(logoMark()); + // The wordmark stacks at 0.82 of its type size, tighter than + // the 1.21 Lato asks for, which is what makes it read as one + // mark rather than two words — and a section cannot carry the + // negative spacing that pitch would need. + row.add(stackedLines("Wordmark", WORDMARK_WIDTH, + WORDMARK_SIZE * WORDMARK_LINE, WORDMARK_SIZE, + List.of(brand.nameLine1(), brand.nameLine2()), + List.of(WORDMARK, WORDMARK_SUB))); + // A zero-width spacer: the row distributes by columns, and the + // weight(1) column above already holds the ends apart. + row.addSpacer(0); + row.addSection("DocumentLabel", label -> { + label.spacing(0); + label.padding(0f, (float) DOC_LABEL_INSET, 0f, 0f); + label.addParagraph(p -> p + .text(TextOrnaments.spacedUpper(brand.documentLabel())) + .textStyle(DOC_LABEL) + .align(TextAlign.RIGHT)); + // addAligned, not addLine: a section stacks children at the + // content width with no child alignment, and this rule sits + // flush RIGHT under the label. + label.addAligned(HorizontalAlign.RIGHT, new LineBuilder() + .name("DocumentLabelRule") + .horizontal(DOC_LABEL_RULE_WIDTH) + .thickness(HEADING_RULE_THICKNESS) + .color(ACCENT) + .margin(DocumentInsets.top(5)) + .build()); + }); + }); + masthead.addLine(line -> line + .fill() + .thickness(MASTHEAD_RULE) + .color(INK) + .margin(DocumentInsets.top(GAP_MASTHEAD_RULE))); + }); + } + + /** + * The brand mark, drawn as four stacked vector paths rather than loaded: + * an accent stem, an accent diagonal, a page-coloured slash that cuts it, + * and an ink stem. + */ + private static DocumentNode logoMark() { + return new ShapeContainerBuilder() + .name("LogoMark") + .rectangle(LOGO_WIDTH, LOGO_HEIGHT) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE) + .position(markPath("MarkStem", "M0,0 L14,0 L14,50 L0,50 Z", ACCENT), + 0, 0, LayerAlign.TOP_LEFT, 0) + .position(markPath("MarkDiagonal", "M13,0 L28,0 L48,50 L33,50 Z", ACCENT), + 0, 0, LayerAlign.TOP_LEFT, 1) + .position(markPath("MarkSlash", "M3,0 L8,0 L45,50 L40,50 Z", PAGE_BACKGROUND), + 0, 0, LayerAlign.TOP_LEFT, 2) + .position(markPath("MarkRightStem", "M40,0 L58,0 L58,50 L40,50 Z", INK), + 0, 0, LayerAlign.TOP_LEFT, 3) + .build(); + } + + private static DocumentNode markPath(String name, String d, DocumentColor fill) { + return new PathBuilder() + .name(name) + .size(LOGO_WIDTH, LOGO_HEIGHT) + .svg(SvgPath.parse(d, 0, 0, 58, 50)) + .fillColor(fill) + .build(); + } + + /** + * The heading every section opens with: the serif title over a short + * accent rule. Unlike its teal sibling there is no badge, so the data's + * section icon tokens are not read here. + * + * @param title the heading text + * @return the heading node, kept with whatever follows it + */ + static DocumentNode sectionHeading(String title) { + SectionBuilder heading = new SectionBuilder(); + heading.name("SectionHeading"); + heading.spacing(0); + heading.keepWithNext(); + heading.addParagraph(p -> p + .name("SectionHeadingTitle") + .text(title) + .textStyle(SECTION_HEADING)); + heading.addLine(line -> line + .name("SectionHeadingRule") + .horizontal(HEADING_RULE_WIDTH) + .thickness(HEADING_RULE_THICKNESS) + .color(ACCENT) + .margin(DocumentInsets.top(GAP_HEADING))); + return heading.build(); + } + + /** + * A bullet item: an inline accent dot, then the text, with a hanging + * indent so wrapped lines clear the dot. + */ + static void renderBullet(SectionBuilder host, String text) { + host.addParagraph(p -> p + .dot(3.6, ACCENT) + .inlineText(" " + text, BODY) + .bulletOffset(" ") + .indentStrategy(DocumentTextIndent.FROM_SECOND_LINE) + .lineSpacing(LIST_LEADING)); + } + + /** + * Lines stacked on an authored pitch: each line is anchored inside one + * container, because leading is additive and the engine rejects the + * negative value a tighter-than-natural pitch would need. + * + * @param name node name of the box and its lines + * @param width the box width + * @param pitch distance between line tops + * @param lastLineHeight height reserved for the final line + * @param texts the lines, in order + * @param styles one style per line + * @return the stacked box + */ + static DocumentNode stackedLines(String name, + double width, + double pitch, + double lastLineHeight, + List texts, + List styles) { + ShapeContainerBuilder box = new ShapeContainerBuilder() + .name(name) + .rectangle(width, (texts.size() - 1) * pitch + lastLineHeight) + .clipPolicy(ClipPolicy.OVERFLOW_VISIBLE); + for (int i = 0; i < texts.size(); i++) { + DocumentNode line = new ParagraphBuilder() + .name(name + "Line" + (i + 1)) + .text(texts.get(i)) + .textStyle(styles.get(i)) + .build(); + box.position(line, 0, i * pitch, LayerAlign.TOP_LEFT); + } + return box.build(); + } +} diff --git a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/package-info.java b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/package-info.java index 655ef0ec1..56bf35f33 100644 --- a/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/package-info.java +++ b/templates/src/main/java/com/demcha/compose/document/templates/proposal/presets/package-info.java @@ -1,16 +1,28 @@ /** - * Layered proposal presets — thin orchestrators that compose a proposal - * on a {@link com.demcha.compose.document.templates.core.theme.BrandTheme} - * plus the canonical DSL. + * Layered proposal presets — thin orchestrators that compose a proposal on + * the canonical DSL. * - *

This package mirrors {@code invoice.presets}: each preset is a - * {@code final} class with a {@code create(BrandTheme)} factory returning - * a {@link com.demcha.compose.document.templates.api.DocumentTemplate} - * parameterised on - * {@link com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec}. - * The presets read every visual value from the theme and reuse the shared - * {@code templates.core.*} layer; the proposal family does not own a theme - * type of its own.

+ *

Each preset is a {@code final} class whose {@code create} factory + * returns a + * {@link com.demcha.compose.document.templates.api.DocumentTemplate}, and + * the package holds two shapes of them:

+ * + *
    + *
  • Narrative presets take a {@code create(BrandTheme)} factory + * and are parameterised on + * {@link com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec}, + * reading every visual value from the theme + * ({@code ModernProposal}).
  • + *
  • Structured presets take a no-argument {@code create()} and + * are parameterised on + * {@link com.demcha.compose.document.templates.data.proposal.StructuredProposalDocumentSpec}, + * carrying their measured geometry and palette as preset-local tokens + * because each reproduces one designed look rather than a themeable + * family ({@code NorthlineProposal}, {@code EditorialProposal}).
  • + *
+ * + *

Both shapes reuse the shared {@code templates.core.*} layer; the + * proposal family does not own a theme type of its own.

* * @since 2.0.0 */ diff --git a/templates/src/main/resources/templates/proposal/editorial/icons/fact-contact.svg b/templates/src/main/resources/templates/proposal/editorial/icons/fact-contact.svg new file mode 100644 index 000000000..301914753 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/editorial/icons/fact-contact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/editorial/icons/fact-duration.svg b/templates/src/main/resources/templates/proposal/editorial/icons/fact-duration.svg new file mode 100644 index 000000000..f435148fc --- /dev/null +++ b/templates/src/main/resources/templates/proposal/editorial/icons/fact-duration.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/editorial/icons/fact-start.svg b/templates/src/main/resources/templates/proposal/editorial/icons/fact-start.svg new file mode 100644 index 000000000..f82fe3be2 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/editorial/icons/fact-start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/editorial/icons/fact-validity.svg b/templates/src/main/resources/templates/proposal/editorial/icons/fact-validity.svg new file mode 100644 index 000000000..75d81c791 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/editorial/icons/fact-validity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/src/main/resources/templates/proposal/editorial/icons/goal-check.svg b/templates/src/main/resources/templates/proposal/editorial/icons/goal-check.svg new file mode 100644 index 000000000..159ab3553 --- /dev/null +++ b/templates/src/main/resources/templates/proposal/editorial/icons/goal-check.svg @@ -0,0 +1 @@ + \ No newline at end of file